Compare commits
	
		
			No commits in common. "main" and "v4.0.0" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								.github/dependabot.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,22 +0,0 @@ | ||||
| # To get started with Dependabot version updates, you'll need to specify which | ||||
| # package ecosystems to update and where the package manifests are located. | ||||
| # Please see the documentation for all configuration options: | ||||
| # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file | ||||
| 
 | ||||
| version: 2 | ||||
| updates: | ||||
|   # Enable version updates for npm | ||||
|   - package-ecosystem: 'npm' | ||||
|     # Look for `package.json` and `lock` files in the `root` directory | ||||
|     directory: '/' | ||||
|     # Check the npm registry for updates every day (weekdays) | ||||
|     schedule: | ||||
|       interval: 'weekly' | ||||
| 
 | ||||
|   # Enable version updates for GitHub Actions | ||||
|   - package-ecosystem: 'github-actions' | ||||
|     # Workflow files stored in the default location of `.github/workflows` | ||||
|     # You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`. | ||||
|     directory: '/' | ||||
|     schedule: | ||||
|       interval: 'weekly' | ||||
| @ -24,7 +24,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for gradle | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -51,7 +51,7 @@ jobs: | ||||
|     needs: gradle1-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for gradle | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -76,7 +76,7 @@ jobs: | ||||
|     needs: gradle1-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for gradle | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|  | ||||
							
								
								
									
										38
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										38
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							| @ -21,10 +21,10 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for gradle | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -46,11 +46,11 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     needs: gradle-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for gradle | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -70,10 +70,10 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for maven | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -93,11 +93,11 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     needs: maven-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for maven | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -121,10 +121,10 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-22.04] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for sbt | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -132,21 +132,17 @@ jobs: | ||||
|           distribution: 'adopt' | ||||
|           java-version: '11' | ||||
|           cache: sbt | ||||
|       - name: Setup SBT | ||||
|         if: matrix.os == 'macos-13' | ||||
|         run: | | ||||
|           echo ""Installing SBT..."" | ||||
|           brew install sbt | ||||
|       - name: Create files to cache | ||||
|         run: sbt update | ||||
| 
 | ||||
|       - name: Check files to cache on macos-latest | ||||
|         if: matrix.os == 'macos-13' | ||||
|         if: matrix.os == 'macos-latest' | ||||
|         run: | | ||||
|           if [ ! -d ~/Library/Caches/Coursier ]; then | ||||
|             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" | ||||
|             exit 1 | ||||
|           fi | ||||
| 
 | ||||
|       - name: Check files to cache on windows-latest | ||||
|         if: matrix.os == 'windows-latest' | ||||
|         run: | | ||||
| @ -154,6 +150,7 @@ jobs: | ||||
|             echo "::error::The ~/AppData/Local/Coursier/Cache directory does not exist unexpectedly" | ||||
|             exit 1 | ||||
|           fi | ||||
| 
 | ||||
|       - name: Check files to cache on ubuntu-latest | ||||
|         if: matrix.os == 'ubuntu-latest' | ||||
|         run: | | ||||
| @ -161,6 +158,7 @@ jobs: | ||||
|             echo "::error::The ~/.cache/coursier directory does not exist unexpectedly" | ||||
|             exit 1 | ||||
|           fi | ||||
| 
 | ||||
|   sbt-restore: | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     defaults: | ||||
| @ -170,11 +168,11 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-22.04] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     needs: sbt-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Run setup-java with the cache for sbt | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -184,13 +182,14 @@ jobs: | ||||
|           cache: sbt | ||||
| 
 | ||||
|       - name: Confirm that ~/Library/Caches/Coursier directory has been made | ||||
|         if: matrix.os == 'macos-13' | ||||
|         if: matrix.os == 'macos-latest' | ||||
|         run: | | ||||
|           if [ ! -d ~/Library/Caches/Coursier ]; then | ||||
|             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" | ||||
|             exit 1 | ||||
|           fi | ||||
|           ls ~/Library/Caches/Coursier | ||||
| 
 | ||||
|       - name: Confirm that ~/AppData/Local/Coursier/Cache directory has been made | ||||
|         if: matrix.os == 'windows-latest' | ||||
|         run: | | ||||
| @ -199,6 +198,7 @@ jobs: | ||||
|             exit 1 | ||||
|           fi | ||||
|           ls ~/AppData/Local/Coursier/Cache | ||||
| 
 | ||||
|       - name: Confirm that ~/.cache/coursier directory has been made | ||||
|         if: matrix.os == 'ubuntu-latest' | ||||
|         run: | | ||||
|  | ||||
							
								
								
									
										6
									
								
								.github/workflows/e2e-local-file.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/e2e-local-file.yml
									
									
									
									
										vendored
									
									
								
							| @ -21,7 +21,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Download Adopt OpenJDK file | ||||
|         run: | | ||||
|           if ($IsLinux) { | ||||
| @ -58,7 +58,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Download Zulu OpenJDK file | ||||
|         run: | | ||||
|           if ($IsLinux) { | ||||
| @ -95,7 +95,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Download Eclipse Temurin file | ||||
|         run: | | ||||
|           if ($IsLinux) { | ||||
|  | ||||
							
								
								
									
										8
									
								
								.github/workflows/e2e-publishing.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								.github/workflows/e2e-publishing.yml
									
									
									
									
										vendored
									
									
								
							| @ -25,7 +25,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -60,7 +60,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create fake settings.xml | ||||
|         run: | | ||||
|           $xmlDirectory = Join-Path $HOME ".m2" | ||||
| @ -96,7 +96,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create fake settings.xml | ||||
|         run: | | ||||
|           $xmlDirectory = Join-Path $HOME ".m2" | ||||
| @ -133,7 +133,7 @@ jobs: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|  | ||||
							
								
								
									
										217
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										217
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							| @ -20,7 +20,7 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: [ | ||||
|             'temurin', | ||||
|             'adopt', | ||||
| @ -30,49 +30,34 @@ jobs: | ||||
|             'microsoft', | ||||
|             'semeru', | ||||
|             'corretto', | ||||
|             'dragonwell', | ||||
|             'sapmachine', | ||||
|             'jetbrains' | ||||
|             'dragonwell' | ||||
|           ] # internally 'adopt-hotspot' is the same as 'adopt' | ||||
|         version: ['21', '11', '17'] | ||||
|         version: ['8', '11', '17'] | ||||
|         exclude: | ||||
|           - distribution: microsoft | ||||
|             version: 8 | ||||
|           - distribution: dragonwell | ||||
|             os: macos-13 | ||||
|             os: macos-latest | ||||
|         include: | ||||
|           - distribution: oracle | ||||
|             os: macos-13 | ||||
|             os: macos-latest | ||||
|             version: 17 | ||||
|           - distribution: oracle | ||||
|             os: windows-latest | ||||
|             version: 21 | ||||
|             version: 20 | ||||
|           - distribution: oracle | ||||
|             os: ubuntu-latest | ||||
|             version: 21 | ||||
|           - distribution: graalvm | ||||
|             os: macos-latest | ||||
|             version: 17.0.12 | ||||
|           - distribution: graalvm | ||||
|             os: windows-latest | ||||
|             version: 21 | ||||
|           - distribution: graalvm | ||||
|             os: ubuntu-latest | ||||
|             version: 21 | ||||
|           - distribution: graalvm | ||||
|             os: ubuntu-latest | ||||
|             version: '24-ea' | ||||
|             version: 20 | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           java-version: ${{ matrix.version }} | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| @ -88,33 +73,21 @@ jobs: | ||||
|         distribution: ['temurin', 'zulu', 'liberica'] | ||||
|         version: | ||||
|           - '11.0' | ||||
|           - '21.0' | ||||
|           - '8.0.302' | ||||
|           - '17.0.7+7' | ||||
|         include: | ||||
|           - distribution: oracle | ||||
|             os: ubuntu-latest | ||||
|             version: '21.0.4' | ||||
|           - distribution: graalvm | ||||
|             os: ubuntu-latest | ||||
|             version: '21.0.4' | ||||
|             version: '20.0.1' | ||||
|           - distribution: dragonwell | ||||
|             os: ubuntu-latest | ||||
|             version: '11.0' | ||||
|           - distribution: dragonwell | ||||
|             os: ubuntu-latest | ||||
|             version: '11.0.13+9' | ||||
|           - distribution: sapmachine | ||||
|             os: ubuntu-latest | ||||
|             version: '17.0.7' | ||||
|           - distribution: jetbrains | ||||
|             os: ubuntu-latest | ||||
|             version: '11.0.11' | ||||
|           - distribution: jetbrains | ||||
|             os: ubuntu-latest | ||||
|             version: '17.0.7' | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -124,8 +97,6 @@ jobs: | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
| 
 | ||||
|   setup-java-check-latest: | ||||
|     name: ${{ matrix.distribution }} ${{ matrix.version }} - check-latest flag - ${{ matrix.os }} | ||||
| @ -135,21 +106,13 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: | ||||
|           [ | ||||
|             'temurin', | ||||
|             'zulu', | ||||
|             'liberica', | ||||
|             'dragonwell', | ||||
|             'sapmachine', | ||||
|             'jetbrains' | ||||
|           ] | ||||
|         distribution: ['temurin', 'zulu', 'liberica', 'dragonwell'] | ||||
|         exclude: | ||||
|           - distribution: dragonwell | ||||
|             os: macos-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -157,8 +120,6 @@ jobs: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version: 11 | ||||
|           check-latest: true | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| @ -171,21 +132,13 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: | ||||
|           [ | ||||
|             'temurin', | ||||
|             'zulu', | ||||
|             'liberica', | ||||
|             'dragonwell', | ||||
|             'sapmachine', | ||||
|             'jetbrains' | ||||
|           ] | ||||
|         distribution: ['temurin', 'zulu', 'liberica', 'dragonwell'] | ||||
|         exclude: | ||||
|           - distribution: dragonwell | ||||
|             os: macos-latest | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -194,8 +147,6 @@ jobs: | ||||
|           java-version: | | ||||
|             11 | ||||
|             17 | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Verify Java env variables | ||||
|         run: | | ||||
|           $versionsArr = "11","17" | ||||
| @ -203,10 +154,10 @@ jobs: | ||||
|           { | ||||
|             $envName = "JAVA_HOME_${version}_${env:RUNNER_ARCH}" | ||||
|             $JavaVersionPath = [Environment]::GetEnvironmentVariable($envName) | ||||
|             if (-not (Test-Path "$JavaVersionPath")) { | ||||
|             if (-not (Test-Path "$JavaVersionPath")) {  | ||||
|               Write-Host "$envName is not found" | ||||
|               exit 1 | ||||
|             } | ||||
|             }  | ||||
|           } | ||||
|         shell: pwsh | ||||
|       - name: Verify Java | ||||
| @ -220,11 +171,11 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         version: ['17-ea', '15.0.0-ea.14'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -246,7 +197,7 @@ jobs: | ||||
|         version: ['17-ea'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -257,28 +208,6 @@ jobs: | ||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| 
 | ||||
|   setup-java-ea-versions-sapmachine: | ||||
|     name: sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} | ||||
|     needs: setup-java-major-minor-versions | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         version: ['17-ea', '21-ea'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           java-version: ${{ matrix.version }} | ||||
|           distribution: sapmachine | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| 
 | ||||
|   setup-java-custom-package-type: | ||||
|     name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} | ||||
|     needs: setup-java-major-minor-versions | ||||
| @ -286,23 +215,22 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         distribution: | ||||
|           ['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains'] | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: ['temurin', 'zulu', 'liberica', 'semeru'] | ||||
|         java-package: ['jre'] | ||||
|         version: ['17.0'] | ||||
|         include: | ||||
|           - distribution: 'zulu' | ||||
|             java-package: jre+fx | ||||
|             version: '21' | ||||
|             version: '8' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'zulu' | ||||
|             java-package: jdk+fx | ||||
|             version: '21.0' | ||||
|             version: '8.0.242' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'liberica' | ||||
|             java-package: jdk+fx | ||||
|             version: '21' | ||||
|             version: '8' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'liberica' | ||||
|             java-package: jre+fx | ||||
| @ -312,50 +240,9 @@ jobs: | ||||
|             java-package: jre | ||||
|             version: '8' | ||||
|             os: windows-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jdk+jcef | ||||
|             version: '11' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jdk+jcef | ||||
|             version: '17' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jdk+jcef | ||||
|             version: '21' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jre+jcef | ||||
|             version: '11' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jre+jcef | ||||
|             version: '17' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jre+jcef | ||||
|             version: '21' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jdk+ft | ||||
|             version: '17' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jdk+ft | ||||
|             version: '21' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jre+ft | ||||
|             version: '17' | ||||
|             os: ubuntu-latest | ||||
|           - distribution: 'jetbrains' | ||||
|             java-package: jre+ft | ||||
|             version: '21' | ||||
|             os: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -363,8 +250,6 @@ jobs: | ||||
|           java-version: ${{ matrix.version }} | ||||
|           java-package: ${{ matrix.java-package }} | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|         env: | ||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| @ -378,12 +263,12 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         # x86 is not supported on macOS | ||||
|         os: [windows-latest, ubuntu-22.04] | ||||
|         os: [windows-latest, ubuntu-latest] | ||||
|         distribution: ['liberica', 'zulu', 'corretto'] | ||||
|         version: ['11'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
| @ -403,23 +288,19 @@ jobs: | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: ['temurin', 'microsoft', 'corretto'] | ||||
|         java-version-file: ['.java-version', '.tool-versions'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create .java-version file | ||||
|         shell: bash | ||||
|         run: echo "17" > .java-version | ||||
|       - name: Create .tool-versions file | ||||
|         shell: bash | ||||
|         run: echo "java 17" > .tool-versions | ||||
|         run: echo "8" > .java-version | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version: 11 | ||||
|           java-version-file: ${{matrix.java-version-file }} | ||||
|           java-version-file: '.java-version' | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| @ -432,22 +313,18 @@ jobs: | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: ['temurin', 'zulu', 'liberica', 'microsoft', 'corretto'] | ||||
|         java-version-file: ['.java-version', '.tool-versions'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create .java-version file | ||||
|         shell: bash | ||||
|         run: echo "11" > .java-version | ||||
|       - name: Create .tool-versions file | ||||
|         shell: bash | ||||
|         run: echo "java 11" > .tool-versions | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version-file: ${{matrix.java-version-file }} | ||||
|           java-version-file: '.java-version' | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| @ -460,50 +337,42 @@ jobs: | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: ['adopt', 'adopt-openj9', 'zulu'] | ||||
|         java-version-file: ['.java-version', '.tool-versions'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create .java-version file | ||||
|         shell: bash | ||||
|         run: echo "17.0.10" > .java-version | ||||
|       - name: Create .tool-versions file | ||||
|         shell: bash | ||||
|         run: echo "java 17.0.10" > .tool-versions | ||||
|         run: echo "11.0.2" > .java-version | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version-file: ${{matrix.java-version-file }} | ||||
|           java-version-file: '.java-version' | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "17.0.10" "${{ steps.setup-java.outputs.path }}" | ||||
|         run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
| 
 | ||||
|   setup-java-version-from-file-major-minor-patch-with-dist: | ||||
|     name: ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} | ||||
|     name: ${{ matrix.distribution }} version from file 'openjdk64-11.0.2' - ${{ matrix.os }} | ||||
|     runs-on: ${{ matrix.os }} | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-latest, windows-latest, ubuntu-latest] | ||||
|         distribution: ['adopt', 'zulu', 'liberica'] | ||||
|         java-version-file: ['.java-version', '.tool-versions'] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|         uses: actions/checkout@v3 | ||||
|       - name: Create .java-version file | ||||
|         shell: bash | ||||
|         run: echo "openjdk64-17.0.10" > .java-version | ||||
|       - name: Create .tool-versions file | ||||
|         shell: bash | ||||
|         run: echo "java openjdk64-17.0.10" > .tool-versions | ||||
|         run: echo "openjdk64-11.0.2" > .java-version | ||||
|       - name: setup-java | ||||
|         uses: ./ | ||||
|         id: setup-java | ||||
|         with: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version-file: ${{matrix.java-version-file }} | ||||
|           java-version-file: '.java-version' | ||||
|       - name: Verify Java | ||||
|         run: bash __tests__/verify-java.sh "17.0.10" "${{ steps.setup-java.outputs.path }}" | ||||
|         run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}" | ||||
|         shell: bash | ||||
|  | ||||
							
								
								
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,20 +0,0 @@ | ||||
| name: 'Publish Immutable Action Version' | ||||
| 
 | ||||
| on: | ||||
|   release: | ||||
|     types: [published] | ||||
| 
 | ||||
| jobs: | ||||
|   publish: | ||||
|     runs-on: ubuntu-latest | ||||
|     permissions: | ||||
|       contents: read | ||||
|       id-token: write | ||||
|       packages: write | ||||
| 
 | ||||
|     steps: | ||||
|       - name: Checking out | ||||
|         uses: actions/checkout@v4 | ||||
|       - name: Publish | ||||
|         id: publish | ||||
|         uses: actions/publish-immutable-action@v0.0.4 | ||||
| @ -23,7 +23,7 @@ jobs: | ||||
|     steps: | ||||
|       - name: Update the ${{ env.TAG_NAME }} tag | ||||
|         id: update-major-tag | ||||
|         uses: actions/publish-action@v0.3.0 | ||||
|         uses: actions/publish-action@v0.2.2 | ||||
|         with: | ||||
|           source-tag: ${{ env.TAG_NAME }} | ||||
|           slack-webhook: ${{ secrets.SLACK_WEBHOOK }} | ||||
|  | ||||
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/cache.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/core.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@actions/http-client.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin-framework.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin-framework.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/plugin.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/protoc.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/protoc.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime-rpc.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime-rpc.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@protobuf-ts/runtime.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/@types/node.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/camel-case.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/camel-case.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/commander.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/commander.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/dot-object.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/dot-object.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/fs.realpath.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/fs.realpath.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/glob.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/glob.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/inflight.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/inflight.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/inherits.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/inherits.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lodash.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lodash.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/lower-case.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/lower-case.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/no-case.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/no-case.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/once.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/pascal-case.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/pascal-case.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/path-is-absolute.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/path-is-absolute.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/path-to-regexp.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/path-to-regexp.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/prettier.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/prettier.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/ts-poet.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/ts-poet.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/twirp-ts.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/twirp-ts.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/typescript.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/typescript.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/undici.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/undici.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/wrappy.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								.licenses/npm/yaml.dep.yml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.licenses/npm/yaml.dep.yml
									
									
									
										generated
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										75
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										75
									
								
								README.md
									
									
									
									
									
								
							| @ -27,8 +27,8 @@ This action allows you to work with Java and Scala projects. | ||||
| 
 | ||||
|   - `java-version`: The Java version that is going to be set up. Takes a whole or [semver](#supported-version-syntax) Java version. If not specified, the action will expect `java-version-file` input to be specified. | ||||
| 
 | ||||
|   - `java-version-file`: The path to a file containing java version. Supported file types are `.java-version` and `.tool-versions`. See more details in [about .java-version-file](docs/advanced-usage.md#Java-version-file). | ||||
| 
 | ||||
|   - `java-version-file`: The path to the `.java-version` file. See more details in [about `.java-version` file](docs/advanced-usage.md#Java-version-file). | ||||
|     | ||||
|   - `distribution`: _(required)_ Java [distribution](#supported-distributions). | ||||
| 
 | ||||
|   - `java-package`: The packaging variant of the chosen distribution. Possible values: `jdk`, `jre`, `jdk+fx`, `jre+fx`. Default value: `jdk`. | ||||
| @ -69,30 +69,30 @@ This action allows you to work with Java and Scala projects. | ||||
| #### Eclipse Temurin | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' # See 'Supported distributions' for available options | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
| - run: java HelloWorldApp.java | ||||
| ``` | ||||
| 
 | ||||
| #### Azul Zulu OpenJDK | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'zulu' # See 'Supported distributions' for available options | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
| - run: java HelloWorldApp.java | ||||
| ``` | ||||
| 
 | ||||
| #### Supported version syntax | ||||
| The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation: | ||||
| - major versions: `8`, `11`, `16`, `17`, `21` | ||||
| - more specific versions: `8.0.282+8`, `8.0.232`, `11.0`, `11.0.4`, `17.0` | ||||
| - early access (EA) versions: `15-ea`, `15.0.0-ea` | ||||
| - major versions: `8`, `11`, `16`, `17` | ||||
| - more specific versions: `17.0`, `11.0`, `11.0.4`, `8.0.232`, `8.0.282+8` | ||||
| - early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`, `15.0.0+2-ea` | ||||
| 
 | ||||
| #### Supported distributions | ||||
| Currently, the following distributions are supported: | ||||
| @ -108,9 +108,6 @@ Currently, the following distributions are supported: | ||||
| | `semeru` | IBM Semeru Runtime Open Edition | [Link](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/) | [Link](https://openjdk.java.net/legal/gplv2+ce.html) | | ||||
| | `oracle` | Oracle JDK | [Link](https://www.oracle.com/java/technologies/downloads/) | [Link](https://java.com/freeuselicense) | ||||
| | `dragonwell` | Alibaba Dragonwell JDK | [Link](https://dragonwell-jdk.io/) | [Link](https://www.aliyun.com/product/dragonwell/) | ||||
| | `sapmachine` | SAP SapMachine JDK/JRE | [Link](https://sapmachine.io/) | [Link](https://github.com/SAP/SapMachine/blob/sapmachine/LICENSE) | ||||
| | `graalvm` | Oracle GraalVM | [Link](https://www.graalvm.org/) | [Link](https://www.oracle.com/downloads/licenses/graal-free-license.html) | ||||
| | `jetbrains` | JetBrains Runtime | [Link](https://github.com/JetBrains/JetBrainsRuntime/) | [Link](https://github.com/JetBrains/JetBrainsRuntime/blob/main/LICENSE) | ||||
| 
 | ||||
| **NOTE:** The different distributors can provide discrepant list of available versions / supported configurations. Please refer to the official documentation to see the list of supported versions. | ||||
| 
 | ||||
| @ -134,11 +131,11 @@ The cache input is optional, and caching is turned off by default. | ||||
| #### Caching gradle dependencies | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
|     cache: 'gradle' | ||||
|     cache-dependency-path: | # optional | ||||
|       sub-project/*.gradle* | ||||
| @ -149,11 +146,11 @@ steps: | ||||
| #### Caching maven dependencies | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
|     cache: 'maven' | ||||
|     cache-dependency-path: 'sub-project/pom.xml' # optional | ||||
| - name: Build with Maven | ||||
| @ -163,11 +160,11 @@ steps: | ||||
| #### Caching sbt dependencies | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
|     cache: 'sbt' | ||||
|     cache-dependency-path: | # optional | ||||
|       sub-project/build.sbt | ||||
| @ -183,11 +180,11 @@ Usually, cache gets downloaded in multiple segments of fixed sizes. Sometimes, a | ||||
| env: | ||||
|   SEGMENT_DOWNLOAD_TIMEOUT_MINS: '5' | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
|     cache: 'gradle' | ||||
| - run: ./gradlew build --no-daemon | ||||
| ``` | ||||
| @ -203,11 +200,11 @@ For Java distributions that are not cached on Hosted images, `check-latest` alwa | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
|     check-latest: true | ||||
| - run: java HelloWorldApp.java | ||||
| ``` | ||||
| @ -219,12 +216,12 @@ jobs: | ||||
|     runs-on: ubuntu-20.04 | ||||
|     strategy: | ||||
|       matrix: | ||||
|         java: [ '8', '11', '17', '21' ] | ||||
|         java: [ '8', '11', '17' ] | ||||
|     name: Java ${{ matrix.Java }} sample | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Setup java | ||||
|         uses: actions/setup-java@v4 | ||||
|         uses: actions/setup-java@v3 | ||||
|         with: | ||||
|           distribution: '<distribution>' | ||||
|           java-version: ${{ matrix.java }} | ||||
| @ -237,7 +234,7 @@ All versions are added to the PATH. The last version will be used and available | ||||
| 
 | ||||
| ```yaml | ||||
|     steps: | ||||
|       - uses: actions/setup-java@v4 | ||||
|       - uses: actions/setup-java@v3 | ||||
|         with: | ||||
|           distribution: '<distribution>' | ||||
|           java-version: | | ||||
| @ -260,8 +257,6 @@ In the example above multiple JDKs are installed for the same job. The result af | ||||
|   - [Amazon Corretto](docs/advanced-usage.md#Amazon-Corretto) | ||||
|   - [Oracle](docs/advanced-usage.md#Oracle) | ||||
|   - [Alibaba Dragonwell](docs/advanced-usage.md#Alibaba-Dragonwell) | ||||
|   - [SapMachine](docs/advanced-usage.md#SapMachine) | ||||
|   - [GraalVM](docs/advanced-usage.md#GraalVM) | ||||
| - [Installing custom Java package type](docs/advanced-usage.md#Installing-custom-Java-package-type) | ||||
| - [Installing custom Java architecture](docs/advanced-usage.md#Installing-custom-Java-architecture) | ||||
| - [Installing custom Java distribution from local file](docs/advanced-usage.md#Installing-Java-from-local-file) | ||||
| @ -271,16 +266,6 @@ In the example above multiple JDKs are installed for the same job. The result af | ||||
| - [Publishing using Gradle](docs/advanced-usage.md#Publishing-using-Gradle) | ||||
| - [Hosted Tool Cache](docs/advanced-usage.md#Hosted-Tool-Cache) | ||||
| - [Modifying Maven Toolchains](docs/advanced-usage.md#Modifying-Maven-Toolchains) | ||||
| - [Java Version File](docs/advanced-usage.md#Java-version-file) | ||||
| 
 | ||||
| ## Recommended permissions | ||||
| 
 | ||||
| When using the `setup-java` action in your GitHub Actions workflow, it is recommended to set the following permissions to ensure proper functionality: | ||||
| 
 | ||||
| ```yaml | ||||
| permissions: | ||||
|   contents: read # access to check out code and install dependencies | ||||
| ``` | ||||
| 
 | ||||
| ## License | ||||
| 
 | ||||
|  | ||||
| @ -481,54 +481,6 @@ | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "11.0.23.20.9" : { | ||||
|       "alpine-linux" : { | ||||
|         "x64" : { | ||||
|           "Extended" : { | ||||
|             "sha256" : "9d61fefb4f1a8368f8e7eec17893934b438b67f360cb8b7ef727ab459695d14e", | ||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "linux" : { | ||||
|         "aarch64" : { | ||||
|           "Extended" : { | ||||
|             "sha256" : "2f399231644fe1e3f1b4b5298e85f21f4863017767e9e5afb00ee46e2d7780d9", | ||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "x64" : { | ||||
|           "Extended" : { | ||||
|             "sha256" : "662dfdc584e21bcfb7ed87942b5bb4e71a7b7467d4c82211a3615d0834d1c833", | ||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "riscv" : { | ||||
|           "Extended" : { | ||||
|             "sha256" : "f3488461cbfd95e6c08ad2dc01c51950b9c629c46eea6305002311b263ce2ad9", | ||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "windows" : { | ||||
|         "x64" : { | ||||
|           "Extended" : { | ||||
|             "sha256" : "ba8dba2b7f2279f87220f396afcce49cb26482705deb5144c6e22a90ba443f9d", | ||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "17":{ | ||||
| @ -1182,143 +1134,5 @@ | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   }, | ||||
|   "21" : { | ||||
|     "21.0.3.0.3.9" : { | ||||
|       "alpine-linux" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "c3c5d193a0a6aee8757fd3036dc13b7921a4306b089bf8759ba6b822d1e8416e", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_alpine-linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_alpine-linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "linux" : { | ||||
|         "aarch64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "3cc309627ad2a9515ca50cdeff9eff118f14326b37eaa536b758570082aeb242", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "1c0508db048c0b50e2d61b2cc5a5390d3b9bcafec6e185d2cb53dde1fc530203", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "riscv" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "e374698f8ee9c66b8d4a59ba50d0511aa654b55514732bc787e29c9afaddf846", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "windows" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "0b75fc888cb2a9c7e050132fd020c30cbe65f3179feb36812a7c6be3c76ad277", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_windows.zip", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_windows.zip" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "21.0.2.0.2.13" : { | ||||
|       "alpine-linux" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "71a391987fdd569385c0afe1aaf16dbd48d127e14306793ef9ac0e0986b9632c", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_alpine-linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_alpine-linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "linux" : { | ||||
|         "aarch64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "307321a399c206f8d56e0ce5c65921f9448ec9882dfb81ffc5e841b8fb5f8ed8", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_aarch64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_aarch64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "24198f0d436bb913b152181e07205647b05da01c196f5c10a96e9a998b10381a", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "riscv" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "970a49103b8971952e46c81be844bc3776caca04da8456337f12e3a7d2a18011", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_riscv64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_riscv64_linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "windows" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "b77de54be5ef1595fc568f6f18fbd4b61d64d99a0c9c5ef78a84018b4f82032b", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_windows.zip", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_windows.zip" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "21.0.1.0.1.12" : { | ||||
|       "alpine-linux" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "b9cea58bffe555484b831ff6d7cdb277c07e86a76d32b373ec35fa21ecb5fdc9", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_alpine-linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_alpine-linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "linux" : { | ||||
|         "aarch64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "d36cef494ccc1939c6b5da04133cfdbe0b03956fd04147aef46014536bc5a37b", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_aarch64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_aarch64_linux.tar.gz" | ||||
|           } | ||||
|         }, | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "dfb8d325a98b8f577d72fd639cc54feee325eec8ebba497868184c8405a1cf41", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "windows" : { | ||||
|         "x64" : { | ||||
|           "Standard" : { | ||||
|             "sha256" : "b8ab99ed9060341f75edb8cc238830fbfd608e51536e43f34bd45c3e968ebab5", | ||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_windows.zip", | ||||
|             "content_type" : "application/zip", | ||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_windows.zip" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
| @ -1,1454 +0,0 @@ | ||||
| [ | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b465.3", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 465.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b465.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b458.1", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 458.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b458.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b453.2", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 453.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b453.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.11b1207.24", | ||||
|       "semver": "17.0.11", | ||||
|       "build": 1207.24, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.24.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.11b1207.23", | ||||
|       "semver": "17.0.11", | ||||
|       "build": 1207.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b446.1", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 446.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b446.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.14", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b829.27", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 829.27, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.27.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.23", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.12", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.21", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.21, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.21.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.6", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b375.1", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 375.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b375.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.1", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1186.1", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1186.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1186.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1171.14", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1171.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1171.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b829.26", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 829.26, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.26.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b346.3", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 346.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b346.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1000.48", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1000.48, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1000.48.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b341.4", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 341.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b341.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.17", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.17, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.17.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1166.2", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1166.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1166.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1162.7", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1162.7, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1162.7.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.11", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.9", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.7", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.7, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.7.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1000.47", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1000.47, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.47.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1000.46", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1000.46, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.46.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.3", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1080.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1080.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1080.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1072.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1072.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1072.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1070.2", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1070.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1070.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1063.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1063.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1063.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1000.32", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1000.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1000.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1059.3", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1059.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1059.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8b1000.22", | ||||
|       "semver": "17.0.8", | ||||
|       "build": 1000.22, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.22.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8b1000.8", | ||||
|       "semver": "17.0.8", | ||||
|       "build": 1000.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.6", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.5", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.5, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.5.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b985.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 985.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b985.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b979.4", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 979.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b979.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b829.16", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 829.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b966.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 966.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b966.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b964.1", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 964.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b964.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b829.14", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 829.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b953.1", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 953.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b953.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.9", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b469.82", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 469.82, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b469.82.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.5", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.5, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.5.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b653.34", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 653.34, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.34.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.4", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b653.32", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 653.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b802.4", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 802.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b802.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 802.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b785.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 785.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b785.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b779.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 779.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b779.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b762.1", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 762.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b762.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.25", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b759.1", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 759.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b759.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.23", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.14", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b469.71", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 469.71, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.71.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_16b2043.64", | ||||
|       "semver": "11.0.16", | ||||
|       "build": 2043.64, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_16-linux-x64-b2043.64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.6", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b469.67", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 469.67, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.67.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b653.1", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 653.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b653.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b646.8", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 646.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b646.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b629.2", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 629.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b629.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b617.2", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 617.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b617.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b469.62", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 469.62, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b469.62.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b597.1", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 597.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b597.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4b469.53", | ||||
|       "semver": "17.0.4", | ||||
|       "build": 469.53, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.53.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4b469.44", | ||||
|       "semver": "17.0.4", | ||||
|       "build": 469.44, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.44.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.3b469.37", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.37, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.37.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.32", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.30", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.19", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.19, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.19.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b498.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 498.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b498.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.16", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.12", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b463.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 463.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b463.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b423.10", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 423.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b423.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_15b2043.56", | ||||
|       "semver": "11.0.15", | ||||
|       "build": 2043.56, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_15-linux-x64-b2043.56.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.45", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.45, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_14_1-linux-x64-b2043.45.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.2b396.4", | ||||
|       "semver": "17.0.2", | ||||
|       "build": 396.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.2-linux-x64-b396.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.25", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.22", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.22, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.22.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.17", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.17, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.17.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.14", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.11", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b2043.2", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 2043.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b2043.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b1751.46", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 1751.46, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b1751.46.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b1993.2", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 1993.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1993.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_2b315.1", | ||||
|       "semver": "17.0.2", | ||||
|       "build": 315.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_2-linux-x64-b315.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b1982.1", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 1982.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1982.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1890.3", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1890.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1890.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.25", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.24", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.24, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.24.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.21", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.21, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.21.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_1b164.8", | ||||
|       "semver": "17.0.1", | ||||
|       "build": 164.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.19", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.19, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.19.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_13-b1504.49", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1504.49, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1504.49.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_1b164.4", | ||||
|       "semver": "17.0.1", | ||||
|       "build": 164.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.16", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1751.11", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1751.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1751.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1729.1", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1729.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1729.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1715.4", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1715.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1715.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1692.9", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1692.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1692.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.37", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.37, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.37.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1665.1", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1665.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1665.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.28", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.28, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.28.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.27", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.27, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.27.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.16", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.13", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.13, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.13.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.12", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1542.1", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1542.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1542.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.8", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "11_0_11b1536.2", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1536.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1536.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b465.3", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 465.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b465.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b458.1", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 458.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b458.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b453.2", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 453.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b453.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.11b1207.24", | ||||
|       "semver": "17.0.11", | ||||
|       "build": 1207.24, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.24.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.11b1207.23", | ||||
|       "semver": "17.0.11", | ||||
|       "build": 1207.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.3b446.1", | ||||
|       "semver": "21.0.3", | ||||
|       "build": 446.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b446.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.14", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b829.27", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 829.27, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.27.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.23", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.12", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.21", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.21, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.21.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.6", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b375.1", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 375.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b375.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1207.1", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1207.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1186.1", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1186.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1186.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1171.14", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1171.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1171.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b829.26", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 829.26, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.26.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b346.3", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 346.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b346.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1000.48", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1000.48, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1000.48.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-21.0.2b341.4", | ||||
|       "semver": "21.0.2", | ||||
|       "build": 341.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b341.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.10b1087.17", | ||||
|       "semver": "17.0.10", | ||||
|       "build": 1087.17, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.17.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1166.2", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1166.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1166.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1162.7", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1162.7, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1162.7.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.11", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.9", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.7", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.7, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.7.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1000.47", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1000.47, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.47.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1000.46", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1000.46, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.46.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.9b1087.3", | ||||
|       "semver": "17.0.9", | ||||
|       "build": 1087.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1080.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1080.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1080.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1072.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1072.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1072.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1070.2", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1070.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1070.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1063.1", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1063.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1063.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1000.32", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1000.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1000.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8.1b1059.3", | ||||
|       "semver": "17.0.8.1", | ||||
|       "build": 1059.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1059.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8b1000.22", | ||||
|       "semver": "17.0.8", | ||||
|       "build": 1000.22, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.22.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.8b1000.8", | ||||
|       "semver": "17.0.8", | ||||
|       "build": 1000.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.6", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.5", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.5, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.5.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b1000.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 1000.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b985.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 985.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b985.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b979.4", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 979.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b979.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b829.16", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 829.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b966.2", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 966.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b966.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b964.1", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 964.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b964.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b829.14", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 829.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.7b953.1", | ||||
|       "semver": "17.0.7", | ||||
|       "build": 953.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b953.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.9", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b469.82", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 469.82, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b469.82.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.5", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.5, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.5.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b653.34", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 653.34, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.34.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.4", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b829.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 829.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b653.32", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 653.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b802.4", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 802.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b802.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 802.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b785.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 785.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b785.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.6b779.1", | ||||
|       "semver": "17.0.6", | ||||
|       "build": 779.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b779.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b762.1", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 762.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b762.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.25", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b759.1", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 759.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b759.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.23", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.23, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.23.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.14", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b469.71", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 469.71, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.71.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_16b2043.64", | ||||
|       "semver": "11.0.16", | ||||
|       "build": 2043.64, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_16-linux-x64-b2043.64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b653.6", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 653.6, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.6.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.5b469.67", | ||||
|       "semver": "17.0.5", | ||||
|       "build": 469.67, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.67.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b653.1", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 653.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b653.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b646.8", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 646.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b646.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b629.2", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 629.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b629.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b617.2", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 617.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b617.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b469.62", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 469.62, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b469.62.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4.1b597.1", | ||||
|       "semver": "17.0.4.1", | ||||
|       "build": 597.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b597.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4b469.53", | ||||
|       "semver": "17.0.4", | ||||
|       "build": 469.53, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.53.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.4b469.44", | ||||
|       "semver": "17.0.4", | ||||
|       "build": 469.44, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.44.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr-release-17.0.3b469.37", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.37, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.37.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.32", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.32, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.32.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.30", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.19", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.19, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.19.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b498.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 498.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b498.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.16", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.12", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b469.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 469.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b463.3", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 463.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b463.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.3b423.10", | ||||
|       "semver": "17.0.3", | ||||
|       "build": 423.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b423.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_15b2043.56", | ||||
|       "semver": "11.0.15", | ||||
|       "build": 2043.56, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_15-linux-x64-b2043.56.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.45", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.45, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_14_1-linux-x64-b2043.45.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17.0.2b396.4", | ||||
|       "semver": "17.0.2", | ||||
|       "build": 396.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.2-linux-x64-b396.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.25", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.22", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.22, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.22.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.17", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.17, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.17.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.14", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.14, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.14.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b2043.11", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 2043.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b2043.2", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 2043.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b2043.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14_1b1751.46", | ||||
|       "semver": "11.0.14.1", | ||||
|       "build": 1751.46, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b1751.46.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b1993.2", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 1993.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1993.2.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_2b315.1", | ||||
|       "semver": "17.0.2", | ||||
|       "build": 315.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_2-linux-x64-b315.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_14b1982.1", | ||||
|       "semver": "11.0.14", | ||||
|       "build": 1982.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1982.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1890.3", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1890.3, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1890.3.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.25", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.25, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.25.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.24", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.24, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.24.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.21", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.21, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.21.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_1b164.8", | ||||
|       "semver": "17.0.1", | ||||
|       "build": 164.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.19", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.19, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.19.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_13-b1504.49", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1504.49, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1504.49.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr17_0_1b164.4", | ||||
|       "semver": "17.0.1", | ||||
|       "build": 164.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_13b1751.16", | ||||
|       "semver": "11.0.13", | ||||
|       "build": 1751.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1751.11", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1751.11, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1751.11.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1729.1", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1729.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1729.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1715.4", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1715.4, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1715.4.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1692.9", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1692.9, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1692.9.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.37", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.37, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.37.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jbr11_0_12b1665.1", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1665.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1665.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.28", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.28, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.28.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_12-b1504.27", | ||||
|       "semver": "11.0.12", | ||||
|       "build": 1504.27, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.27.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.16", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.16, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.16.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.13", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.13, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.13.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.12", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.12, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.12.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1542.1", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1542.1, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1542.1.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "jb11_0_11-b1504.8", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1504.8, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.8.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "tag_name": "11_0_11b1536.2", | ||||
|       "semver": "11.0.11", | ||||
|       "build": 1536.2, | ||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1536.2.tar.gz" | ||||
|     } | ||||
|   ] | ||||
| @ -1,443 +0,0 @@ | ||||
| [ | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14+36/bellsoft-jdk14+36-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14+36", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 11, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.11+9/bellsoft-jdk11.0.11+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.11+9", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14.0.1+8/bellsoft-jdk14.0.1+8-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14.0.1+8", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 262, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u262+10/bellsoft-jdk8u262+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u262+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 275, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jdk8u275+1-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u275+1", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 1, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9.1+1", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 202, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u202/bellsoft-jdk8u202-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u202+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 33, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12/bellsoft-jdk12-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12+33", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 282, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u282+8/bellsoft-jdk8u282+8-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u282+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9+11/bellsoft-jdk11.0.9+11-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 33, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13/bellsoft-jdk13-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13+33", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9+12/bellsoft-jdk11.0.9+12-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9+12", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 242, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u242+7/bellsoft-jdk8u242+7-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u242+7", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.2+9/bellsoft-jdk13.0.2+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.2+9", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.1/bellsoft-jdk13.0.1-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.1+9", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 265, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u265+1/bellsoft-jdk8u265+1-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u265+1", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.1+9/bellsoft-jdk15.0.1+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.1+9", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 272, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u272+10/bellsoft-jdk8u272+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u272+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16.0.2+7/bellsoft-jdk16.0.2+7-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16.0.2+7", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 6, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.6+10/bellsoft-jdk11.0.6+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.6+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 252, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u252+9/bellsoft-jdk8u252+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u252+9", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 212, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u212/bellsoft-jdk8u212-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u212+12", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.2+10/bellsoft-jdk15.0.2+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.2+10", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 10, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.10+9/bellsoft-jdk11.0.10+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.10+9", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 0, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.1/bellsoft-jdk11.0.1-linux-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.1+0", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 12, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.12+7/bellsoft-jdk11.0.12+7-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.12+7", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16+36/bellsoft-jdk16+36-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16+36", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 3, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.3/bellsoft-jdk11.0.3-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.3+12", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 8, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.8+10/bellsoft-jdk11.0.8+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.8+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.2/bellsoft-jdk11.0.2-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.2+7", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5/bellsoft-jdk11.0.5-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 4, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.4/bellsoft-jdk11.0.4-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.4+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12.0.2/bellsoft-jdk12.0.2-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12.0.2+10", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12.0.1/bellsoft-jdk12.0.1-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12.0.1+12", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.1+10/bellsoft-jdk13.0.1+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.1+10", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-linux-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 292, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u292+10/bellsoft-jdk8u292+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u292+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 222, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u222/bellsoft-jdk8u222-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u222+11", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15+36/bellsoft-jdk15+36-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15+36", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 7, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.7+10/bellsoft-jdk11.0.7+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.7+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 232, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u232+10/bellsoft-jdk8u232+10-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u232+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.2+8/bellsoft-jdk15.0.2+8-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.2+8", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 302, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u302+8/bellsoft-jdk8u302+8-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u302+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 192, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u192.all/bellsoft-jdk1.8.0-linux-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u192+12", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 13, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14.0.2+13/bellsoft-jdk14.0.2+13-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14.0.2+13", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16.0.1+9/bellsoft-jdk16.0.1+9-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16.0.1+9", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 232, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u232/bellsoft-jdk8u232-linux-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u232+9", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 13, | ||||
|     "updateVersion": 10, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl":"https://download.bell-sw.com/java/17.0.10+13/bellsoft-jdk17.0.10+13-linux-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "17.0.10+13", | ||||
|     "featureVersion": 17 | ||||
|   } | ||||
| ] | ||||
| @ -1,452 +0,0 @@ | ||||
| [ | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14+36/bellsoft-jdk14+36-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14+36", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 11, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.11+9/bellsoft-jdk11.0.11+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.11+9", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14.0.1+8/bellsoft-jdk14.0.1+8-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14.0.1+8", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 262, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u262+10/bellsoft-jdk8u262+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u262+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 275, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jdk8u275+1-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u275+1", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 1, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9.1+1/bellsoft-jdk11.0.9.1+1-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9.1+1", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 202, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u202/bellsoft-jdk8u202-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u202+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 33, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12/bellsoft-jdk12-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12+33", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 282, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u282+8/bellsoft-jdk8u282+8-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u282+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9+11/bellsoft-jdk11.0.9+11-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 33, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13/bellsoft-jdk13-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13+33", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 9, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.9+12/bellsoft-jdk11.0.9+12-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.9+12", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 242, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u242+7/bellsoft-jdk8u242+7-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u242+7", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.2+9/bellsoft-jdk13.0.2+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.2+9", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.1/bellsoft-jdk13.0.1-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.1+9", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 1, | ||||
|     "updateVersion": 265, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u265+1/bellsoft-jdk8u265+1-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u265+1", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.1+9/bellsoft-jdk15.0.1+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.1+9", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 272, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u272+10/bellsoft-jdk8u272+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u272+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16.0.2+7/bellsoft-jdk16.0.2+7-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16.0.2+7", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 6, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.6+10/bellsoft-jdk11.0.6+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.6+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 252, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u252+9/bellsoft-jdk8u252+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u252+9", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 212, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u212/bellsoft-jdk8u212-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u212+12", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.2+10/bellsoft-jdk15.0.2+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.2+10", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 10, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.10+9/bellsoft-jdk11.0.10+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.10+9", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 0, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.1/bellsoft-jdk11.0.1-windows-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.1+0", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 12, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.12+7/bellsoft-jdk11.0.12+7-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.12+7", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16+36/bellsoft-jdk16+36-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16+36", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 3, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.3/bellsoft-jdk11.0.3-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.3+12", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 8, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.8+10/bellsoft-jdk11.0.8+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.8+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 7, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.2/bellsoft-jdk11.0.2-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.2+7", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5/bellsoft-jdk11.0.5-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 4, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.4/bellsoft-jdk11.0.4-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.4+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12.0.2/bellsoft-jdk12.0.2-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12.0.2+10", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/12.0.1/bellsoft-jdk12.0.1-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "12.0.1+12", | ||||
|     "featureVersion": 12 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/13.0.1+10/bellsoft-jdk13.0.1+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "13.0.1+10", | ||||
|     "featureVersion": 13 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 5, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.5+11/bellsoft-jdk11.0.5+11-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.5+11", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 292, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u292+10/bellsoft-jdk8u292+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u292+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 11, | ||||
|     "updateVersion": 222, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u222/bellsoft-jdk8u222-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u222+11", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 36, | ||||
|     "updateVersion": 0, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15+36/bellsoft-jdk15+36-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15+36", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 7, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/11.0.7+10/bellsoft-jdk11.0.7+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "11.0.7+10", | ||||
|     "featureVersion": 11 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 10, | ||||
|     "updateVersion": 232, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u232+10/bellsoft-jdk8u232+10-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u232+10", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/15.0.2+8/bellsoft-jdk15.0.2+8-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "15.0.2+8", | ||||
|     "featureVersion": 15 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 8, | ||||
|     "updateVersion": 302, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u302+8/bellsoft-jdk8u302+8-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u302+8", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 12, | ||||
|     "updateVersion": 192, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u192.all/bellsoft-jdk1.8.0-windows-amd64.tar.gz", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u192+12", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 13, | ||||
|     "updateVersion": 2, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/14.0.2+13/bellsoft-jdk14.0.2+13-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "14.0.2+13", | ||||
|     "featureVersion": 14 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 1, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/16.0.1+9/bellsoft-jdk16.0.1+9-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "16.0.1+9", | ||||
|     "featureVersion": 16 | ||||
|   }, | ||||
|   { | ||||
|     "buildVersion": 9, | ||||
|     "updateVersion": 232, | ||||
|     "patchVersion": 0, | ||||
|     "downloadUrl": "https://github.com/bell-sw/Liberica/releases/download/8u232/bellsoft-jdk8u232-windows-amd64.zip", | ||||
|     "interimVersion": 0, | ||||
|     "version": "8u232+9", | ||||
|     "featureVersion": 8 | ||||
|   }, | ||||
|     { | ||||
|         "buildVersion": 14, | ||||
|         "updateVersion": 2, | ||||
|         "patchVersion": 0, | ||||
|         "downloadUrl": "https://download.bell-sw.com/java/21.0.2+14/bellsoft-jdk21.0.2+14-windows-aarch64.zip", | ||||
|         "interimVersion": 0, | ||||
|         "version": "21.0.2+14", | ||||
|         "featureVersion": 21 | ||||
|       }, | ||||
|       { | ||||
|         "buildVersion": 13, | ||||
|         "updateVersion": 10, | ||||
|         "patchVersion": 0, | ||||
|         "downloadUrl": "https://download.bell-sw.com/java/17.0.10+13/bellsoft-jdk17.0.10+13-windows-aarch64.zip", | ||||
|         "interimVersion": 0, | ||||
|         "version": "17.0.10+13", | ||||
|         "featureVersion": 17 | ||||
|       } | ||||
| ] | ||||
| @ -70,12 +70,6 @@ | ||||
|             "arch": "aarch64", | ||||
|             "platform": "linux", | ||||
|             "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-linux-aarch64.tar.gz" | ||||
|           }, | ||||
|           { | ||||
|             "filename": "microsoft-jdk-17.0.7-windows-aarch64.zip", | ||||
|             "arch": "aarch64", | ||||
|             "platform": "win32", | ||||
|             "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-windows-aarch64.zip" | ||||
|           } | ||||
|         ] | ||||
|     }, | ||||
|  | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -1,254 +0,0 @@ | ||||
| [   | ||||
|   { | ||||
|     "id": 10996, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu1.8.0_05-8.1.0.10-linux.tar.gz", | ||||
|     "name": "zulu1.8.0_05-8.1.0.10-linux.tar.gz", | ||||
|     "zulu_version": [8, 1, 0, 10], | ||||
|     "jdk_version": [8, 0, 5, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10997, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu1.8.0_11-8.2.0.1-linux.tar.gz", | ||||
|     "name": "zulu1.8.0_11-8.2.0.1-linux.tar.gz", | ||||
|     "zulu_version": [8, 2, 0, 1], | ||||
|     "jdk_version": [8, 0, 11, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10346, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.21.0.1-jdk8.0.131-linux_x64.tar.gz", | ||||
|     "name": "zulu8.21.0.1-jdk8.0.131-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 21, 0, 1], | ||||
|     "jdk_version": [8, 0, 131, 11] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10362, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.23.0.3-jdk8.0.144-linux_x64.tar.gz", | ||||
|     "name": "zulu8.23.0.3-jdk8.0.144-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 23, 0, 3], | ||||
|     "jdk_version": [8, 0, 144, 1] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10399, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.25.0.1-jdk8.0.152-linux_x64.tar.gz", | ||||
|     "name": "zulu8.25.0.1-jdk8.0.152-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 25, 0, 1], | ||||
|     "jdk_version": [8, 0, 152, 16] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11355, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.46.0.19-ca-jdk8.0.252-linux_x64.tar.gz", | ||||
|     "name": "zulu8.46.0.19-ca-jdk8.0.252-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 46, 0, 19], | ||||
|     "jdk_version": [8, 0, 252, 14] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11481, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.47-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.47-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 47], | ||||
|     "jdk_version": [8, 0, 262, 17] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11622, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.51-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.51-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 51], | ||||
|     "jdk_version": [8, 0, 262, 19] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11535, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.49-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.49-ca-jdk8.0.262-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 49], | ||||
|     "jdk_version": [8, 0, 262, 18] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12424, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.52.0.23-ca-jdk8.0.282-linux_x64.tar.gz", | ||||
|     "name": "zulu8.52.0.23-ca-jdk8.0.282-linux_x64.tar.gz", | ||||
|     "zulu_version": [8, 52, 0, 23], | ||||
|     "jdk_version": [8, 0, 282, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10383, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu9.0.0.15-jdk9.0.0-linux_x64.tar.gz", | ||||
|     "name": "zulu9.0.0.15-jdk9.0.0-linux_x64.tar.gz", | ||||
|     "zulu_version": [9, 0, 0, 15], | ||||
|     "jdk_version": [9, 0, 0, 0] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10413, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu9.0.1.3-jdk9.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu9.0.1.3-jdk9.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [9, 0, 1, 3], | ||||
|     "jdk_version": [9, 0, 1, 0] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10503, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu10.2+3-jdk10.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu10.2+3-jdk10.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [10, 2, 3, 0], | ||||
|     "jdk_version": [10, 0, 1, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10541, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu10.3+5-jdk10.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu10.3+5-jdk10.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [10, 3, 5, 0], | ||||
|     "jdk_version": [10, 0, 2, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10576, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu11.2.3-jdk11.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 2, 3, 0], | ||||
|     "jdk_version": [11, 0, 1, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10604, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu11.29.3-ca-jdk11.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 29, 3, 0], | ||||
|     "jdk_version": [11, 0, 2, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10687, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz", | ||||
|     "name": "zulu11.31.11-ca-jdk11.0.3-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 31, 11, 0], | ||||
|     "jdk_version": [11, 0, 3, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10856, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.13-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "name": "zulu11.35.13-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 13, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10933, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.15-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "name": "zulu11.35.15-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 15, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10933, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.11-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "name": "zulu11.35.15-ca-jdk11.0.5-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 11, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12397, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-linux_x64.tar.gz", | ||||
|     "name": "zulu11.45.27-ca-jdk11.0.10-linux_x64.tar.gz", | ||||
|     "zulu_version": [11, 45, 27, 0], | ||||
|     "jdk_version": [11, 0, 10, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10667, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.1.3-ca-jdk12.0.0-linux_x64.tar.gz", | ||||
|     "name": "zulu12.1.3-ca-jdk12.0.0-linux_x64.tar.gz", | ||||
|     "zulu_version": [12, 1, 3, 0], | ||||
|     "jdk_version": [12, 0, 0, 33] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10710, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu12.2.3-ca-jdk12.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [12, 2, 3, 0], | ||||
|     "jdk_version": [12, 0, 1, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10780, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.3.11-ca-jdk12.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu12.3.11-ca-jdk12.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [12, 3, 11, 0], | ||||
|     "jdk_version": [12, 0, 2, 3] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10846, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.27.9-ca-jdk13.0.0-linux_x64.tar.gz", | ||||
|     "name": "zulu13.27.9-ca-jdk13.0.0-linux_x64.tar.gz", | ||||
|     "zulu_version": [13, 27, 9, 0], | ||||
|     "jdk_version": [13, 0, 0, 33] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10888, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.28.11-ca-jdk13.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu13.28.11-ca-jdk13.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [13, 28, 11, 0], | ||||
|     "jdk_version": [13, 0, 1, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11073, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.29.9-ca-jdk13.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu13.29.9-ca-jdk13.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [13, 29, 9, 0], | ||||
|     "jdk_version": [13, 0, 2, 6] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12408, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.37.21-ca-jdk13.0.6-linux_x64.tar.gz", | ||||
|     "name": "zulu13.37.21-ca-jdk13.0.6-linux_x64.tar.gz", | ||||
|     "zulu_version": [13, 37, 21, 0], | ||||
|     "jdk_version": [13, 0, 6, 5] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11236, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.27.1-ca-jdk14.0.0-linux_x64.tar.gz", | ||||
|     "name": "zulu14.27.1-ca-jdk14.0.0-linux_x64.tar.gz", | ||||
|     "zulu_version": [14, 27, 1, 0], | ||||
|     "jdk_version": [14, 0, 0, 36] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11349, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu14.28.21-ca-jdk14.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [14, 28, 21, 0], | ||||
|     "jdk_version": [14, 0, 1, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11513, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.29.23-ca-jdk14.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu14.29.23-ca-jdk14.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [14, 29, 23, 0], | ||||
|     "jdk_version": [14, 0, 2, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11780, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz", | ||||
|     "name": "zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz", | ||||
|     "zulu_version": [15, 27, 17, 0], | ||||
|     "jdk_version": [15, 0, 0, 36] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11924, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.28.13-ca-jdk15.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu15.28.13-ca-jdk15.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [15, 28, 13, 0], | ||||
|     "jdk_version": [15, 0, 1, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12101, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.28.51-ca-jdk15.0.1-linux_x64.tar.gz", | ||||
|     "name": "zulu15.28.51-ca-jdk15.0.1-linux_x64.tar.gz", | ||||
|     "zulu_version": [15, 28, 51, 0], | ||||
|     "jdk_version": [15, 0, 1, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12445, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-linux_x64.tar.gz", | ||||
|     "name": "zulu15.29.15-ca-jdk15.0.2-linux_x64.tar.gz", | ||||
|     "zulu_version": [15, 29, 15, 0], | ||||
|     "jdk_version": [15, 0, 2, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12447, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz", | ||||
|     "name": "zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz", | ||||
|     "zulu_version": [21, 32, 17, 0], | ||||
|     "jdk_version": [21, 0, 2, 6] | ||||
|   } | ||||
| ] | ||||
| @ -1,254 +0,0 @@ | ||||
| [   | ||||
|   { | ||||
|     "id": 10996, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu1.8.0_05-8.1.0.10-windows.tar.gz", | ||||
|     "name": "zulu1.8.0_05-8.1.0.10-windows.tar.gz", | ||||
|     "zulu_version": [8, 1, 0, 10], | ||||
|     "jdk_version": [8, 0, 5, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10997, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu1.8.0_11-8.2.0.1-windows.tar.gz", | ||||
|     "name": "zulu1.8.0_11-8.2.0.1-windows.tar.gz", | ||||
|     "zulu_version": [8, 2, 0, 1], | ||||
|     "jdk_version": [8, 0, 11, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10346, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.21.0.1-jdk8.0.131-windows_x64.tar.gz", | ||||
|     "name": "zulu8.21.0.1-jdk8.0.131-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 21, 0, 1], | ||||
|     "jdk_version": [8, 0, 131, 11] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10362, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.23.0.3-jdk8.0.144-windows_x64.tar.gz", | ||||
|     "name": "zulu8.23.0.3-jdk8.0.144-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 23, 0, 3], | ||||
|     "jdk_version": [8, 0, 144, 1] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10399, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.25.0.1-jdk8.0.152-windows_x64.tar.gz", | ||||
|     "name": "zulu8.25.0.1-jdk8.0.152-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 25, 0, 1], | ||||
|     "jdk_version": [8, 0, 152, 16] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11355, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.46.0.19-ca-jdk8.0.252-windows_x64.tar.gz", | ||||
|     "name": "zulu8.46.0.19-ca-jdk8.0.252-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 46, 0, 19], | ||||
|     "jdk_version": [8, 0, 252, 14] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11481, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.47-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.47-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 47], | ||||
|     "jdk_version": [8, 0, 262, 17] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11622, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.51-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.51-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 51], | ||||
|     "jdk_version": [8, 0, 262, 19] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11535, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.48.0.49-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "name": "zulu8.48.0.49-ca-jdk8.0.262-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 48, 0, 49], | ||||
|     "jdk_version": [8, 0, 262, 18] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12424, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu8.52.0.23-ca-jdk8.0.282-windows_x64.tar.gz", | ||||
|     "name": "zulu8.52.0.23-ca-jdk8.0.282-windows_x64.tar.gz", | ||||
|     "zulu_version": [8, 52, 0, 23], | ||||
|     "jdk_version": [8, 0, 282, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10383, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu9.0.0.15-jdk9.0.0-windows_x64.tar.gz", | ||||
|     "name": "zulu9.0.0.15-jdk9.0.0-windows_x64.tar.gz", | ||||
|     "zulu_version": [9, 0, 0, 15], | ||||
|     "jdk_version": [9, 0, 0, 0] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10413, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu9.0.1.3-jdk9.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu9.0.1.3-jdk9.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [9, 0, 1, 3], | ||||
|     "jdk_version": [9, 0, 1, 0] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10503, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu10.2+3-jdk10.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu10.2+3-jdk10.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [10, 2, 3, 0], | ||||
|     "jdk_version": [10, 0, 1, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10541, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu10.3+5-jdk10.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu10.3+5-jdk10.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [10, 3, 5, 0], | ||||
|     "jdk_version": [10, 0, 2, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10576, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.2.3-jdk11.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu11.2.3-jdk11.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 2, 3, 0], | ||||
|     "jdk_version": [11, 0, 1, 13] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10604, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.29.3-ca-jdk11.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu11.29.3-ca-jdk11.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 29, 3, 0], | ||||
|     "jdk_version": [11, 0, 2, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10687, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.31.11-ca-jdk11.0.3-windows_x64.tar.gz", | ||||
|     "name": "zulu11.31.11-ca-jdk11.0.3-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 31, 11, 0], | ||||
|     "jdk_version": [11, 0, 3, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10856, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.13-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "name": "zulu11.35.13-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 13, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10933, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.15-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "name": "zulu11.35.15-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 15, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10933, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.35.11-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "name": "zulu11.35.15-ca-jdk11.0.5-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 35, 11, 0], | ||||
|     "jdk_version": [11, 0, 5, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12397, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-windows_x64.tar.gz", | ||||
|     "name": "zulu11.45.27-ca-jdk11.0.10-windows_x64.tar.gz", | ||||
|     "zulu_version": [11, 45, 27, 0], | ||||
|     "jdk_version": [11, 0, 10, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10667, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.1.3-ca-jdk12.0.0-windows_x64.tar.gz", | ||||
|     "name": "zulu12.1.3-ca-jdk12.0.0-windows_x64.tar.gz", | ||||
|     "zulu_version": [12, 1, 3, 0], | ||||
|     "jdk_version": [12, 0, 0, 33] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10710, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.2.3-ca-jdk12.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu12.2.3-ca-jdk12.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [12, 2, 3, 0], | ||||
|     "jdk_version": [12, 0, 1, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10780, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu12.3.11-ca-jdk12.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu12.3.11-ca-jdk12.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [12, 3, 11, 0], | ||||
|     "jdk_version": [12, 0, 2, 3] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10846, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.27.9-ca-jdk13.0.0-windows_x64.tar.gz", | ||||
|     "name": "zulu13.27.9-ca-jdk13.0.0-windows_x64.tar.gz", | ||||
|     "zulu_version": [13, 27, 9, 0], | ||||
|     "jdk_version": [13, 0, 0, 33] | ||||
|   }, | ||||
|   { | ||||
|     "id": 10888, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.28.11-ca-jdk13.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu13.28.11-ca-jdk13.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [13, 28, 11, 0], | ||||
|     "jdk_version": [13, 0, 1, 10] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11073, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.29.9-ca-jdk13.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu13.29.9-ca-jdk13.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [13, 29, 9, 0], | ||||
|     "jdk_version": [13, 0, 2, 6] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12408, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu13.37.21-ca-jdk13.0.6-windows_x64.tar.gz", | ||||
|     "name": "zulu13.37.21-ca-jdk13.0.6-windows_x64.tar.gz", | ||||
|     "zulu_version": [13, 37, 21, 0], | ||||
|     "jdk_version": [13, 0, 6, 5] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11236, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.27.1-ca-jdk14.0.0-windows_x64.tar.gz", | ||||
|     "name": "zulu14.27.1-ca-jdk14.0.0-windows_x64.tar.gz", | ||||
|     "zulu_version": [14, 27, 1, 0], | ||||
|     "jdk_version": [14, 0, 0, 36] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11349, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.28.21-ca-jdk14.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu14.28.21-ca-jdk14.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [14, 28, 21, 0], | ||||
|     "jdk_version": [14, 0, 1, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11513, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu14.29.23-ca-jdk14.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu14.29.23-ca-jdk14.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [14, 29, 23, 0], | ||||
|     "jdk_version": [14, 0, 2, 12] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11780, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-windows_x64.tar.gz", | ||||
|     "name": "zulu15.27.17-ca-jdk15.0.0-windows_x64.tar.gz", | ||||
|     "zulu_version": [15, 27, 17, 0], | ||||
|     "jdk_version": [15, 0, 0, 36] | ||||
|   }, | ||||
|   { | ||||
|     "id": 11924, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.28.13-ca-jdk15.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu15.28.13-ca-jdk15.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [15, 28, 13, 0], | ||||
|     "jdk_version": [15, 0, 1, 8] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12101, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.28.51-ca-jdk15.0.1-windows_x64.tar.gz", | ||||
|     "name": "zulu15.28.51-ca-jdk15.0.1-windows_x64.tar.gz", | ||||
|     "zulu_version": [15, 28, 51, 0], | ||||
|     "jdk_version": [15, 0, 1, 9] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12445, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu15.29.15-ca-jdk15.0.2-windows_x64.tar.gz", | ||||
|     "name": "zulu15.29.15-ca-jdk15.0.2-windows_x64.tar.gz", | ||||
|     "zulu_version": [15, 29, 15, 0], | ||||
|     "jdk_version": [15, 0, 2, 7] | ||||
|   }, | ||||
|   { | ||||
|     "id": 12446, | ||||
|     "url": "https://cdn.azul.com/zulu/bin/zulu17.48.15-ca-jdk17.0.10-windows_aarch64.zip", | ||||
|     "name": "zulu17.48.15-ca-jdk17.0.10-win_aarhc4.zip", | ||||
|     "zulu_version": [17, 48, 15, 0], | ||||
|     "jdk_version": [17, 0, 10, 7] | ||||
|   } | ||||
| ] | ||||
| @ -41,16 +41,15 @@ describe('getAvailableVersions', () => { | ||||
|   describe('getAvailableVersions', () => { | ||||
|     it.each([ | ||||
|       ['8', 'x86', 'linux', 0], | ||||
|       ['8', 'aarch64', 'linux', 28], | ||||
|       ['8.6.6', 'x64', 'linux', 31], | ||||
|       ['8', 'aarch64', 'linux', 24], | ||||
|       ['8.6.6', 'x64', 'linux', 27], | ||||
|       ['8', 'x86', 'anolis', 0], | ||||
|       ['8', 'x86', 'windows', 0], | ||||
|       ['8', 'x86', 'mac', 0], | ||||
|       ['11', 'x64', 'linux', 31], | ||||
|       ['11', 'aarch64', 'linux', 28], | ||||
|       ['17', 'riscv', 'linux', 3], | ||||
|       ['16.0.1', 'x64', 'linux', 31], | ||||
|       ['21', 'x64', 'linux', 31] | ||||
|       ['11', 'x64', 'linux', 27], | ||||
|       ['11', 'aarch64', 'linux', 24], | ||||
|       ['17', 'riscv', 'linux', 0], | ||||
|       ['16.0.1', 'x64', 'linux', 27] | ||||
|     ])( | ||||
|       'should get right number of available versions from JSON', | ||||
|       async ( | ||||
| @ -104,31 +103,25 @@ describe('getAvailableVersions', () => { | ||||
|         '11', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz' | ||||
|         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'linux', | ||||
|         'aarch64', | ||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'linux', | ||||
|         'riscv', | ||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz' | ||||
|         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_aarch64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'windows', | ||||
|         'x64', | ||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip' | ||||
|         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_windows.zip' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'alpine-linux', | ||||
|         'x64', | ||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz' | ||||
|         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_alpine-linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11.0.17', | ||||
| @ -165,30 +158,6 @@ describe('getAvailableVersions', () => { | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'https://github.com/alibaba/dragonwell17/releases/download/dragonwell-standard-17.0.4.0.4%2B8_jdk-17.0.4-ga/Alibaba_Dragonwell_Standard_17.0.4.0.4%2B8_x64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17.0.4+8', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'https://github.com/alibaba/dragonwell17/releases/download/dragonwell-standard-17.0.4.0.4%2B8_jdk-17.0.4-ga/Alibaba_Dragonwell_Standard_17.0.4.0.4%2B8_x64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '21', | ||||
|         'linux', | ||||
|         'aarch64', | ||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '21.0.3+9', | ||||
|         'linux', | ||||
|         'riscv', | ||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '21.0.1+12', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz' | ||||
|       ] | ||||
|     ])( | ||||
|       'should return proper link according to the specified java-version, platform and arch', | ||||
|  | ||||
| @ -1,152 +0,0 @@ | ||||
| import {GraalVMDistribution} from '../../src/distributions/graalvm/installer'; | ||||
| import os from 'os'; | ||||
| import * as core from '@actions/core'; | ||||
| import {getDownloadArchiveExtension} from '../../src/util'; | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   let distribution: GraalVMDistribution; | ||||
|   let spyDebug: jest.SpyInstance; | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     distribution = new GraalVMDistribution({ | ||||
|       version: '', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
| 
 | ||||
|     spyDebug = jest.spyOn(core, 'debug'); | ||||
|     spyDebug.mockImplementation(() => {}); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       '21', | ||||
|       '21', | ||||
|       'https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' | ||||
|     ], | ||||
|     [ | ||||
|       '21.0.4', | ||||
|       '21.0.4', | ||||
|       'https://download.oracle.com/graalvm/21/archive/graalvm-jdk-21.0.4_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' | ||||
|     ], | ||||
|     [ | ||||
|       '17', | ||||
|       '17', | ||||
|       'https://download.oracle.com/graalvm/17/latest/graalvm-jdk-17_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' | ||||
|     ], | ||||
|     [ | ||||
|       '17.0.12', | ||||
|       '17.0.12', | ||||
|       'https://download.oracle.com/graalvm/17/archive/graalvm-jdk-17.0.12_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' | ||||
|     ] | ||||
|   ])('version is %s -> %s', async (input, expectedVersion, expectedUrl) => { | ||||
|     /* Needed only for this particular test because /latest/ urls tend to change */ | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'head'); | ||||
|     spyHttpClient.mockReturnValue( | ||||
|       Promise.resolve({ | ||||
|         message: { | ||||
|           statusCode: 200 | ||||
|         } | ||||
|       }) | ||||
|     ); | ||||
| 
 | ||||
|     const result = await distribution['findPackageForDownload'](input); | ||||
| 
 | ||||
|     jest.restoreAllMocks(); | ||||
| 
 | ||||
|     expect(result.version).toBe(expectedVersion); | ||||
|     const osType = distribution.getPlatform(); | ||||
|     const archiveType = getDownloadArchiveExtension(); | ||||
|     const url = expectedUrl | ||||
|       .replace('{{OS_TYPE}}', osType) | ||||
|       .replace('{{ARCHIVE_TYPE}}', archiveType); | ||||
|     expect(result.url).toBe(url); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       '24-ea', | ||||
|       /^https:\/\/github\.com\/graalvm\/oracle-graalvm-ea-builds\/releases\/download\/jdk-24\.0\.0-ea\./ | ||||
|     ] | ||||
|   ])('version is %s -> %s', async (version, expectedUrlPrefix) => { | ||||
|     /* Needed only for this particular test because /latest/ urls tend to change */ | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'head'); | ||||
|     spyHttpClient.mockReturnValue( | ||||
|       Promise.resolve({ | ||||
|         message: { | ||||
|           statusCode: 200 | ||||
|         } | ||||
|       }) | ||||
|     ); | ||||
| 
 | ||||
|     const eaDistro = new GraalVMDistribution({ | ||||
|       version, | ||||
|       architecture: '', // to get default value
 | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
| 
 | ||||
|     const versionWithoutEA = version.split('-')[0]; | ||||
|     const result = await eaDistro['findPackageForDownload'](versionWithoutEA); | ||||
| 
 | ||||
|     jest.restoreAllMocks(); | ||||
| 
 | ||||
|     expect(result.url).toEqual(expect.stringMatching(expectedUrlPrefix)); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['amd64', 'x64'], | ||||
|     ['arm64', 'aarch64'] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: string) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
|       jest.spyOn(os, 'platform').mockReturnValue('linux'); | ||||
| 
 | ||||
|       const version = '21'; | ||||
|       const distro = new GraalVMDistribution({ | ||||
|         version, | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       const osType = distribution.getPlatform(); | ||||
|       if (osType === 'windows' && distroArch == 'aarch64') { | ||||
|         return; // skip, aarch64 is not available for Windows
 | ||||
|       } | ||||
|       const archiveType = getDownloadArchiveExtension(); | ||||
|       const result = await distro['findPackageForDownload'](version); | ||||
|       const expectedUrl = `https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_${osType}-${distroArch}_bin.${archiveType}`; | ||||
| 
 | ||||
|       expect(result.url).toBe(expectedUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( | ||||
|       /GraalVM is only supported for JDK 17 and later/ | ||||
|     ); | ||||
|     await expect(distribution['findPackageForDownload']('11')).rejects.toThrow( | ||||
|       /GraalVM is only supported for JDK 17 and later/ | ||||
|     ); | ||||
|     await expect(distribution['findPackageForDownload']('18')).rejects.toThrow( | ||||
|       /Could not find GraalVM for SemVer */ | ||||
|     ); | ||||
| 
 | ||||
|     const unavailableEADistro = new GraalVMDistribution({ | ||||
|       version: '17-ea', | ||||
|       architecture: '', // to get default value
 | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     await expect( | ||||
|       unavailableEADistro['findPackageForDownload']('17') | ||||
|     ).rejects.toThrow( | ||||
|       /No GraalVM EA build found\. Are you sure java-version: '17-ea' is correct\?/ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| @ -1,120 +0,0 @@ | ||||
| import https from 'https'; | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import {JetBrainsDistribution} from '../../src/distributions/jetbrains/installer'; | ||||
| 
 | ||||
| import manifestData from '../data/jetbrains.json'; | ||||
| import os from 'os'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: [] | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   it('load available versions', async () => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValueOnce({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData as any | ||||
|     }); | ||||
| 
 | ||||
|     const distribution = new JetBrainsDistribution({ | ||||
|       version: '17', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     const availableVersions = await distribution['getAvailableVersions'](); | ||||
|     expect(availableVersions).not.toBeNull(); | ||||
| 
 | ||||
|     const length = | ||||
|       os.platform() === 'win32' | ||||
|         ? manifestData.length - 1 | ||||
|         : manifestData.length + 1; | ||||
|     expect(availableVersions.length).toBe(length); | ||||
|   }, 10_000); | ||||
| }); | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   it.each([ | ||||
|     ['17', '17.0.11+1207.24'], | ||||
|     ['11.0', '11.0.16+2043.64'], | ||||
|     ['11.0.11', '11.0.11+1542.1'], | ||||
|     ['21.0.2', '21.0.2+375.1'], | ||||
|     ['21', '21.0.3+465.3'], | ||||
|     ['x', '21.0.3+465.3'] | ||||
|   ])('version is resolved correctly %s -> %s', async (input, expected) => { | ||||
|     const distribution = new JetBrainsDistribution({ | ||||
|       version: input, | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData as any; | ||||
|     const resolvedVersion = await distribution['findPackageForDownload'](input); | ||||
|     expect(resolvedVersion.version).toBe(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it.each(['17', '11.0', '11.0.11', '21.0.2', '21'])( | ||||
|     'version %s can be downloaded', | ||||
|     async input => { | ||||
|       const distribution = new JetBrainsDistribution({ | ||||
|         version: input, | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
|       distribution['getAvailableVersions'] = async () => manifestData as any; | ||||
|       const resolvedVersion = await distribution['findPackageForDownload']( | ||||
|         input | ||||
|       ); | ||||
|       const url = resolvedVersion.url; | ||||
|       const options = {method: 'HEAD'}; | ||||
| 
 | ||||
|       https.request(url, options, res => { | ||||
|         // JetBrains uses 403 for inexistent packages
 | ||||
|         expect(res.statusCode).not.toBe(403); | ||||
|         res.resume(); | ||||
|       }); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('version is not found', async () => { | ||||
|     const distribution = new JetBrainsDistribution({ | ||||
|       version: '8.0.452', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData as any; | ||||
|     await expect(distribution['findPackageForDownload']('8.x')).rejects.toThrow( | ||||
|       /Could not find satisfied version for SemVer */ | ||||
|     ); | ||||
|   }); | ||||
| 
 | ||||
|   it('version list is empty', async () => { | ||||
|     const distribution = new JetBrainsDistribution({ | ||||
|       version: '8', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => []; | ||||
|     await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( | ||||
|       /Could not find satisfied version for SemVer */ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| @ -1,290 +0,0 @@ | ||||
| import {LibericaDistributions} from '../../src/distributions/liberica/installer'; | ||||
| import { | ||||
|   ArchitectureOptions, | ||||
|   LibericaVersion | ||||
| } from '../../src/distributions/liberica/models'; | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import os from 'os'; | ||||
| 
 | ||||
| import manifestData from '../data/liberica-linux.json'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData as LibericaVersion[] | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         version: '11.x', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=32&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11-ea', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=32&arch=x86&build-type=ea' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '16.0.2', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=64&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '16.0.2', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jre&bitness=64&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'armv7', | ||||
|         packageType: 'jdk+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk-full&bitness=32&arch=arm&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'aarch64', | ||||
|         packageType: 'jre+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jre-full&bitness=64&arch=arm&build-type=all' | ||||
|     ] | ||||
|   ])('build correct url for %s -> %s', async (input, urlParams) => { | ||||
|     const additionalParams = | ||||
|       '&installation-type=archive&fields=downloadUrl%2Cversion%2CfeatureVersion%2CinterimVersion%2C' + | ||||
|       'updateVersion%2CbuildVersion'; | ||||
|     const distribution = new LibericaDistributions(input); | ||||
|     distribution['getPlatformOption'] = () => 'linux'; | ||||
|     const buildUrl = `https://api.bell-sw.com/v1/liberica/releases?os=linux&${urlParams}${additionalParams}`; | ||||
| 
 | ||||
|     await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|     expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|     expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|   }); | ||||
| 
 | ||||
|   type DistroArch = { | ||||
|     bitness: string; | ||||
|     arch: string; | ||||
|   }; | ||||
|   it.each([ | ||||
|     ['amd64', {bitness: '64', arch: 'x86'}], | ||||
|     ['arm64', {bitness: '64', arch: 'arm'}] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: DistroArch) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
| 
 | ||||
|       const distribution = new LibericaDistributions({ | ||||
|         version: '17', | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       const additionalParams = | ||||
|         '&installation-type=archive&fields=downloadUrl%2Cversion%2CfeatureVersion%2CinterimVersion%2C' + | ||||
|         'updateVersion%2CbuildVersion'; | ||||
|       distribution['getPlatformOption'] = () => 'linux'; | ||||
| 
 | ||||
|       const buildUrl = `https://api.bell-sw.com/v1/liberica/releases?os=linux&bundle-type=jdk&bitness=${distroArch.bitness}&arch=${distroArch.arch}&build-type=all${additionalParams}`; | ||||
| 
 | ||||
|       await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|       expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|       expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('load available versions', async () => { | ||||
|     const distribution = new LibericaDistributions({ | ||||
|       version: '11', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     const availableVersions = await distribution['getAvailableVersions'](); | ||||
|     expect(availableVersions).toEqual(manifestData); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getArchitectureOptions', () => { | ||||
|   it.each([ | ||||
|     ['x86', {bitness: '32', arch: 'x86'}], | ||||
|     ['x64', {bitness: '64', arch: 'x86'}], | ||||
|     ['armv7', {bitness: '32', arch: 'arm'}], | ||||
|     ['aarch64', {bitness: '64', arch: 'arm'}], | ||||
|     ['ppc64le', {bitness: '64', arch: 'ppc'}] | ||||
|   ] as [string, ArchitectureOptions][])( | ||||
|     'parse architecture %s -> %s', | ||||
|     (input, expected) => { | ||||
|       const distributions = new LibericaDistributions({ | ||||
|         architecture: input, | ||||
|         checkLatest: false, | ||||
|         packageType: '', | ||||
|         version: '' | ||||
|       }); | ||||
| 
 | ||||
|       expect(distributions['getArchitectureOptions']()).toEqual(expected); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it.each(['armv6', 's390x'])('not support architecture %s', input => { | ||||
|     const distributions = new LibericaDistributions({ | ||||
|       architecture: input, | ||||
|       checkLatest: false, | ||||
|       packageType: '', | ||||
|       version: '' | ||||
|     }); | ||||
| 
 | ||||
|     expect(() => distributions['getArchitectureOptions']()).toThrow( | ||||
|       /Architecture '\w+' is not supported\. Supported architectures: .*/ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   let distribution: LibericaDistributions; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     distribution = new LibericaDistributions({ | ||||
|       version: '', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['8', '8.0.302+8'], | ||||
|     ['11.x', '11.0.12+7'], | ||||
|     ['8.0', '8.0.302+8'], | ||||
|     ['11.0.x', '11.0.12+7'], | ||||
|     ['15', '15.0.2+10'], | ||||
|     ['15.0', '15.0.2+10'], | ||||
|     ['15.0.0', '15.0.0+36'], | ||||
|     ['8.0.232', '8.0.232+10'], | ||||
|     ['8.0.232+9', '8.0.232+9'], | ||||
|     ['15.0.2+8', '15.0.2+8'], | ||||
|     ['15.0.2+10', '15.0.2+10'] | ||||
|   ])('version is %s -> %s', async (input, expected) => { | ||||
|     const result = await distribution['findPackageForDownload'](input); | ||||
|     expect(result.version).toBe(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     await expect(distribution['findPackageForDownload']('18')).rejects.toThrow( | ||||
|       /Could not find satisfied version for semver */ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getPlatformOption', () => { | ||||
|   const distributions = new LibericaDistributions({ | ||||
|     architecture: 'x64', | ||||
|     version: '11', | ||||
|     packageType: 'jdk', | ||||
|     checkLatest: false | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['linux', 'linux'], | ||||
|     ['darwin', 'macos'], | ||||
|     ['win32', 'windows'], | ||||
|     ['cygwin', 'windows'], | ||||
|     ['sunos', 'solaris'] | ||||
|   ])('os version %s -> %s', (input, expected) => { | ||||
|     const actual = distributions['getPlatformOption'](input as NodeJS.Platform); | ||||
| 
 | ||||
|     expect(actual).toEqual(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it.each(['aix', 'android', 'freebsd', 'openbsd', 'netbsd'])( | ||||
|     'not support os version %s', | ||||
|     input => { | ||||
|       expect(() => | ||||
|         distributions['getPlatformOption'](input as NodeJS.Platform) | ||||
|       ).toThrow(/Platform '\w+' is not supported\. Supported platforms: .+/); | ||||
|     } | ||||
|   ); | ||||
| }); | ||||
| 
 | ||||
| describe('convertVersionToSemver', () => { | ||||
|   const distributions = new LibericaDistributions({ | ||||
|     architecture: 'x64', | ||||
|     version: '11', | ||||
|     packageType: 'jdk', | ||||
|     checkLatest: false | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 12, | ||||
|         buildVersion: 7 | ||||
|       }, | ||||
|       '11.0.12+7' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 12, | ||||
|         buildVersion: 0 | ||||
|       }, | ||||
|       '11.0.12' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 0, | ||||
|         buildVersion: 13 | ||||
|       }, | ||||
|       '11.0.0+13' | ||||
|     ] | ||||
|   ])('%s -> %s', (input, expected) => { | ||||
|     const actual = distributions['convertVersionToSemver']({ | ||||
|       downloadUrl: '', | ||||
|       version: '', | ||||
|       ...input | ||||
|     }); | ||||
| 
 | ||||
|     expect(actual).toEqual(expected); | ||||
|   }); | ||||
| }); | ||||
| @ -1,290 +0,0 @@ | ||||
| import {LibericaDistributions} from '../../src/distributions/liberica/installer'; | ||||
| import { | ||||
|   ArchitectureOptions, | ||||
|   LibericaVersion | ||||
| } from '../../src/distributions/liberica/models'; | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import os from 'os'; | ||||
| 
 | ||||
| import manifestData from '../data/liberica-windows.json'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData as LibericaVersion[] | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         version: '11.x', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=32&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11-ea', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=32&arch=x86&build-type=ea' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '16.0.2', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk&bitness=64&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '16.0.2', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jre&bitness=64&arch=x86&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'armv7', | ||||
|         packageType: 'jdk+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jdk-full&bitness=32&arch=arm&build-type=all' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'aarch64', | ||||
|         packageType: 'jre+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       'bundle-type=jre-full&bitness=64&arch=arm&build-type=all' | ||||
|     ] | ||||
|   ])('build correct url for %s -> %s', async (input, urlParams) => { | ||||
|     const additionalParams = | ||||
|       '&installation-type=archive&fields=downloadUrl%2Cversion%2CfeatureVersion%2CinterimVersion%2C' + | ||||
|       'updateVersion%2CbuildVersion'; | ||||
|     const distribution = new LibericaDistributions(input); | ||||
|     distribution['getPlatformOption'] = () => 'windows'; | ||||
|     const buildUrl = `https://api.bell-sw.com/v1/liberica/releases?os=windows&${urlParams}${additionalParams}`; | ||||
| 
 | ||||
|     await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|     expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|     expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|   }); | ||||
| 
 | ||||
|   type DistroArch = { | ||||
|     bitness: string; | ||||
|     arch: string; | ||||
|   }; | ||||
|   it.each([ | ||||
|     ['amd64', {bitness: '64', arch: 'x86'}], | ||||
|     ['arm64', {bitness: '64', arch: 'arm'}] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: DistroArch) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
| 
 | ||||
|       const distribution = new LibericaDistributions({ | ||||
|         version: '17', | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       const additionalParams = | ||||
|         '&installation-type=archive&fields=downloadUrl%2Cversion%2CfeatureVersion%2CinterimVersion%2C' + | ||||
|         'updateVersion%2CbuildVersion'; | ||||
|       distribution['getPlatformOption'] = () => 'windows'; | ||||
| 
 | ||||
|       const buildUrl = `https://api.bell-sw.com/v1/liberica/releases?os=windows&bundle-type=jdk&bitness=${distroArch.bitness}&arch=${distroArch.arch}&build-type=all${additionalParams}`; | ||||
| 
 | ||||
|       await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|       expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|       expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('load available versions', async () => { | ||||
|     const distribution = new LibericaDistributions({ | ||||
|       version: '11', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     const availableVersions = await distribution['getAvailableVersions'](); | ||||
|     expect(availableVersions).toEqual(manifestData); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getArchitectureOptions', () => { | ||||
|   it.each([ | ||||
|     ['x86', {bitness: '32', arch: 'x86'}], | ||||
|     ['x64', {bitness: '64', arch: 'x86'}], | ||||
|     ['armv7', {bitness: '32', arch: 'arm'}], | ||||
|     ['aarch64', {bitness: '64', arch: 'arm'}], | ||||
|     ['ppc64le', {bitness: '64', arch: 'ppc'}] | ||||
|   ] as [string, ArchitectureOptions][])( | ||||
|     'parse architecture %s -> %s', | ||||
|     (input, expected) => { | ||||
|       const distributions = new LibericaDistributions({ | ||||
|         architecture: input, | ||||
|         checkLatest: false, | ||||
|         packageType: '', | ||||
|         version: '' | ||||
|       }); | ||||
| 
 | ||||
|       expect(distributions['getArchitectureOptions']()).toEqual(expected); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it.each(['armv6', 's390x'])('not support architecture %s', input => { | ||||
|     const distributions = new LibericaDistributions({ | ||||
|       architecture: input, | ||||
|       checkLatest: false, | ||||
|       packageType: '', | ||||
|       version: '' | ||||
|     }); | ||||
| 
 | ||||
|     expect(() => distributions['getArchitectureOptions']()).toThrow( | ||||
|       /Architecture '\w+' is not supported\. Supported architectures: .*/ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   let distribution: LibericaDistributions; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     distribution = new LibericaDistributions({ | ||||
|       version: '', | ||||
|       architecture: 'x64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['8', '8.0.302+8'], | ||||
|     ['11.x', '11.0.12+7'], | ||||
|     ['8.0', '8.0.302+8'], | ||||
|     ['11.0.x', '11.0.12+7'], | ||||
|     ['15', '15.0.2+10'], | ||||
|     ['15.0', '15.0.2+10'], | ||||
|     ['15.0.0', '15.0.0+36'], | ||||
|     ['8.0.232', '8.0.232+10'], | ||||
|     ['8.0.232+9', '8.0.232+9'], | ||||
|     ['15.0.2+8', '15.0.2+8'], | ||||
|     ['15.0.2+10', '15.0.2+10'] | ||||
|   ])('version is %s -> %s', async (input, expected) => { | ||||
|     const result = await distribution['findPackageForDownload'](input); | ||||
|     expect(result.version).toBe(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     await expect(distribution['findPackageForDownload']('18')).rejects.toThrow( | ||||
|       /Could not find satisfied version for semver */ | ||||
|     ); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getPlatformOption', () => { | ||||
|   const distributions = new LibericaDistributions({ | ||||
|     architecture: 'x64', | ||||
|     version: '11', | ||||
|     packageType: 'jdk', | ||||
|     checkLatest: false | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['linux', 'linux'], | ||||
|     ['darwin', 'macos'], | ||||
|     ['win32', 'windows'], | ||||
|     ['cygwin', 'windows'], | ||||
|     ['sunos', 'solaris'] | ||||
|   ])('os version %s -> %s', (input, expected) => { | ||||
|     const actual = distributions['getPlatformOption'](input as NodeJS.Platform); | ||||
| 
 | ||||
|     expect(actual).toEqual(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it.each(['aix', 'android', 'freebsd', 'openbsd', 'netbsd'])( | ||||
|     'not support os version %s', | ||||
|     input => { | ||||
|       expect(() => | ||||
|         distributions['getPlatformOption'](input as NodeJS.Platform) | ||||
|       ).toThrow(/Platform '\w+' is not supported\. Supported platforms: .+/); | ||||
|     } | ||||
|   ); | ||||
| }); | ||||
| 
 | ||||
| describe('convertVersionToSemver', () => { | ||||
|   const distributions = new LibericaDistributions({ | ||||
|     architecture: 'x64', | ||||
|     version: '11', | ||||
|     packageType: 'jdk', | ||||
|     checkLatest: false | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 12, | ||||
|         buildVersion: 7 | ||||
|       }, | ||||
|       '11.0.12+7' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 12, | ||||
|         buildVersion: 0 | ||||
|       }, | ||||
|       '11.0.12' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         featureVersion: 11, | ||||
|         interimVersion: 0, | ||||
|         updateVersion: 0, | ||||
|         buildVersion: 13 | ||||
|       }, | ||||
|       '11.0.0+13' | ||||
|     ] | ||||
|   ])('%s -> %s', (input, expected) => { | ||||
|     const actual = distributions['convertVersionToSemver']({ | ||||
|       downloadUrl: '', | ||||
|       version: '', | ||||
|       ...input | ||||
|     }); | ||||
| 
 | ||||
|     expect(actual).toEqual(expected); | ||||
|   }); | ||||
| }); | ||||
| @ -89,30 +89,6 @@ describe('findPackageForDownload', () => { | ||||
|     expect(result.url).toBe(url); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['amd64', 'x64'], | ||||
|     ['arm64', 'aarch64'] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: string) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
|       jest.spyOn(os, 'platform').mockReturnValue('darwin'); | ||||
| 
 | ||||
|       const version = '17'; | ||||
|       const distro = new MicrosoftDistributions({ | ||||
|         version, | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       const result = await distro['findPackageForDownload'](version); | ||||
|       const expectedUrl = `https://aka.ms/download-jdk/microsoft-jdk-17.0.7-macos-${distroArch}.tar.gz`; | ||||
| 
 | ||||
|       expect(result.url).toBe(expectedUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['amd64', 'x64'], | ||||
|     ['arm64', 'aarch64'] | ||||
| @ -137,30 +113,6 @@ describe('findPackageForDownload', () => { | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it.each([ | ||||
|     ['amd64', 'x64'], | ||||
|     ['arm64', 'aarch64'] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: string) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
|       jest.spyOn(os, 'platform').mockReturnValue('win32'); | ||||
| 
 | ||||
|       const version = '17'; | ||||
|       const distro = new MicrosoftDistributions({ | ||||
|         version, | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       const result = await distro['findPackageForDownload'](version); | ||||
|       const expectedUrl = `https://aka.ms/download-jdk/microsoft-jdk-17.0.7-windows-${distroArch}.zip`; | ||||
| 
 | ||||
|       expect(result.url).toBe(expectedUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( | ||||
|       /Could not find satisfied version for SemVer */ | ||||
|  | ||||
| @ -22,11 +22,6 @@ describe('findPackageForDownload', () => { | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       '21', | ||||
|       '21', | ||||
|       'https://download.oracle.com/java/21/latest/jdk-21_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' | ||||
|     ], | ||||
|     [ | ||||
|       '20', | ||||
|       '20', | ||||
| @ -115,8 +110,7 @@ describe('findPackageForDownload', () => { | ||||
|       const expectedUrl = `https://download.oracle.com/java/18/archive/jdk-18_${osType}-${distroArch}_bin.${archiveType}`; | ||||
| 
 | ||||
|       expect(result.url).toBe(expectedUrl); | ||||
|     }, | ||||
|     10000 | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|  | ||||
| @ -1,294 +0,0 @@ | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import {SapMachineDistribution} from '../../src/distributions/sapmachine/installer'; | ||||
| import * as utils from '../../src/util'; | ||||
| 
 | ||||
| import manifestData from '../data/sapmachine.json'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
|   let spyUtilGetDownloadArchiveExtension: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData | ||||
|     }); | ||||
| 
 | ||||
|     spyUtilGetDownloadArchiveExtension = jest.spyOn( | ||||
|       utils, | ||||
|       'getDownloadArchiveExtension' | ||||
|     ); | ||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue('tar.gz'); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   const mockPlatform = ( | ||||
|     distribution: SapMachineDistribution, | ||||
|     platform: string | ||||
|   ) => { | ||||
|     distribution['getPlatformOption'] = () => platform; | ||||
|     const mockedExtension = platform == 'windows' ? 'zip' : 'tar.gz'; | ||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue(mockedExtension); | ||||
|   }; | ||||
| 
 | ||||
|   describe('shouldFallbackToBackupUrl', () => { | ||||
|     it('should return correct release when the primary URL is not available', async () => { | ||||
|       spyHttpClient.mockReturnValueOnce({ | ||||
|         statusCode: 404, | ||||
|         headers: {}, | ||||
|         result: '' | ||||
|       }); | ||||
|       spyHttpClient.mockReturnValueOnce({ | ||||
|         statusCode: 200, | ||||
|         headers: {}, | ||||
|         result: manifestData | ||||
|       }); | ||||
| 
 | ||||
|       const version = '17'; | ||||
|       const distribution = new SapMachineDistribution({ | ||||
|         version: version, | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
| 
 | ||||
|       mockPlatform(distribution, 'linux'); | ||||
| 
 | ||||
|       const availableVersion = await distribution['findPackageForDownload']( | ||||
|         version | ||||
|       ); | ||||
|       expect(availableVersion).not.toBeNull(); | ||||
|       expect(availableVersion.url).toBe( | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64_bin.tar.gz' | ||||
|       ); | ||||
|     }); | ||||
|   }); | ||||
| 
 | ||||
|   describe('getAvailableVersions', () => { | ||||
|     it.each([ | ||||
|       ['11', 'x64', 'linux', 71], | ||||
|       ['11', 'aarch64', 'linux', 54], | ||||
|       ['17', 'riscv', 'linux', 0], | ||||
|       ['16.0.1', 'x64', 'linux', 71], | ||||
|       ['23-ea', 'x64', 'linux', 798], | ||||
|       ['23-ea', 'aarch64', 'windows', 0], | ||||
|       ['23-ea', 'x64', 'windows', 750] | ||||
|     ])( | ||||
|       'should get right number of available versions from JSON', | ||||
|       async ( | ||||
|         jdkVersion: string, | ||||
|         arch: string, | ||||
|         platform: string, | ||||
|         len: number | ||||
|       ) => { | ||||
|         const distribution = new SapMachineDistribution({ | ||||
|           version: jdkVersion, | ||||
|           architecture: arch, | ||||
|           packageType: 'jdk', | ||||
|           checkLatest: false | ||||
|         }); | ||||
|         mockPlatform(distribution, platform); | ||||
| 
 | ||||
|         const availableVersions = await distribution['getAvailableVersions'](); | ||||
|         expect(availableVersions).not.toBeNull(); | ||||
|         expect(availableVersions.length).toBe(len); | ||||
|       } | ||||
|     ); | ||||
|   }); | ||||
| 
 | ||||
|   describe('findPackageForDownload', () => { | ||||
|     it.each([ | ||||
|       [ | ||||
|         '11', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'linux', | ||||
|         'aarch64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_linux-aarch64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '11', | ||||
|         'windows', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_windows-x64_bin.zip' | ||||
|       ], | ||||
|       [ | ||||
|         '11.0.17', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.17/sapmachine-jdk-11.0.17_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'linux', | ||||
|         'aarch64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-aarch64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'windows', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_windows-x64_bin.zip' | ||||
|       ], | ||||
|       [ | ||||
|         '17.0.4', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.4.1/sapmachine-jdk-17.0.4.1_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jre', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'linux', | ||||
|         'aarch64', | ||||
|         'jre', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_linux-aarch64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'windows', | ||||
|         'x64', | ||||
|         'jre', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_windows-x64_bin.zip' | ||||
|       ], | ||||
|       [ | ||||
|         '17.0.4', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jre', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.4.1/sapmachine-jre-17.0.4.1_linux-x64_bin.tar.gz' | ||||
|       ], | ||||
|       [ | ||||
|         '23-ea', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-23%2B15/sapmachine-jdk-23-ea.15_linux-x64_bin.tar.gz', | ||||
|         '23' | ||||
|       ], | ||||
|       [ | ||||
|         '21.0.2+2-ea', | ||||
|         'linux', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.2%2B2/sapmachine-jdk-21.0.2-ea.2_linux-x64_bin.tar.gz', | ||||
|         '21.0.2+2' | ||||
|       ], | ||||
|       [ | ||||
|         '17', | ||||
|         'linux-musl', | ||||
|         'x64', | ||||
|         'jdk', | ||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64-musl_bin.tar.gz' | ||||
|       ] | ||||
|     ])( | ||||
|       'should return proper link according to the specified java-version, platform and arch', | ||||
|       async ( | ||||
|         version: string, | ||||
|         platform: string, | ||||
|         arch: string, | ||||
|         packageType: string, | ||||
|         expectedLink: string, | ||||
|         normalizedVersion: string = version | ||||
|       ) => { | ||||
|         const distribution = new SapMachineDistribution({ | ||||
|           version: version, | ||||
|           architecture: arch, | ||||
|           packageType: packageType, | ||||
|           checkLatest: false | ||||
|         }); | ||||
|         mockPlatform(distribution, platform); | ||||
| 
 | ||||
|         const availableVersion = await distribution['findPackageForDownload']( | ||||
|           normalizedVersion | ||||
|         ); | ||||
|         expect(availableVersion).not.toBeNull(); | ||||
|         expect(availableVersion.url).toBe(expectedLink); | ||||
|       } | ||||
|     ); | ||||
| 
 | ||||
|     it.each([ | ||||
|       ['8', 'linux', 'x64'], | ||||
|       ['8', 'macos', 'aarch64'], | ||||
|       ['23', 'macos', 'aarch64'], | ||||
|       ['17', 'linux', 'riscv'], | ||||
|       ['23', 'linux', 'x64'], | ||||
|       ['25-ea', 'linux', 'x64', '25'], | ||||
|       ['8-ea', 'linux', 'x64', '8'], | ||||
|       ['21.0.3+7', 'linux', 'x64', '21.0.3+7'], | ||||
|       ['21.0.3+8-ea', 'linux', 'x64', '21.0.3+8'], | ||||
|       ['17', 'linux-muse', 'aarch64'] | ||||
|     ])( | ||||
|       'should throw when required version of JDK can not be found in the JSON', | ||||
|       async ( | ||||
|         version: string, | ||||
|         platform: string, | ||||
|         arch: string, | ||||
|         normalizedVersion: string = version | ||||
|       ) => { | ||||
|         const distribution = new SapMachineDistribution({ | ||||
|           version: version, | ||||
|           architecture: arch, | ||||
|           packageType: 'jdk', | ||||
|           checkLatest: false | ||||
|         }); | ||||
|         mockPlatform(distribution, platform); | ||||
| 
 | ||||
|         await expect( | ||||
|           distribution['findPackageForDownload'](normalizedVersion) | ||||
|         ).rejects.toThrow( | ||||
|           `Couldn't find any satisfied version for the specified java-version: "${normalizedVersion}" and architecture: "${arch}".` | ||||
|         ); | ||||
|       } | ||||
|     ); | ||||
| 
 | ||||
|     it('should throw when required package type is not supported', async () => { | ||||
|       const jdkVersion = '17'; | ||||
|       const arch = 'x64'; | ||||
|       const platform = 'linux'; | ||||
|       const distribution = new SapMachineDistribution({ | ||||
|         version: jdkVersion, | ||||
|         architecture: arch, | ||||
|         packageType: 'jdk+fx', | ||||
|         checkLatest: false | ||||
|       }); | ||||
|       mockPlatform(distribution, platform); | ||||
|       await expect( | ||||
|         distribution['findPackageForDownload'](jdkVersion) | ||||
|       ).rejects.toThrow( | ||||
|         'SapMachine provides only the `jdk` and `jre` package type' | ||||
|       ); | ||||
|     }); | ||||
|   }); | ||||
| }); | ||||
| @ -207,7 +207,7 @@ describe('findPackageForDownload', () => { | ||||
|       }); | ||||
|       distribution['getAvailableVersions'] = async () => []; | ||||
|       await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( | ||||
|         `Unsupported architecture for IBM Semeru: ${arch} for your current OS version, the following are supported: x64, x86, ppc64le, ppc64, s390x, aarch64` | ||||
|         `Unsupported architecture for IBM Semeru: ${arch}, the following are supported: x64, x86, ppc64le, ppc64, s390x, aarch64` | ||||
|       ); | ||||
|     } | ||||
|   ); | ||||
|  | ||||
| @ -1,229 +0,0 @@ | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import * as semver from 'semver'; | ||||
| import {ZuluDistribution} from '../../src/distributions/zulu/installer'; | ||||
| import {IZuluVersions} from '../../src/distributions/zulu/models'; | ||||
| import * as utils from '../../src/util'; | ||||
| import os from 'os'; | ||||
| 
 | ||||
| import manifestData from '../data/zulu-linux.json'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
|   let spyUtilGetDownloadArchiveExtension: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData as IZuluVersions[] | ||||
|     }); | ||||
| 
 | ||||
|     spyUtilGetDownloadArchiveExtension = jest.spyOn( | ||||
|       utils, | ||||
|       'getDownloadArchiveExtension' | ||||
|     ); | ||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue('zip'); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11-ea', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ea' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jre&javafx=false&arch=x86&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'arm64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'arm', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga' | ||||
|     ] | ||||
|   ])('build correct url for %s -> %s', async (input, parsedUrl) => { | ||||
|     const distribution = new ZuluDistribution(input); | ||||
|     distribution['getPlatformOption'] = () => 'linux'; | ||||
|     const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/${parsedUrl}`; | ||||
| 
 | ||||
|     await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|     expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|     expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|   }); | ||||
| 
 | ||||
|   type DistroArch = { | ||||
|     bitness: string; | ||||
|     arch: string; | ||||
|   }; | ||||
|   it.each([ | ||||
|     ['amd64', {bitness: '64', arch: 'x86'}], | ||||
|     ['arm64', {bitness: '64', arch: 'arm'}] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: DistroArch) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
| 
 | ||||
|       const distribution = new ZuluDistribution({ | ||||
|         version: '17', | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
|       distribution['getPlatformOption'] = () => 'linux'; | ||||
|       const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=linux&ext=zip&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`; | ||||
| 
 | ||||
|       await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|       expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|       expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('load available versions', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '11', | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     const availableVersions = await distribution['getAvailableVersions'](); | ||||
|     expect(availableVersions).toHaveLength(manifestData.length); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getArchitectureOptions', () => { | ||||
|   it.each([ | ||||
|     [{architecture: 'x64'}, {arch: 'x86', hw_bitness: '64', abi: ''}], | ||||
|     [{architecture: 'x86'}, {arch: 'x86', hw_bitness: '32', abi: ''}], | ||||
|     [{architecture: 'x32'}, {arch: 'x32', hw_bitness: '', abi: ''}], | ||||
|     [{architecture: 'arm'}, {arch: 'arm', hw_bitness: '', abi: ''}] | ||||
|   ])('%s -> %s', (input, expected) => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '11', | ||||
|       architecture: input.architecture, | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     expect(distribution['getArchitectureOptions']()).toEqual(expected); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   it.each([ | ||||
|     ['8', '8.0.282+8'], | ||||
|     ['11.x', '11.0.10+9'], | ||||
|     ['8.0', '8.0.282+8'], | ||||
|     ['11.0.x', '11.0.10+9'], | ||||
|     ['15', '15.0.2+7'], | ||||
|     ['9.0.0', '9.0.0+0'], | ||||
|     ['9.0', '9.0.1+0'], | ||||
|     ['8.0.262', '8.0.262+19'], // validate correct choice between [8.0.262.17, 8.0.262.19, 8.0.262.18]
 | ||||
|     ['8.0.262+17', '8.0.262+17'], | ||||
|     ['15.0.1+8', '15.0.1+8'], | ||||
|     ['15.0.1+9', '15.0.1+9'] | ||||
|   ])('version is %s -> %s', async (input, expected) => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: input, | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     const result = await distribution['findPackageForDownload']( | ||||
|       distribution['version'] | ||||
|     ); | ||||
|     expect(result.version).toBe(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it('select correct bundle if there are multiple items with the same jdk version but different zulu versions', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '', | ||||
|       architecture: 'arm64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     const result = await distribution['findPackageForDownload']('21.0.2'); | ||||
|     expect(result.url).toBe( | ||||
|       'https://cdn.azul.com/zulu/bin/zulu21.32.17-ca-jdk21.0.2-linux_aarch64.tar.gz' | ||||
|     ); | ||||
|   }); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '18', | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     await expect( | ||||
|       distribution['findPackageForDownload'](distribution['version']) | ||||
|     ).rejects.toThrow(/Could not find satisfied version for semver */); | ||||
|   }); | ||||
| }); | ||||
| @ -1,229 +0,0 @@ | ||||
| import {HttpClient} from '@actions/http-client'; | ||||
| import * as semver from 'semver'; | ||||
| import {ZuluDistribution} from '../../src/distributions/zulu/installer'; | ||||
| import {IZuluVersions} from '../../src/distributions/zulu/models'; | ||||
| import * as utils from '../../src/util'; | ||||
| import os from 'os'; | ||||
| 
 | ||||
| import manifestData from '../data/zulu-windows.json'; | ||||
| 
 | ||||
| describe('getAvailableVersions', () => { | ||||
|   let spyHttpClient: jest.SpyInstance; | ||||
|   let spyUtilGetDownloadArchiveExtension: jest.SpyInstance; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); | ||||
|     spyHttpClient.mockReturnValue({ | ||||
|       statusCode: 200, | ||||
|       headers: {}, | ||||
|       result: manifestData as IZuluVersions[] | ||||
|     }); | ||||
| 
 | ||||
|     spyUtilGetDownloadArchiveExtension = jest.spyOn( | ||||
|       utils, | ||||
|       'getDownloadArchiveExtension' | ||||
|     ); | ||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue('zip'); | ||||
|   }); | ||||
| 
 | ||||
|   afterEach(() => { | ||||
|     jest.resetAllMocks(); | ||||
|     jest.clearAllMocks(); | ||||
|     jest.restoreAllMocks(); | ||||
|   }); | ||||
| 
 | ||||
|   it.each([ | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11-ea', | ||||
|         architecture: 'x86', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=32&release_status=ea' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=x86&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jre&javafx=false&arch=x86&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jdk+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '8', | ||||
|         architecture: 'x64', | ||||
|         packageType: 'jre+fx', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jre&javafx=true&arch=x86&hw_bitness=64&release_status=ga&features=fx' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'arm64', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=64&release_status=ga' | ||||
|     ], | ||||
|     [ | ||||
|       { | ||||
|         version: '11', | ||||
|         architecture: 'arm', | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }, | ||||
|       '?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=arm&hw_bitness=&release_status=ga' | ||||
|     ] | ||||
|   ])('build correct url for %s -> %s', async (input, parsedUrl) => { | ||||
|     const distribution = new ZuluDistribution(input); | ||||
|     distribution['getPlatformOption'] = () => 'windows'; | ||||
|     const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/${parsedUrl}`; | ||||
| 
 | ||||
|     await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|     expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|     expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|   }); | ||||
| 
 | ||||
|   type DistroArch = { | ||||
|     bitness: string; | ||||
|     arch: string; | ||||
|   }; | ||||
|   it.each([ | ||||
|     ['amd64', {bitness: '64', arch: 'x86'}], | ||||
|     ['arm64', {bitness: '64', arch: 'arm'}] | ||||
|   ])( | ||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', | ||||
|     async (osArch: string, distroArch: DistroArch) => { | ||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); | ||||
| 
 | ||||
|       const distribution = new ZuluDistribution({ | ||||
|         version: '17', | ||||
|         architecture: '', // to get default value
 | ||||
|         packageType: 'jdk', | ||||
|         checkLatest: false | ||||
|       }); | ||||
|       distribution['getPlatformOption'] = () => 'windows'; | ||||
|       const buildUrl = `https://api.azul.com/zulu/download/community/v1.0/bundles/?os=windows&ext=zip&bundle_type=jdk&javafx=false&arch=${distroArch.arch}&hw_bitness=${distroArch.bitness}&release_status=ga`; | ||||
| 
 | ||||
|       await distribution['getAvailableVersions'](); | ||||
| 
 | ||||
|       expect(spyHttpClient.mock.calls).toHaveLength(1); | ||||
|       expect(spyHttpClient.mock.calls[0][0]).toBe(buildUrl); | ||||
|     } | ||||
|   ); | ||||
| 
 | ||||
|   it('load available versions', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '11', | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     const availableVersions = await distribution['getAvailableVersions'](); | ||||
|     expect(availableVersions).toHaveLength(manifestData.length); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('getArchitectureOptions', () => { | ||||
|   it.each([ | ||||
|     [{architecture: 'x64'}, {arch: 'x86', hw_bitness: '64', abi: ''}], | ||||
|     [{architecture: 'x86'}, {arch: 'x86', hw_bitness: '32', abi: ''}], | ||||
|     [{architecture: 'x32'}, {arch: 'x32', hw_bitness: '', abi: ''}], | ||||
|     [{architecture: 'arm'}, {arch: 'arm', hw_bitness: '', abi: ''}] | ||||
|   ])('%s -> %s', (input, expected) => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '11', | ||||
|       architecture: input.architecture, | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     expect(distribution['getArchitectureOptions']()).toEqual(expected); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('findPackageForDownload', () => { | ||||
|   it.each([ | ||||
|     ['8', '8.0.282+8'], | ||||
|     ['11.x', '11.0.10+9'], | ||||
|     ['8.0', '8.0.282+8'], | ||||
|     ['11.0.x', '11.0.10+9'], | ||||
|     ['15', '15.0.2+7'], | ||||
|     ['9.0.0', '9.0.0+0'], | ||||
|     ['9.0', '9.0.1+0'], | ||||
|     ['8.0.262', '8.0.262+19'], // validate correct choice between [8.0.262.17, 8.0.262.19, 8.0.262.18]
 | ||||
|     ['8.0.262+17', '8.0.262+17'], | ||||
|     ['15.0.1+8', '15.0.1+8'], | ||||
|     ['15.0.1+9', '15.0.1+9'] | ||||
|   ])('version is %s -> %s', async (input, expected) => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: input, | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     const result = await distribution['findPackageForDownload']( | ||||
|       distribution['version'] | ||||
|     ); | ||||
|     expect(result.version).toBe(expected); | ||||
|   }); | ||||
| 
 | ||||
|   it('select correct bundle if there are multiple items with the same jdk version but different zulu versions', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '', | ||||
|       architecture: 'arm64', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     const result = await distribution['findPackageForDownload']('17.0.10'); | ||||
|     expect(result.url).toBe( | ||||
|       'https://cdn.azul.com/zulu/bin/zulu17.48.15-ca-jdk17.0.10-windows_aarch64.zip' | ||||
|     ); | ||||
|   }); | ||||
| 
 | ||||
|   it('should throw an error', async () => { | ||||
|     const distribution = new ZuluDistribution({ | ||||
|       version: '18', | ||||
|       architecture: 'x86', | ||||
|       packageType: 'jdk', | ||||
|       checkLatest: false | ||||
|     }); | ||||
|     distribution['getAvailableVersions'] = async () => manifestData; | ||||
|     await expect( | ||||
|       distribution['findPackageForDownload'](distribution['version']) | ||||
|     ).rejects.toThrow(/Could not find satisfied version for semver */); | ||||
|   }); | ||||
| }); | ||||
| @ -3,8 +3,7 @@ import * as core from '@actions/core'; | ||||
| import { | ||||
|   convertVersionToSemver, | ||||
|   isVersionSatisfies, | ||||
|   isCacheFeatureAvailable, | ||||
|   isGhes | ||||
|   isCacheFeatureAvailable | ||||
| } from '../src/util'; | ||||
| 
 | ||||
| jest.mock('@actions/cache'); | ||||
| @ -81,41 +80,3 @@ describe('convertVersionToSemver', () => { | ||||
|     expect(actual).toBe(expected); | ||||
|   }); | ||||
| }); | ||||
| 
 | ||||
| describe('isGhes', () => { | ||||
|   const pristineEnv = process.env; | ||||
| 
 | ||||
|   beforeEach(() => { | ||||
|     jest.resetModules(); | ||||
|     process.env = {...pristineEnv}; | ||||
|   }); | ||||
| 
 | ||||
|   afterAll(() => { | ||||
|     process.env = pristineEnv; | ||||
|   }); | ||||
| 
 | ||||
|   it('returns false when the GITHUB_SERVER_URL environment variable is not defined', async () => { | ||||
|     delete process.env['GITHUB_SERVER_URL']; | ||||
|     expect(isGhes()).toBeFalsy(); | ||||
|   }); | ||||
| 
 | ||||
|   it('returns false when the GITHUB_SERVER_URL environment variable is set to github.com', async () => { | ||||
|     process.env['GITHUB_SERVER_URL'] = 'https://github.com'; | ||||
|     expect(isGhes()).toBeFalsy(); | ||||
|   }); | ||||
| 
 | ||||
|   it('returns false when the GITHUB_SERVER_URL environment variable is set to a GitHub Enterprise Cloud-style URL', async () => { | ||||
|     process.env['GITHUB_SERVER_URL'] = 'https://contoso.ghe.com'; | ||||
|     expect(isGhes()).toBeFalsy(); | ||||
|   }); | ||||
| 
 | ||||
|   it('returns false when the GITHUB_SERVER_URL environment variable has a .localhost suffix', async () => { | ||||
|     process.env['GITHUB_SERVER_URL'] = 'https://mock-github.localhost'; | ||||
|     expect(isGhes()).toBeFalsy(); | ||||
|   }); | ||||
| 
 | ||||
|   it('returns true when the GITHUB_SERVER_URL environment variable is set to some other URL', async () => { | ||||
|     process.env['GITHUB_SERVER_URL'] = 'https://src.onpremise.fabrikam.com'; | ||||
|     expect(isGhes()).toBeTruthy(); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										11588
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11588
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										12264
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										12264
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -8,9 +8,6 @@ | ||||
|   - [Amazon Corretto](#Amazon-Corretto) | ||||
|   - [Oracle](#Oracle) | ||||
|   - [Alibaba Dragonwell](#Alibaba-Dragonwell) | ||||
|   - [SapMachine](#SapMachine) | ||||
|   - [GraalVM](#GraalVM) | ||||
|   - [JetBrains](#JetBrains) | ||||
| - [Installing custom Java package type](#Installing-custom-Java-package-type) | ||||
| - [Installing custom Java architecture](#Installing-custom-Java-architecture) | ||||
| - [Installing custom Java distribution from local file](#Installing-Java-from-local-file) | ||||
| @ -28,14 +25,13 @@ See [action.yml](../action.yml) for more details on task inputs. | ||||
| Inputs `java-version` and `distribution` are mandatory and needs to be provided. See [Supported distributions](../README.md#Supported-distributions) for a list of available options. | ||||
| 
 | ||||
| ### Eclipse Temurin | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '21' | ||||
|     java-version: '11' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| @ -44,8 +40,8 @@ steps: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'adopt-hotspot' | ||||
|     java-version: '11' | ||||
| @ -53,40 +49,37 @@ steps: | ||||
| ``` | ||||
| 
 | ||||
| ### Zulu | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'zulu' | ||||
|     java-version: '21' | ||||
|     java-version: '11' | ||||
|     java-package: jdk # optional (jdk, jre, jdk+fx or jre+fx) - defaults to jdk | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### Liberica | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'liberica' | ||||
|     java-version: '21' | ||||
|     java-version: '11' | ||||
|     java-package: jdk # optional (jdk, jre, jdk+fx or jre+fx) - defaults to jdk | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### Microsoft | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'microsoft' | ||||
|     java-version: '21' | ||||
|     java-version: '11' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| @ -97,11 +90,11 @@ steps: | ||||
| To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action: | ||||
| 
 | ||||
| ```yaml | ||||
| uses: actions/setup-java@v4 | ||||
| uses: actions/setup-java@v3 | ||||
| with: | ||||
|   token: ${{ secrets.GH_DOTCOM_TOKEN }} | ||||
|   distribution: 'microsoft' | ||||
|   java-version: '21' | ||||
|   java-version: '11' | ||||
| ``` | ||||
| 
 | ||||
| If the runner is not able to access github.com, any Java versions requested during a workflow run must come from the runner's tool cache. See "[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server@3.2/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)" for more information. | ||||
| @ -111,11 +104,11 @@ If the runner is not able to access github.com, any Java versions requested duri | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'corretto' | ||||
|     java-version: '21' | ||||
|     java-version: '11' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| @ -124,117 +117,31 @@ steps: | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'oracle' | ||||
|     java-version: '21' | ||||
|     java-version: '17' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### Alibaba Dragonwell | ||||
| **NOTE:** Alibaba Dragonwell only provides jdk. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'dragonwell' | ||||
|     java-version: '8' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### SapMachine | ||||
| **NOTE:** An OpenJDK release maintained and supported by SAP | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
|   with: | ||||
|     distribution: 'sapmachine' | ||||
|     java-version: '21' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### GraalVM | ||||
| **NOTE:** Oracle GraalVM is only available for JDK 17 and later. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
|   with: | ||||
|     distribution: 'graalvm' | ||||
|     java-version: '21' | ||||
| - run: | | ||||
|     java -cp java HelloWorldApp | ||||
|     native-image -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ### JetBrains | ||||
| 
 | ||||
| **NOTE:** JetBrains is only available for LTS versions on 11 or later (11, 17, 21, etc.). | ||||
| 
 | ||||
| Not all minor LTS versions are guarenteed to be available, since JetBrains considers what to ship IntelliJ IDEA with, most commonly on JDK 11. | ||||
| For example, `11.0.24` is not available but `11.0.16` is. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
|   with: | ||||
|     distribution: 'jetbrains' | ||||
|     java-version: '11' | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| The JetBrains installer uses the GitHub API to fetch the latest version. If you believe your project is going to be running into rate limits, you can provide a | ||||
| GitHub token to the action to increase the rate limit. Set the `GITHUB_TOKEN` environment variable to the value of your GitHub token in the workflow file. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
|   with: | ||||
|     distribution: 'jetbrains' | ||||
|     java-version: '17' | ||||
|     java-package: 'jdk' # optional (jdk, jre, jdk+jcef, jre+jcef, jdk+ft, or jre+ft) - defaults to jdk | ||||
|   env: | ||||
|     GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| You can specify your package type (as shown in the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases/)) in the `java-package` parameter.  | ||||
| The available package types are: | ||||
| 
 | ||||
| - `jdk` - JBRSDK | ||||
| - `jre` - JBR (Vanilla) | ||||
| - `jdk+jcef` - JBRSDK with JCEF | ||||
| - `jre+jcef` - JBR with JCEF | ||||
| - `jdk+ft` - JBRSDK (FreeType) | ||||
| - `jre+ft` - JBR (FreeType) | ||||
| 
 | ||||
| ### GraalVM | ||||
| **NOTE:** Oracle GraalVM is only available for JDK 17 and later. | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
|   with: | ||||
|     distribution: 'graalvm' | ||||
|     java-version: '21' | ||||
| - run: | | ||||
|     java -cp java HelloWorldApp | ||||
|     native-image -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| ## Installing custom Java package type | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: '11' | ||||
| @ -242,12 +149,13 @@ steps: | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Installing custom Java architecture | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: '11' | ||||
| @ -263,7 +171,7 @@ steps: | ||||
| - run: | | ||||
|     download_url="https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz" | ||||
|     wget -O $RUNNER_TEMP/java_package.tar.gz $download_url | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'jdkfile' | ||||
|     jdkFile: ${{ runner.temp }}/java_package.tar.gz | ||||
| @ -280,7 +188,7 @@ If your use-case requires a custom distribution (in the example, alpine-linux is | ||||
|       - name: fetch latest temurin JDK | ||||
|         id: fetch_latest_jdk | ||||
|         run: | | ||||
|           major_version={{ env.JAVA_VERSION }} # Example 16 or 21 or 22 | ||||
|           major_version={{ env.JAVA_VERSION }} # Example 8 or 11 or 17 | ||||
|           cd $RUNNER_TEMP | ||||
|           response=$(curl -s "https://api.github.com/repos/adoptium/temurin${major_version}-binaries/releases") | ||||
|           latest_jdk_download_url=$(echo "$response" | jq -r '.[0].assets[] | select(.name | contains("jdk_x64_alpine-linux") and endswith(".tar.gz")) | .browser_download_url') | ||||
| @ -289,7 +197,7 @@ If your use-case requires a custom distribution (in the example, alpine-linux is | ||||
|           latest_semver_version=$(curl -sL $latest_jdk_json_url | jq -r 'version.semver') | ||||
|           echo "java_version=$latest_semver_version" >> "$GITHUB_OUTPUT" | ||||
| 
 | ||||
|       - uses: actions/setup-java@v4 | ||||
|       - uses: actions/setup-java@v3 | ||||
|         with: | ||||
|           distribution: 'jdkfile' | ||||
|           jdkFile: ${{ runner.temp }}/java_package.tar.gz | ||||
| @ -310,9 +218,9 @@ jobs: | ||||
|         java: [ '8', '11' ] | ||||
|     name: Java ${{ matrix.Java }} (${{ matrix.distribution }}) sample | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Setup java | ||||
|         uses: actions/setup-java@v4 | ||||
|         uses: actions/setup-java@v3 | ||||
|         with: | ||||
|           distribution: ${{ matrix.distribution }} | ||||
|           java-version: ${{ matrix.java }} | ||||
| @ -330,9 +238,9 @@ jobs: | ||||
|         os: [ 'ubuntu-latest', 'macos-latest', 'windows-latest' ] | ||||
|     name: Java ${{ matrix.Java }} (${{ matrix.os }}) sample | ||||
|     steps: | ||||
|       - uses: actions/checkout@v4 | ||||
|       - uses: actions/checkout@v3 | ||||
|       - name: Setup java | ||||
|         uses: actions/setup-java@v4 | ||||
|         uses: actions/setup-java@v3 | ||||
|         with: | ||||
|           distribution: 'temurin' | ||||
|           java-version: ${{ matrix.java }} | ||||
| @ -347,9 +255,9 @@ jobs: | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/checkout@v3 | ||||
|     - name: Set up JDK 11 | ||||
|       uses: actions/setup-java@v4 | ||||
|       uses: actions/setup-java@v3 | ||||
|       with: | ||||
|         distribution: '<distribution>' | ||||
|         java-version: '11' | ||||
| @ -363,7 +271,7 @@ jobs: | ||||
|         GITHUB_TOKEN: ${{ github.token }} # GITHUB_TOKEN is the default env for the password | ||||
| 
 | ||||
|     - name: Set up Apache Maven Central | ||||
|       uses: actions/setup-java@v4 | ||||
|       uses: actions/setup-java@v3 | ||||
|       with: # running setup-java again overwrites the settings.xml | ||||
|         distribution: 'temurin' | ||||
|         java-version: '11' | ||||
| @ -448,8 +356,6 @@ If `gpg-private-key` input is provided, the private key will be written to a fil | ||||
| 
 | ||||
| See the help docs on [Publishing a Package](https://help.github.com/en/github/managing-packages-with-github-packages/configuring-apache-maven-for-use-with-github-packages#publishing-a-package) for more information on the `pom.xml` file. | ||||
| 
 | ||||
| ***NOTE***: If the error that states, `gpg: Sorry, no terminal at all requested - can't get input` [is encountered](https://github.com/actions/setup-java/issues/554), please update the version of `maven-gpg-plugin` to 1.6 or higher. | ||||
| 
 | ||||
| ## Apache Maven with a settings path | ||||
| 
 | ||||
| When using an Actions self-hosted runner with multiple shared runners the default `$HOME` directory can be shared by a number runners at the same time which could overwrite existing settings file. Setting the `settings-path` variable allows you to choose a unique location for your settings file. | ||||
| @ -460,9 +366,9 @@ jobs: | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/checkout@v3 | ||||
|     - name: Set up JDK 11 for Shared Runner | ||||
|       uses: actions/setup-java@v4 | ||||
|       uses: actions/setup-java@v3 | ||||
|       with: | ||||
|         distribution: '<distribution>' | ||||
|         java-version: '11' | ||||
| @ -486,10 +392,10 @@ jobs: | ||||
|     runs-on: ubuntu-latest | ||||
| 
 | ||||
|     steps: | ||||
|     - uses: actions/checkout@v4 | ||||
|     - uses: actions/checkout@v3 | ||||
| 
 | ||||
|     - name: Set up JDK 11 | ||||
|       uses: actions/setup-java@v4 | ||||
|       uses: actions/setup-java@v3 | ||||
|       with: | ||||
|         distribution: '<distribution>' | ||||
|         java-version: '11' | ||||
| @ -523,17 +429,17 @@ Subsequent calls to `setup-java` with distinct distribution and version paramete | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: | | ||||
|       8 | ||||
|       11 | ||||
| 
 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: '15' | ||||
|     java-version: 15 | ||||
| ``` | ||||
| 
 | ||||
| The result is a Toolchain with entries for JDKs 8, 11 and 15. You can even combine this with custom JDKs of arbitrary versions: | ||||
| @ -542,7 +448,7 @@ The result is a Toolchain with entries for JDKs 8, 11 and 15. You can even combi | ||||
| - run: | | ||||
|     download_url="https://example.com/java/jdk/6u45-b06/jdk-6u45-linux-x64.tar.gz" | ||||
|     wget -O $RUNNER_TEMP/java_package.tar.gz $download_url | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'jdkfile' | ||||
|     jdkFile: ${{ runner.temp }}/java_package.tar.gz | ||||
| @ -550,7 +456,7 @@ The result is a Toolchain with entries for JDKs 8, 11 and 15. You can even combi | ||||
|     architecture: x64 | ||||
| ``` | ||||
| 
 | ||||
| This will generate a Toolchains entry with the following values: `version: 1.6`, `vendor: jdkfile`, `id: Oracle_1.6`. | ||||
| This will generate a Toolchains entry with the following values: `version: 1.6`, `vendor: jkdfile`, `id: Oracle_1.6`. | ||||
| 
 | ||||
| ### Modifying The Toolchain Vendor For JDKs | ||||
| Each JDK provider will receive a default `vendor` using the `distribution` input value but this can be overridden with the `mvn-toolchain-vendor` parameter as follows. | ||||
| @ -559,7 +465,7 @@ Each JDK provider will receive a default `vendor` using the `distribution` input | ||||
| - run: | | ||||
|     download_url="https://example.com/java/jdk/6u45-b06/jdk-6u45-linux-x64.tar.gz" | ||||
|     wget -O $RUNNER_TEMP/java_package.tar.gz $download_url | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'jdkfile' | ||||
|     jdkFile: ${{ runner.temp }}/java_package.tar.gz | ||||
| @ -574,7 +480,7 @@ In case you install multiple versions of Java at once with multi-line `java-vers | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: | | ||||
| @ -588,8 +494,8 @@ Each JDK provider will receive a default `id` based on the combination of `distr | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/checkout@v4 | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/checkout@v3 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: 'temurin' | ||||
|     java-version: '11' | ||||
| @ -601,7 +507,7 @@ In case you install multiple versions of Java at once you can use the same synta | ||||
| 
 | ||||
| ```yaml | ||||
| steps: | ||||
| - uses: actions/setup-java@v4 | ||||
| - uses: actions/setup-java@v3 | ||||
|   with: | ||||
|     distribution: '<distribution>' | ||||
|     java-version: | | ||||
| @ -612,21 +518,14 @@ steps: | ||||
|       something_other | ||||
| ``` | ||||
| 
 | ||||
| ## Java version file | ||||
|   If the `java-version-file` input is specified, the action will extract the version from the file and install it. | ||||
|    | ||||
|   Supported files are .java-version and .tool-versions. | ||||
|   In .java-version file, only the version should be specified (e.g., 17.0.7). | ||||
|   In .tool-versions file, java version should be preceded by the java keyword (e.g., java 17.0.7). | ||||
|   The `.java-version` file recognizes all variants of the version description according to [jenv](https://github.com/jenv/jenv). Similarly, the `.tool-versions` file supports version specifications in accordance with [asdf](https://github.com/asdf-vm/asdf) standards, adhering to Semantic Versioning ([semver](https://semver.org/)). | ||||
|    | ||||
|   If both java-version and java-version-file inputs are provided, the java-version input will be used. | ||||
| 
 | ||||
| ## Java-version file | ||||
| If the `java-version-file` input is specified, the action will try to extract the version from the file and install it. | ||||
| Action is able to recognize all variants of the version description according to [jenv](https://github.com/jenv/jenv).  | ||||
| Valid entry options: | ||||
| ``` | ||||
| major versions: 8, 11, 16, 17, 21 | ||||
| more specific versions: 8.0.282+8, 8.0.232, 11.0, 11.0.4, 17.0 | ||||
| early access (EA) versions: 15-ea, 15.0.0-ea | ||||
| major versions: 8, 11, 16, 17 | ||||
| more specific versions: 1.8.0.2, 17.0, 11.0, 11.0.4, 8.0.232, 8.0.282+8 | ||||
| early access (EA) versions: 15-ea, 15.0.0-ea, 15.0.0-ea.2, 15.0.0+2-ea | ||||
| versions with specified distribution: openjdk64-11.0.2 | ||||
| ``` | ||||
| If the file contains multiple versions, only the first one will be recognized. | ||||
|  | ||||
							
								
								
									
										407
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										407
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -9,32 +9,32 @@ | ||||
|       "version": "4.0.0", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@actions/cache": "^4.0.0", | ||||
|         "@actions/cache": "^3.0.4", | ||||
|         "@actions/core": "^1.10.0", | ||||
|         "@actions/exec": "^1.0.4", | ||||
|         "@actions/glob": "^0.4.0", | ||||
|         "@actions/http-client": "^2.2.3", | ||||
|         "@actions/http-client": "^2.2.0", | ||||
|         "@actions/io": "^1.0.2", | ||||
|         "@actions/tool-cache": "^2.0.1", | ||||
|         "semver": "^7.6.0", | ||||
|         "semver": "^7.3.4", | ||||
|         "xmlbuilder2": "^2.4.0" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|         "@types/jest": "^29.5.14", | ||||
|         "@types/node": "^20.11.24", | ||||
|         "@types/semver": "^7.5.8", | ||||
|         "@types/jest": "^29.5.9", | ||||
|         "@types/node": "^20.9.3", | ||||
|         "@types/semver": "^7.3.4", | ||||
|         "@typescript-eslint/eslint-plugin": "^5.54.0", | ||||
|         "@typescript-eslint/parser": "^5.54.0", | ||||
|         "@vercel/ncc": "^0.38.1", | ||||
|         "eslint": "^8.57.0", | ||||
|         "eslint": "^8.35.0", | ||||
|         "eslint-config-prettier": "^8.6.0", | ||||
|         "eslint-plugin-jest": "^27.9.0", | ||||
|         "eslint-plugin-jest": "^27.2.1", | ||||
|         "eslint-plugin-node": "^11.1.0", | ||||
|         "jest": "^29.7.0", | ||||
|         "jest-circus": "^29.7.0", | ||||
|         "prettier": "^2.8.4", | ||||
|         "ts-jest": "^29.1.2", | ||||
|         "typescript": "^5.3.3" | ||||
|         "ts-jest": "^29.1.1", | ||||
|         "typescript": "^5.3.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@aashutoshrathi/word-wrap": { | ||||
| @ -47,12 +47,11 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/cache": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.0.tgz", | ||||
|       "integrity": "sha512-WIuxjnZ44lNYtIS4fqSaYvF00hORdy3cSin+jx8xNgBVGWnNIAiCBHjlwusVQlcgExoQC9pHXGrDsZyZr7rCDQ==", | ||||
|       "license": "MIT", | ||||
|       "version": "3.2.2", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.2.2.tgz", | ||||
|       "integrity": "sha512-6D0Jq5JrLZRQ3VApeQwQkkV20ZZXjXsHNYXd9VjNUdi9E0h93wESpxfMJ2JWLCUCgHNLcfY0v3GjNM+2FdRMlg==", | ||||
|       "dependencies": { | ||||
|         "@actions/core": "^1.11.1", | ||||
|         "@actions/core": "^1.10.0", | ||||
|         "@actions/exec": "^1.0.1", | ||||
|         "@actions/glob": "^0.1.0", | ||||
|         "@actions/http-client": "^2.1.1", | ||||
| @ -60,9 +59,8 @@ | ||||
|         "@azure/abort-controller": "^1.1.0", | ||||
|         "@azure/ms-rest-js": "^2.6.0", | ||||
|         "@azure/storage-blob": "^12.13.0", | ||||
|         "@protobuf-ts/plugin": "^2.9.4", | ||||
|         "semver": "^6.3.1", | ||||
|         "twirp-ts": "^2.5.0" | ||||
|         "semver": "^6.1.0", | ||||
|         "uuid": "^3.3.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/cache/node_modules/@actions/glob": { | ||||
| @ -83,12 +81,20 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/core": { | ||||
|       "version": "1.11.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", | ||||
|       "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", | ||||
|       "version": "1.10.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", | ||||
|       "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", | ||||
|       "dependencies": { | ||||
|         "@actions/exec": "^1.1.1", | ||||
|         "@actions/http-client": "^2.0.1" | ||||
|         "@actions/http-client": "^2.0.1", | ||||
|         "uuid": "^8.3.2" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/core/node_modules/uuid": { | ||||
|       "version": "8.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", | ||||
|       "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", | ||||
|       "bin": { | ||||
|         "uuid": "dist/bin/uuid" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/exec": { | ||||
| @ -109,10 +115,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@actions/http-client": { | ||||
|       "version": "2.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", | ||||
|       "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", | ||||
|       "license": "MIT", | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.0.tgz", | ||||
|       "integrity": "sha512-q+epW0trjVUUHboliPb4UF9g2msf+w61b32tAkFEwL/IwP0DQWgbCMM0Hbe3e3WXSKz5VcUXbzJQgy8Hkra/Lg==", | ||||
|       "dependencies": { | ||||
|         "tunnel": "^0.0.6", | ||||
|         "undici": "^5.25.4" | ||||
| @ -1006,9 +1011,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@eslint/eslintrc": { | ||||
|       "version": "2.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", | ||||
|       "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", | ||||
|       "version": "2.1.3", | ||||
|       "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", | ||||
|       "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "ajv": "^6.12.4", | ||||
| @ -1029,9 +1034,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@eslint/js": { | ||||
|       "version": "8.57.0", | ||||
|       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", | ||||
|       "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", | ||||
|       "version": "8.54.0", | ||||
|       "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.54.0.tgz", | ||||
|       "integrity": "sha512-ut5V+D+fOoWPgGGNj83GGjnntO39xDy6DWxO0wb7Jp3DcMX0TfIqdzHF85VTQkerdyGmuuMD9AKAo5KiNlf/AQ==", | ||||
|       "dev": true, | ||||
|       "engines": { | ||||
|         "node": "^12.22.0 || ^14.17.0 || >=16.0.0" | ||||
| @ -1046,13 +1051,13 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@humanwhocodes/config-array": { | ||||
|       "version": "0.11.14", | ||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", | ||||
|       "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", | ||||
|       "version": "0.11.13", | ||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", | ||||
|       "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@humanwhocodes/object-schema": "^2.0.2", | ||||
|         "debug": "^4.3.1", | ||||
|         "@humanwhocodes/object-schema": "^2.0.1", | ||||
|         "debug": "^4.1.1", | ||||
|         "minimatch": "^3.0.5" | ||||
|       }, | ||||
|       "engines": { | ||||
| @ -1073,9 +1078,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@humanwhocodes/object-schema": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", | ||||
|       "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", | ||||
|       "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/@istanbuljs/load-nyc-config": { | ||||
| @ -1599,83 +1604,6 @@ | ||||
|         "node": ">=8.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/plugin": { | ||||
|       "version": "2.9.4", | ||||
|       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin/-/plugin-2.9.4.tgz", | ||||
|       "integrity": "sha512-Db5Laq5T3mc6ERZvhIhkj1rn57/p8gbWiCKxQWbZBBl20wMuqKoHbRw4tuD7FyXi+IkwTToaNVXymv5CY3E8Rw==", | ||||
|       "license": "Apache-2.0", | ||||
|       "dependencies": { | ||||
|         "@protobuf-ts/plugin-framework": "^2.9.4", | ||||
|         "@protobuf-ts/protoc": "^2.9.4", | ||||
|         "@protobuf-ts/runtime": "^2.9.4", | ||||
|         "@protobuf-ts/runtime-rpc": "^2.9.4", | ||||
|         "typescript": "^3.9" | ||||
|       }, | ||||
|       "bin": { | ||||
|         "protoc-gen-dump": "bin/protoc-gen-dump", | ||||
|         "protoc-gen-ts": "bin/protoc-gen-ts" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/plugin-framework": { | ||||
|       "version": "2.9.4", | ||||
|       "resolved": "https://registry.npmjs.org/@protobuf-ts/plugin-framework/-/plugin-framework-2.9.4.tgz", | ||||
|       "integrity": "sha512-9nuX1kjdMliv+Pes8dQCKyVhjKgNNfwxVHg+tx3fLXSfZZRcUHMc1PMwB9/vTvc6gBKt9QGz5ERqSqZc0++E9A==", | ||||
|       "license": "(Apache-2.0 AND BSD-3-Clause)", | ||||
|       "dependencies": { | ||||
|         "@protobuf-ts/runtime": "^2.9.4", | ||||
|         "typescript": "^3.9" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/plugin-framework/node_modules/typescript": { | ||||
|       "version": "3.9.10", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||
|       "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", | ||||
|       "license": "Apache-2.0", | ||||
|       "bin": { | ||||
|         "tsc": "bin/tsc", | ||||
|         "tsserver": "bin/tsserver" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=4.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/plugin/node_modules/typescript": { | ||||
|       "version": "3.9.10", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz", | ||||
|       "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", | ||||
|       "license": "Apache-2.0", | ||||
|       "bin": { | ||||
|         "tsc": "bin/tsc", | ||||
|         "tsserver": "bin/tsserver" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=4.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/protoc": { | ||||
|       "version": "2.9.4", | ||||
|       "resolved": "https://registry.npmjs.org/@protobuf-ts/protoc/-/protoc-2.9.4.tgz", | ||||
|       "integrity": "sha512-hQX+nOhFtrA+YdAXsXEDrLoGJqXHpgv4+BueYF0S9hy/Jq0VRTVlJS1Etmf4qlMt/WdigEes5LOd/LDzui4GIQ==", | ||||
|       "license": "Apache-2.0", | ||||
|       "bin": { | ||||
|         "protoc": "protoc.js" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/runtime": { | ||||
|       "version": "2.9.4", | ||||
|       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime/-/runtime-2.9.4.tgz", | ||||
|       "integrity": "sha512-vHRFWtJJB/SiogWDF0ypoKfRIZ41Kq+G9cEFj6Qm1eQaAhJ1LDFvgZ7Ja4tb3iLOQhz0PaoPnnOijF1qmEqTxg==", | ||||
|       "license": "(Apache-2.0 AND BSD-3-Clause)" | ||||
|     }, | ||||
|     "node_modules/@protobuf-ts/runtime-rpc": { | ||||
|       "version": "2.9.4", | ||||
|       "resolved": "https://registry.npmjs.org/@protobuf-ts/runtime-rpc/-/runtime-rpc-2.9.4.tgz", | ||||
|       "integrity": "sha512-y9L9JgnZxXFqH5vD4d7j9duWvIJ7AShyBRoNKJGhu9Q27qIbchfzli66H9RvrQNIFk5ER7z1Twe059WZGqERcA==", | ||||
|       "license": "Apache-2.0", | ||||
|       "dependencies": { | ||||
|         "@protobuf-ts/runtime": "^2.9.4" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@sinclair/typebox": { | ||||
|       "version": "0.27.8", | ||||
|       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", | ||||
| @ -1775,11 +1703,10 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/jest": { | ||||
|       "version": "29.5.14", | ||||
|       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", | ||||
|       "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", | ||||
|       "version": "29.5.9", | ||||
|       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.9.tgz", | ||||
|       "integrity": "sha512-zJeWhqBwVoPm83sP8h1/SVntwWTu5lZbKQGCvBjxQOyEWnKnsaomt2y7SlV4KfwlrHAHHAn00Sh4IAWaIsGOgQ==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "expect": "^29.0.0", | ||||
|         "pretty-format": "^29.0.0" | ||||
| @ -1792,9 +1719,9 @@ | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/@types/node": { | ||||
|       "version": "20.11.24", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", | ||||
|       "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", | ||||
|       "version": "20.9.3", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.3.tgz", | ||||
|       "integrity": "sha512-nk5wXLAXGBKfrhLB0cyHGbSqopS+nz0BUgZkUQqSHSSgdee0kssp1IAqlQOu333bW+gMNs2QREx7iynm19Abxw==", | ||||
|       "dependencies": { | ||||
|         "undici-types": "~5.26.4" | ||||
|       } | ||||
| @ -1822,9 +1749,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/semver": { | ||||
|       "version": "7.5.8", | ||||
|       "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", | ||||
|       "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", | ||||
|       "version": "7.5.6", | ||||
|       "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", | ||||
|       "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/@types/stack-utils": { | ||||
| @ -2071,9 +1998,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/acorn": { | ||||
|       "version": "8.11.3", | ||||
|       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", | ||||
|       "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", | ||||
|       "version": "8.11.2", | ||||
|       "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", | ||||
|       "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", | ||||
|       "dev": true, | ||||
|       "bin": { | ||||
|         "acorn": "bin/acorn" | ||||
| @ -2322,12 +2249,12 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/braces": { | ||||
|       "version": "3.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", | ||||
|       "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", | ||||
|       "version": "3.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", | ||||
|       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "fill-range": "^7.1.1" | ||||
|         "fill-range": "^7.0.1" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": ">=8" | ||||
| @ -2401,16 +2328,6 @@ | ||||
|         "node": ">=6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/camel-case": { | ||||
|       "version": "4.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz", | ||||
|       "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "pascal-case": "^3.1.2", | ||||
|         "tslib": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/camelcase": { | ||||
|       "version": "5.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", | ||||
| @ -2545,15 +2462,6 @@ | ||||
|         "node": ">= 0.8" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/commander": { | ||||
|       "version": "6.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", | ||||
|       "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==", | ||||
|       "license": "MIT", | ||||
|       "engines": { | ||||
|         "node": ">= 6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/concat-map": { | ||||
|       "version": "0.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||
| @ -2587,11 +2495,10 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/cross-spawn": { | ||||
|       "version": "7.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", | ||||
|       "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", | ||||
|       "version": "7.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | ||||
|       "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "path-key": "^3.1.0", | ||||
|         "shebang-command": "^2.0.0", | ||||
| @ -2697,19 +2604,6 @@ | ||||
|         "node": ">=6.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/dot-object": { | ||||
|       "version": "2.1.5", | ||||
|       "resolved": "https://registry.npmjs.org/dot-object/-/dot-object-2.1.5.tgz", | ||||
|       "integrity": "sha512-xHF8EP4XH/Ba9fvAF2LDd5O3IITVolerVV6xvkxoM8zlGEiCUrggpAnHyOoKJKCrhvPcGATFAUwIujj7bRG5UA==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "commander": "^6.1.0", | ||||
|         "glob": "^7.1.6" | ||||
|       }, | ||||
|       "bin": { | ||||
|         "dot-object": "bin/dot-object" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/electron-to-chromium": { | ||||
|       "version": "1.4.589", | ||||
|       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", | ||||
| @ -2765,16 +2659,16 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/eslint": { | ||||
|       "version": "8.57.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", | ||||
|       "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", | ||||
|       "version": "8.54.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.54.0.tgz", | ||||
|       "integrity": "sha512-NY0DfAkM8BIZDVl6PgSa1ttZbx3xHgJzSNJKYcQglem6CppHyMhRIQkBVSSMaSRnLhig3jsDbEzOjwCVt4AmmA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@eslint-community/eslint-utils": "^4.2.0", | ||||
|         "@eslint-community/regexpp": "^4.6.1", | ||||
|         "@eslint/eslintrc": "^2.1.4", | ||||
|         "@eslint/js": "8.57.0", | ||||
|         "@humanwhocodes/config-array": "^0.11.14", | ||||
|         "@eslint/eslintrc": "^2.1.3", | ||||
|         "@eslint/js": "8.54.0", | ||||
|         "@humanwhocodes/config-array": "^0.11.13", | ||||
|         "@humanwhocodes/module-importer": "^1.0.1", | ||||
|         "@nodelib/fs.walk": "^1.2.8", | ||||
|         "@ungap/structured-clone": "^1.2.0", | ||||
| @ -2851,9 +2745,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/eslint-plugin-jest": { | ||||
|       "version": "27.9.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", | ||||
|       "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", | ||||
|       "version": "27.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.6.0.tgz", | ||||
|       "integrity": "sha512-MTlusnnDMChbElsszJvrwD1dN3x6nZl//s4JD23BxB6MgR66TZlL064su24xEIS3VACfAoHV1vgyMgPw8nkdng==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "@typescript-eslint/utils": "^5.10.0" | ||||
| @ -2862,7 +2756,7 @@ | ||||
|         "node": "^14.15.0 || ^16.10.0 || >=18.0.0" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", | ||||
|         "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0", | ||||
|         "eslint": "^7.0.0 || ^8.0.0", | ||||
|         "jest": "*" | ||||
|       }, | ||||
| @ -3208,9 +3102,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/fill-range": { | ||||
|       "version": "7.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", | ||||
|       "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", | ||||
|       "version": "7.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | ||||
|       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "to-regex-range": "^5.0.1" | ||||
| @ -3271,7 +3165,8 @@ | ||||
|     "node_modules/fs.realpath": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||
|       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" | ||||
|       "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/fsevents": { | ||||
|       "version": "2.3.3", | ||||
| @ -3339,6 +3234,7 @@ | ||||
|       "version": "7.2.3", | ||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", | ||||
|       "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "fs.realpath": "^1.0.0", | ||||
|         "inflight": "^1.0.4", | ||||
| @ -3367,9 +3263,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/globals": { | ||||
|       "version": "13.24.0", | ||||
|       "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", | ||||
|       "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", | ||||
|       "version": "13.23.0", | ||||
|       "resolved": "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz", | ||||
|       "integrity": "sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "type-fest": "^0.20.2" | ||||
| @ -3506,6 +3402,7 @@ | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||
|       "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "once": "^1.3.0", | ||||
|         "wrappy": "1" | ||||
| @ -3514,7 +3411,8 @@ | ||||
|     "node_modules/inherits": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | ||||
|       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | ||||
|       "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/is-arrayish": { | ||||
|       "version": "0.2.1", | ||||
| @ -4357,12 +4255,6 @@ | ||||
|         "url": "https://github.com/sponsors/sindresorhus" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/lodash": { | ||||
|       "version": "4.17.21", | ||||
|       "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", | ||||
|       "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/lodash.memoize": { | ||||
|       "version": "4.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", | ||||
| @ -4375,15 +4267,6 @@ | ||||
|       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/lower-case": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", | ||||
|       "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "tslib": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/lru-cache": { | ||||
|       "version": "5.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", | ||||
| @ -4439,13 +4322,12 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/micromatch": { | ||||
|       "version": "4.0.8", | ||||
|       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", | ||||
|       "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", | ||||
|       "version": "4.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", | ||||
|       "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "braces": "^3.0.3", | ||||
|         "braces": "^3.0.2", | ||||
|         "picomatch": "^2.3.1" | ||||
|       }, | ||||
|       "engines": { | ||||
| @ -4509,16 +4391,6 @@ | ||||
|       "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/no-case": { | ||||
|       "version": "3.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", | ||||
|       "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "lower-case": "^2.0.2", | ||||
|         "tslib": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/node-fetch": { | ||||
|       "version": "2.7.0", | ||||
|       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", | ||||
| @ -4594,6 +4466,7 @@ | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||
|       "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "wrappy": "1" | ||||
|       } | ||||
| @ -4699,16 +4572,6 @@ | ||||
|         "url": "https://github.com/sponsors/sindresorhus" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/pascal-case": { | ||||
|       "version": "3.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz", | ||||
|       "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "no-case": "^3.0.4", | ||||
|         "tslib": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/path-exists": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||||
| @ -4722,6 +4585,7 @@ | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||
|       "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", | ||||
|       "dev": true, | ||||
|       "engines": { | ||||
|         "node": ">=0.10.0" | ||||
|       } | ||||
| @ -4741,12 +4605,6 @@ | ||||
|       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/path-to-regexp": { | ||||
|       "version": "6.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.3.0.tgz", | ||||
|       "integrity": "sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==", | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/path-type": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", | ||||
| @ -4860,6 +4718,7 @@ | ||||
|       "version": "2.8.8", | ||||
|       "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", | ||||
|       "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", | ||||
|       "dev": true, | ||||
|       "bin": { | ||||
|         "prettier": "bin-prettier.js" | ||||
|       }, | ||||
| @ -5099,9 +4958,9 @@ | ||||
|       "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" | ||||
|     }, | ||||
|     "node_modules/semver": { | ||||
|       "version": "7.6.0", | ||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", | ||||
|       "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", | ||||
|       "version": "7.5.4", | ||||
|       "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", | ||||
|       "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", | ||||
|       "dependencies": { | ||||
|         "lru-cache": "^6.0.0" | ||||
|       }, | ||||
| @ -5356,9 +5215,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ts-jest": { | ||||
|       "version": "29.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", | ||||
|       "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", | ||||
|       "version": "29.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", | ||||
|       "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", | ||||
|       "dev": true, | ||||
|       "dependencies": { | ||||
|         "bs-logger": "0.x", | ||||
| @ -5374,7 +5233,7 @@ | ||||
|         "ts-jest": "cli.js" | ||||
|       }, | ||||
|       "engines": { | ||||
|         "node": "^16.10.0 || ^18.0.0 || >=20.0.0" | ||||
|         "node": "^14.15.0 || ^16.10.0 || >=18.0.0" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@babel/core": ">=7.0.0-beta.0 <8", | ||||
| @ -5398,16 +5257,6 @@ | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/ts-poet": { | ||||
|       "version": "4.15.0", | ||||
|       "resolved": "https://registry.npmjs.org/ts-poet/-/ts-poet-4.15.0.tgz", | ||||
|       "integrity": "sha512-sLLR8yQBvHzi9d4R1F4pd+AzQxBfzOSSjfxiJxQhkUoH5bL7RsAC6wgvtVUQdGqiCsyS9rT6/8X2FI7ipdir5g==", | ||||
|       "license": "Apache-2.0", | ||||
|       "dependencies": { | ||||
|         "lodash": "^4.17.15", | ||||
|         "prettier": "^2.5.1" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/tslib": { | ||||
|       "version": "2.6.2", | ||||
|       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", | ||||
| @ -5442,35 +5291,6 @@ | ||||
|         "node": ">=0.6.11 <=0.7.0 || >=0.7.3" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/twirp-ts": { | ||||
|       "version": "2.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/twirp-ts/-/twirp-ts-2.5.0.tgz", | ||||
|       "integrity": "sha512-JTKIK5Pf/+3qCrmYDFlqcPPUx+ohEWKBaZy8GL8TmvV2VvC0SXVyNYILO39+GCRbqnuP6hBIF+BVr8ZxRz+6fw==", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@protobuf-ts/plugin-framework": "^2.0.7", | ||||
|         "camel-case": "^4.1.2", | ||||
|         "dot-object": "^2.1.4", | ||||
|         "path-to-regexp": "^6.2.0", | ||||
|         "ts-poet": "^4.5.0", | ||||
|         "yaml": "^1.10.2" | ||||
|       }, | ||||
|       "bin": { | ||||
|         "protoc-gen-twirp_ts": "protoc-gen-twirp_ts" | ||||
|       }, | ||||
|       "peerDependencies": { | ||||
|         "@protobuf-ts/plugin": "^2.5.0", | ||||
|         "ts-proto": "^1.81.3" | ||||
|       }, | ||||
|       "peerDependenciesMeta": { | ||||
|         "@protobuf-ts/plugin": { | ||||
|           "optional": true | ||||
|         }, | ||||
|         "ts-proto": { | ||||
|           "optional": true | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/type-check": { | ||||
|       "version": "0.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", | ||||
| @ -5505,9 +5325,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/typescript": { | ||||
|       "version": "5.3.3", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", | ||||
|       "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", | ||||
|       "version": "5.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.2.tgz", | ||||
|       "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", | ||||
|       "dev": true, | ||||
|       "bin": { | ||||
|         "tsc": "bin/tsc", | ||||
| @ -5518,10 +5338,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/undici": { | ||||
|       "version": "5.28.5", | ||||
|       "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz", | ||||
|       "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==", | ||||
|       "license": "MIT", | ||||
|       "version": "5.27.2", | ||||
|       "resolved": "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz", | ||||
|       "integrity": "sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ==", | ||||
|       "dependencies": { | ||||
|         "@fastify/busboy": "^2.0.0" | ||||
|       }, | ||||
| @ -5640,7 +5459,8 @@ | ||||
|     "node_modules/wrappy": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||||
|       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" | ||||
|       "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/write-file-atomic": { | ||||
|       "version": "4.0.2", | ||||
| @ -5725,15 +5545,6 @@ | ||||
|       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "node_modules/yaml": { | ||||
|       "version": "1.10.2", | ||||
|       "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", | ||||
|       "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", | ||||
|       "license": "ISC", | ||||
|       "engines": { | ||||
|         "node": ">= 6" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/yargs": { | ||||
|       "version": "17.7.2", | ||||
|       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", | ||||
|  | ||||
							
								
								
									
										21
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								package.json
									
									
									
									
									
								
							| @ -26,35 +26,36 @@ | ||||
|   "author": "GitHub", | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/cache": "^4.0.0", | ||||
|     "@actions/cache": "^3.0.4", | ||||
|     "@actions/core": "^1.10.0", | ||||
|     "@actions/exec": "^1.0.4", | ||||
|     "@actions/glob": "^0.4.0", | ||||
|     "@actions/http-client": "^2.2.3", | ||||
|     "@actions/http-client": "^2.2.0", | ||||
|     "@actions/io": "^1.0.2", | ||||
|     "@actions/tool-cache": "^2.0.1", | ||||
|     "semver": "^7.6.0", | ||||
|     "semver": "^7.3.4", | ||||
|     "xmlbuilder2": "^2.4.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^29.5.14", | ||||
|     "@types/node": "^20.11.24", | ||||
|     "@types/semver": "^7.5.8", | ||||
|     "@types/jest": "^29.5.9", | ||||
|     "@types/node": "^20.9.3", | ||||
|     "@types/semver": "^7.3.4", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.54.0", | ||||
|     "@typescript-eslint/parser": "^5.54.0", | ||||
|     "@vercel/ncc": "^0.38.1", | ||||
|     "eslint": "^8.57.0", | ||||
|     "eslint": "^8.35.0", | ||||
|     "eslint-config-prettier": "^8.6.0", | ||||
|     "eslint-plugin-jest": "^27.9.0", | ||||
|     "eslint-plugin-jest": "^27.2.1", | ||||
|     "eslint-plugin-node": "^11.1.0", | ||||
|     "jest": "^29.7.0", | ||||
|     "jest-circus": "^29.7.0", | ||||
|     "prettier": "^2.8.4", | ||||
|     "ts-jest": "^29.1.2", | ||||
|     "typescript": "^5.3.3" | ||||
|     "ts-jest": "^29.1.1", | ||||
|     "typescript": "^5.3.2" | ||||
|   }, | ||||
|   "bugs": { | ||||
|     "url": "https://github.com/actions/setup-java/issues" | ||||
|   }, | ||||
|   "homepage": "https://github.com/actions/setup-java#readme" | ||||
|    | ||||
| } | ||||
|  | ||||
| @ -98,7 +98,7 @@ async function computeCacheKey( | ||||
|       `No file in ${process.cwd()} matched to [${pattern}], make sure you have checked out the target repository` | ||||
|     ); | ||||
|   } | ||||
|   return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${process.arch}-${packageManager.id}-${fileHash}`; | ||||
|   return `${CACHE_KEY_PREFIX}-${process.env['RUNNER_OS']}-${packageManager.id}-${fileHash}`; | ||||
| } | ||||
| 
 | ||||
| /** | ||||
|  | ||||
| @ -15,8 +15,7 @@ import { | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| 
 | ||||
| export enum AdoptImplementation { | ||||
| @ -74,13 +73,11 @@ export class AdoptDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -5,8 +5,7 @@ import path from 'path'; | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   convertVersionToSemver, | ||||
|   renameWinArchive | ||||
|   convertVersionToSemver | ||||
| } from '../../util'; | ||||
| import {JavaBase} from '../base-installer'; | ||||
| import { | ||||
| @ -30,14 +29,14 @@ export class CorrettoDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile( | ||||
|       javaArchivePath, | ||||
|       getDownloadArchiveExtension() | ||||
|     ); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|     const archivePath = path.join(extractedJavaPath, archiveName); | ||||
| @ -94,7 +93,7 @@ export class CorrettoDistribution extends JavaBase { | ||||
|     const imageType = this.packageType; | ||||
| 
 | ||||
|     if (core.isDebug()) { | ||||
|       console.time('Retrieving available versions for Corretto took'); // eslint-disable-line no-console
 | ||||
|       console.time('Retrieving available versions for Coretto took'); // eslint-disable-line no-console
 | ||||
|     } | ||||
| 
 | ||||
|     const availableVersionsUrl = | ||||
| @ -117,7 +116,7 @@ export class CorrettoDistribution extends JavaBase { | ||||
| 
 | ||||
|     if (core.isDebug()) { | ||||
|       core.startGroup('Print information about available versions'); | ||||
|       console.timeEnd('Retrieving available versions for Corretto took'); // eslint-disable-line no-console
 | ||||
|       console.timeEnd('Retrieving available versions for Coretto took'); // eslint-disable-line no-console
 | ||||
|       core.debug(`Available versions: [${availableVersions.length}]`); | ||||
|       core.debug( | ||||
|         availableVersions | ||||
|  | ||||
| @ -10,9 +10,6 @@ import {SemeruDistribution} from './semeru/installer'; | ||||
| import {CorrettoDistribution} from './corretto/installer'; | ||||
| import {OracleDistribution} from './oracle/installer'; | ||||
| import {DragonwellDistribution} from './dragonwell/installer'; | ||||
| import {SapMachineDistribution} from './sapmachine/installer'; | ||||
| import {GraalVMDistribution} from './graalvm/installer'; | ||||
| import {JetBrainsDistribution} from './jetbrains/installer'; | ||||
| 
 | ||||
| enum JavaDistribution { | ||||
|   Adopt = 'adopt', | ||||
| @ -26,10 +23,7 @@ enum JavaDistribution { | ||||
|   Semeru = 'semeru', | ||||
|   Corretto = 'corretto', | ||||
|   Oracle = 'oracle', | ||||
|   Dragonwell = 'dragonwell', | ||||
|   SapMachine = 'sapmachine', | ||||
|   GraalVM = 'graalvm', | ||||
|   JetBrains = 'jetbrains' | ||||
|   Dragonwell = 'dragonwell' | ||||
| } | ||||
| 
 | ||||
| export function getJavaDistribution( | ||||
| @ -70,12 +64,6 @@ export function getJavaDistribution( | ||||
|       return new OracleDistribution(installerOptions); | ||||
|     case JavaDistribution.Dragonwell: | ||||
|       return new DragonwellDistribution(installerOptions); | ||||
|     case JavaDistribution.SapMachine: | ||||
|       return new SapMachineDistribution(installerOptions); | ||||
|     case JavaDistribution.GraalVM: | ||||
|       return new GraalVMDistribution(installerOptions); | ||||
|     case JavaDistribution.JetBrains: | ||||
|       return new JetBrainsDistribution(installerOptions); | ||||
|     default: | ||||
|       return null; | ||||
|   } | ||||
|  | ||||
| @ -11,8 +11,7 @@ import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   getGitHubHttpHeaders, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| import {IDragonwellVersions, IDragonwellAllVersions} from './models'; | ||||
| import { | ||||
| @ -101,14 +100,14 @@ export class DragonwellDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile( | ||||
|       javaArchivePath, | ||||
|       getDownloadArchiveExtension() | ||||
|     ); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|     const archivePath = path.join(extractedJavaPath, archiveName); | ||||
| @ -150,14 +149,9 @@ export class DragonwellDistribution extends JavaBase { | ||||
| 
 | ||||
|         // Some version of Dragonwell JDK are numerated with help of non-semver notation (more then 3 digits).
 | ||||
|         // Common practice is to transform excess digits to the so-called semver build part, which is prefixed with the plus sign, to be able to operate with them using semver tools.
 | ||||
|         const jdkVersionNums: string[] = jdkVersion | ||||
|           .replace('+', '.') | ||||
|           .split('.'); | ||||
|         jdkVersion = convertVersionToSemver( | ||||
|           `${jdkVersionNums.slice(0, 3).join('.')}.${ | ||||
|             jdkVersionNums[jdkVersionNums.length - 1] | ||||
|           }` | ||||
|         ); | ||||
|         if (jdkVersion.split('.').length > 3) { | ||||
|           jdkVersion = convertVersionToSemver(jdkVersion); | ||||
|         } | ||||
| 
 | ||||
|         for (const edition in archMap) { | ||||
|           eligibleVersions.push({ | ||||
|  | ||||
| @ -1,176 +0,0 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| 
 | ||||
| import fs from 'fs'; | ||||
| import path from 'path'; | ||||
| 
 | ||||
| import {JavaBase} from '../base-installer'; | ||||
| import { | ||||
|   JavaDownloadRelease, | ||||
|   JavaInstallerOptions, | ||||
|   JavaInstallerResults | ||||
| } from '../base-models'; | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   getGitHubHttpHeaders, | ||||
|   renameWinArchive | ||||
| } from '../../util'; | ||||
| import {HttpCodes} from '@actions/http-client'; | ||||
| import {GraalVMEAVersion} from './models'; | ||||
| 
 | ||||
| const GRAALVM_DL_BASE = 'https://download.oracle.com/graalvm'; | ||||
| const IS_WINDOWS = process.platform === 'win32'; | ||||
| const GRAALVM_PLATFORM = IS_WINDOWS ? 'windows' : process.platform; | ||||
| 
 | ||||
| export class GraalVMDistribution extends JavaBase { | ||||
|   constructor(installerOptions: JavaInstallerOptions) { | ||||
|     super('GraalVM', installerOptions); | ||||
|   } | ||||
| 
 | ||||
|   protected async downloadTool( | ||||
|     javaRelease: JavaDownloadRelease | ||||
|   ): Promise<JavaInstallerResults> { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|     const archivePath = path.join(extractedJavaPath, archiveName); | ||||
|     const version = this.getToolcacheVersionName(javaRelease.version); | ||||
| 
 | ||||
|     const javaPath = await tc.cacheDir( | ||||
|       archivePath, | ||||
|       this.toolcacheFolderName, | ||||
|       version, | ||||
|       this.architecture | ||||
|     ); | ||||
| 
 | ||||
|     return {version: javaRelease.version, path: javaPath}; | ||||
|   } | ||||
| 
 | ||||
|   protected async findPackageForDownload( | ||||
|     range: string | ||||
|   ): Promise<JavaDownloadRelease> { | ||||
|     const arch = this.distributionArchitecture(); | ||||
|     if (arch !== 'x64' && arch !== 'aarch64') { | ||||
|       throw new Error(`Unsupported architecture: ${this.architecture}`); | ||||
|     } | ||||
| 
 | ||||
|     if (!this.stable) { | ||||
|       return this.findEABuildDownloadUrl(`${range}-ea`); | ||||
|     } | ||||
| 
 | ||||
|     if (this.packageType !== 'jdk') { | ||||
|       throw new Error('GraalVM provides only the `jdk` package type'); | ||||
|     } | ||||
| 
 | ||||
|     const platform = this.getPlatform(); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     let major; | ||||
|     let fileUrl; | ||||
|     if (range.includes('.')) { | ||||
|       major = range.split('.')[0]; | ||||
|       fileUrl = `${GRAALVM_DL_BASE}/${major}/archive/graalvm-jdk-${range}_${platform}-${arch}_bin.${extension}`; | ||||
|     } else { | ||||
|       major = range; | ||||
|       fileUrl = `${GRAALVM_DL_BASE}/${range}/latest/graalvm-jdk-${range}_${platform}-${arch}_bin.${extension}`; | ||||
|     } | ||||
| 
 | ||||
|     if (parseInt(major) < 17) { | ||||
|       throw new Error('GraalVM is only supported for JDK 17 and later'); | ||||
|     } | ||||
| 
 | ||||
|     const response = await this.http.head(fileUrl); | ||||
| 
 | ||||
|     if (response.message.statusCode === HttpCodes.NotFound) { | ||||
|       throw new Error(`Could not find GraalVM for SemVer ${range}`); | ||||
|     } | ||||
| 
 | ||||
|     if (response.message.statusCode !== HttpCodes.OK) { | ||||
|       throw new Error( | ||||
|         `Http request for GraalVM failed with status code: ${response.message.statusCode}` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     return {url: fileUrl, version: range}; | ||||
|   } | ||||
| 
 | ||||
|   private async findEABuildDownloadUrl( | ||||
|     javaEaVersion: string | ||||
|   ): Promise<JavaDownloadRelease> { | ||||
|     const versions = await this.fetchEAJson(javaEaVersion); | ||||
|     const latestVersion = versions.find(v => v.latest); | ||||
|     if (!latestVersion) { | ||||
|       throw new Error(`Unable to find latest version for '${javaEaVersion}'`); | ||||
|     } | ||||
|     const arch = this.distributionArchitecture(); | ||||
|     const file = latestVersion.files.find( | ||||
|       f => f.arch === arch && f.platform === GRAALVM_PLATFORM | ||||
|     ); | ||||
|     if (!file || !file.filename.startsWith('graalvm-jdk-')) { | ||||
|       throw new Error(`Unable to find file metadata for '${javaEaVersion}'`); | ||||
|     } | ||||
|     return { | ||||
|       url: `${latestVersion.download_base_url}${file.filename}`, | ||||
|       version: latestVersion.version | ||||
|     }; | ||||
|   } | ||||
| 
 | ||||
|   private async fetchEAJson( | ||||
|     javaEaVersion: string | ||||
|   ): Promise<GraalVMEAVersion[]> { | ||||
|     const owner = 'graalvm'; | ||||
|     const repository = 'oracle-graalvm-ea-builds'; | ||||
|     const branch = 'main'; | ||||
|     const filePath = `versions/${javaEaVersion}.json`; | ||||
| 
 | ||||
|     const url = `https://api.github.com/repos/${owner}/${repository}/contents/${filePath}?ref=${branch}`; | ||||
| 
 | ||||
|     const headers = getGitHubHttpHeaders(); | ||||
| 
 | ||||
|     core.debug( | ||||
|       `Trying to fetch available version info for GraalVM EA builds from '${url}'` | ||||
|     ); | ||||
|     let fetchedJson; | ||||
|     try { | ||||
|       fetchedJson = (await this.http.getJson<GraalVMEAVersion[]>(url, headers)) | ||||
|         .result; | ||||
|     } catch (err) { | ||||
|       throw Error( | ||||
|         `Fetching version info for GraalVM EA builds from '${url}' failed with the error: ${ | ||||
|           (err as Error).message | ||||
|         }` | ||||
|       ); | ||||
|     } | ||||
|     if (fetchedJson === null) { | ||||
|       throw Error( | ||||
|         `No GraalVM EA build found. Are you sure java-version: '${javaEaVersion}' is correct?` | ||||
|       ); | ||||
|     } | ||||
|     return fetchedJson; | ||||
|   } | ||||
| 
 | ||||
|   public getPlatform(platform: NodeJS.Platform = process.platform): OsVersions { | ||||
|     switch (platform) { | ||||
|       case 'darwin': | ||||
|         return 'macos'; | ||||
|       case 'win32': | ||||
|         return 'windows'; | ||||
|       case 'linux': | ||||
|         return 'linux'; | ||||
|       default: | ||||
|         throw new Error( | ||||
|           `Platform '${platform}' is not supported. Supported platforms: 'linux', 'macos', 'windows'` | ||||
|         ); | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,14 +0,0 @@ | ||||
| export type OsVersions = 'linux' | 'macos' | 'windows'; | ||||
| 
 | ||||
| export interface GraalVMEAFile { | ||||
|   filename: string; | ||||
|   arch: 'aarch64' | 'x64'; | ||||
|   platform: 'darwin' | 'linux' | 'windows'; | ||||
| } | ||||
| 
 | ||||
| export interface GraalVMEAVersion { | ||||
|   version: string; | ||||
|   latest?: boolean; | ||||
|   download_base_url: string; | ||||
|   files: GraalVMEAFile[]; | ||||
| } | ||||
| @ -1,233 +0,0 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| 
 | ||||
| import fs from 'fs'; | ||||
| import path from 'path'; | ||||
| import semver from 'semver'; | ||||
| 
 | ||||
| import {JavaBase} from '../base-installer'; | ||||
| import {IJetBrainsRawVersion, IJetBrainsVersion} from './models'; | ||||
| import { | ||||
|   JavaDownloadRelease, | ||||
|   JavaInstallerOptions, | ||||
|   JavaInstallerResults | ||||
| } from '../base-models'; | ||||
| import {extractJdkFile, isVersionSatisfies} from '../../util'; | ||||
| import {OutgoingHttpHeaders} from 'http'; | ||||
| import {HttpCodes} from '@actions/http-client'; | ||||
| 
 | ||||
| export class JetBrainsDistribution extends JavaBase { | ||||
|   constructor(installerOptions: JavaInstallerOptions) { | ||||
|     super('JetBrains', installerOptions); | ||||
|   } | ||||
| 
 | ||||
|   protected async findPackageForDownload( | ||||
|     range: string | ||||
|   ): Promise<JavaDownloadRelease> { | ||||
|     const versionsRaw = await this.getAvailableVersions(); | ||||
| 
 | ||||
|     const versions = versionsRaw.map(v => { | ||||
|       const formattedVersion = `${v.semver}+${v.build}`; | ||||
| 
 | ||||
|       return { | ||||
|         version: formattedVersion, | ||||
|         url: v.url | ||||
|       } as JavaDownloadRelease; | ||||
|     }); | ||||
| 
 | ||||
|     const satisfiedVersions = versions | ||||
|       .filter(item => isVersionSatisfies(range, item.version)) | ||||
|       .sort((a, b) => { | ||||
|         return -semver.compareBuild(a.version, b.version); | ||||
|       }); | ||||
| 
 | ||||
|     const resolvedFullVersion = | ||||
|       satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; | ||||
|     if (!resolvedFullVersion) { | ||||
|       const availableOptions = versionsRaw | ||||
|         .map(item => `${item.tag_name} (${item.semver}+${item.build})`) | ||||
|         .join(', '); | ||||
|       const availableOptionsMessage = availableOptions | ||||
|         ? `\nAvailable versions: ${availableOptions}` | ||||
|         : ''; | ||||
|       throw new Error( | ||||
|         `Could not find satisfied version for SemVer '${range}'. ${availableOptionsMessage}` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     return resolvedFullVersion; | ||||
|   } | ||||
| 
 | ||||
|   protected async downloadTool( | ||||
|     javaRelease: JavaDownloadRelease | ||||
|   ): Promise<JavaInstallerResults> { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
| 
 | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, 'tar.gz'); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|     const archivePath = path.join(extractedJavaPath, archiveName); | ||||
|     const version = this.getToolcacheVersionName(javaRelease.version); | ||||
| 
 | ||||
|     const javaPath = await tc.cacheDir( | ||||
|       archivePath, | ||||
|       this.toolcacheFolderName, | ||||
|       version, | ||||
|       this.architecture | ||||
|     ); | ||||
| 
 | ||||
|     return {version: javaRelease.version, path: javaPath}; | ||||
|   } | ||||
| 
 | ||||
|   private async getAvailableVersions(): Promise<IJetBrainsVersion[]> { | ||||
|     const platform = this.getPlatformOption(); | ||||
|     const arch = this.distributionArchitecture(); | ||||
| 
 | ||||
|     if (core.isDebug()) { | ||||
|       console.time('Retrieving available versions for JBR took'); // eslint-disable-line no-console
 | ||||
|     } | ||||
| 
 | ||||
|     // need to iterate through all pages to retrieve the list of all versions
 | ||||
|     // GitHub API doesn't provide way to retrieve the count of pages to iterate so infinity loop
 | ||||
|     let page_index = 1; | ||||
|     const rawVersions: IJetBrainsRawVersion[] = []; | ||||
|     const bearerToken = process.env.GITHUB_TOKEN; | ||||
| 
 | ||||
|     while (true) { | ||||
|       const requestArguments = `per_page=100&page=${page_index}`; | ||||
|       const requestHeaders: OutgoingHttpHeaders = {}; | ||||
| 
 | ||||
|       if (bearerToken) { | ||||
|         requestHeaders['Authorization'] = `Bearer ${bearerToken}`; | ||||
|       } | ||||
| 
 | ||||
|       const rawUrl = `https://api.github.com/repos/JetBrains/JetBrainsRuntime/releases?${requestArguments}`; | ||||
| 
 | ||||
|       if (core.isDebug() && page_index === 1) { | ||||
|         // url is identical except page_index so print it once for debug
 | ||||
|         core.debug(`Gathering available versions from '${rawUrl}'`); | ||||
|       } | ||||
| 
 | ||||
|       const paginationPage = ( | ||||
|         await this.http.getJson<IJetBrainsRawVersion[]>(rawUrl, requestHeaders) | ||||
|       ).result; | ||||
|       if (!paginationPage || paginationPage.length === 0) { | ||||
|         // break infinity loop because we have reached end of pagination
 | ||||
|         break; | ||||
|       } | ||||
| 
 | ||||
|       rawVersions.push(...paginationPage); | ||||
|       page_index++; | ||||
|     } | ||||
| 
 | ||||
|     // Add versions not available from the API but are downloadable
 | ||||
|     const hidden = ['11_0_10b1145.115', '11_0_11b1341.60']; | ||||
|     rawVersions.push(...hidden.map(tag => ({tag_name: tag, name: tag}))); | ||||
| 
 | ||||
|     const versions0 = rawVersions.map(async v => { | ||||
|       // Release tags look like one of these:
 | ||||
|       // jbr-release-21.0.3b465.3
 | ||||
|       // jbr17-b87.7
 | ||||
|       // jb11_0_11-b87.7
 | ||||
|       // jbr11_0_15b2043.56
 | ||||
|       // 11_0_11b1536.2
 | ||||
|       // 11_0_11-b1522
 | ||||
|       const tag = v.tag_name; | ||||
| 
 | ||||
|       // Extract version string
 | ||||
|       const vstring = tag | ||||
|         .replace('jbr-release-', '') | ||||
|         .replace('jbr', '') | ||||
|         .replace('jb', '') | ||||
|         .replace('-', ''); | ||||
| 
 | ||||
|       const vsplit = vstring.split('b'); | ||||
|       let semver = vsplit[0]; | ||||
|       const build = +vsplit[1]; | ||||
| 
 | ||||
|       // Normalize semver
 | ||||
|       if (!semver.includes('.') && !semver.includes('_')) | ||||
|         semver = `${semver}.0.0`; | ||||
| 
 | ||||
|       // Construct URL
 | ||||
|       let type: string; | ||||
|       switch (this.packageType ?? '') { | ||||
|         case 'jre': | ||||
|           type = 'jbr'; | ||||
|           break; | ||||
|         case 'jdk+jcef': | ||||
|           type = 'jbrsdk_jcef'; | ||||
|           break; | ||||
|         case 'jre+jcef': | ||||
|           type = 'jbr_jcef'; | ||||
|           break; | ||||
|         case 'jdk+ft': | ||||
|           type = 'jbrsdk_ft'; | ||||
|           break; | ||||
|         case 'jre+ft': | ||||
|           type = 'jbr_ft'; | ||||
|           break; | ||||
|         default: | ||||
|           type = 'jbrsdk'; | ||||
|           break; | ||||
|       } | ||||
| 
 | ||||
|       let url = `https://cache-redirector.jetbrains.com/intellij-jbr/${type}-${semver}-${platform}-${arch}-b${build}.tar.gz`; | ||||
|       let include = false; | ||||
| 
 | ||||
|       const res = await this.http.head(url); | ||||
|       if (res.message.statusCode === HttpCodes.OK) { | ||||
|         include = true; | ||||
|       } else { | ||||
|         url = `https://cache-redirector.jetbrains.com/intellij-jbr/${type}_nomod-${semver}-${platform}-${arch}-b${build}.tar.gz`; | ||||
|         const res2 = await this.http.head(url); | ||||
|         if (res2.message.statusCode === HttpCodes.OK) { | ||||
|           include = true; | ||||
|         } | ||||
|       } | ||||
| 
 | ||||
|       const version = { | ||||
|         tag_name: tag, | ||||
|         semver: semver.replace(/_/g, '.'), | ||||
|         build: build, | ||||
|         url: url | ||||
|       } as IJetBrainsVersion; | ||||
| 
 | ||||
|       return { | ||||
|         item: version, | ||||
|         include: include | ||||
|       }; | ||||
|     }); | ||||
| 
 | ||||
|     const versions = await Promise.all(versions0).then(res => | ||||
|       res.filter(item => item.include).map(item => item.item) | ||||
|     ); | ||||
| 
 | ||||
|     if (core.isDebug()) { | ||||
|       core.startGroup('Print information about available versions'); | ||||
|       console.timeEnd('Retrieving available versions for JBR took'); // eslint-disable-line no-console
 | ||||
|       core.debug(`Available versions: [${versions.length}]`); | ||||
|       core.debug(versions.map(item => item.semver).join(', ')); | ||||
|       core.endGroup(); | ||||
|     } | ||||
| 
 | ||||
|     return versions; | ||||
|   } | ||||
| 
 | ||||
|   private getPlatformOption(): string { | ||||
|     // Jetbrains has own platform names so need to map them
 | ||||
|     switch (process.platform) { | ||||
|       case 'darwin': | ||||
|         return 'osx'; | ||||
|       case 'win32': | ||||
|         return 'windows'; | ||||
|       default: | ||||
|         return process.platform; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,13 +0,0 @@ | ||||
| // Raw Model from https://api.github.com/repos/JetBrains/JetBrainsRuntime/releases
 | ||||
| 
 | ||||
| export interface IJetBrainsRawVersion { | ||||
|   tag_name: string; | ||||
|   name: string; | ||||
| } | ||||
| 
 | ||||
| export interface IJetBrainsVersion { | ||||
|   tag_name: string; | ||||
|   semver: string; | ||||
|   build: number; | ||||
|   url: string; | ||||
| } | ||||
| @ -8,8 +8,7 @@ import semver from 'semver'; | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| import * as core from '@actions/core'; | ||||
| import {ArchitectureOptions, LibericaVersion, OsVersions} from './models'; | ||||
| @ -32,13 +31,10 @@ export class LibericaDistributions extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -7,8 +7,7 @@ import { | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   getGitHubHttpHeaders, | ||||
|   renameWinArchive | ||||
|   getGitHubHttpHeaders | ||||
| } from '../../util'; | ||||
| import * as core from '@actions/core'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| @ -27,13 +26,10 @@ export class MicrosoftDistributions extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -1,90 +1,4 @@ | ||||
| [ | ||||
|   { | ||||
|   "version": "21.0.2", | ||||
|   "stable": true, | ||||
|   "release_url": "https://aka.ms/download-jdk", | ||||
|   "files": [ | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-macos-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-linux-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-windows-x64.zip", | ||||
|       "arch": "x64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-x64.zip" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-macos-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-macos-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-linux-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-linux-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.2-windows-aarch64.zip", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.2-windows-aarch64.zip" | ||||
|     } | ||||
|   ] | ||||
| }, | ||||
|   { | ||||
|   "version": "21.0.1", | ||||
|   "stable": true, | ||||
|   "release_url": "https://aka.ms/download-jdk", | ||||
|   "files": [ | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-macos-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-linux-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-windows-x64.zip", | ||||
|       "arch": "x64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-x64.zip" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-macos-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-macos-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-linux-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-linux-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-21.0.1-windows-aarch64.zip", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.1-windows-aarch64.zip" | ||||
|     } | ||||
|   ] | ||||
| }, | ||||
|   { | ||||
|     "version": "21.0.0", | ||||
|     "stable": true, | ||||
| @ -119,184 +33,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.0-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-21.0.0-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-21.0.0-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "version": "17.0.10", | ||||
|     "stable": true, | ||||
|     "release_url": "https://aka.ms/download-jdk", | ||||
|     "files": [ | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-macos-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-macos-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-linux-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.10-linux-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-windows-x64.zip", | ||||
|         "arch": "x64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.10-windows-x64.zip" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-macos-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.10-macos-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-linux-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.10-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.10-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.10-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "version": "17.0.9", | ||||
|     "stable": true, | ||||
|     "release_url": "https://aka.ms/download-jdk", | ||||
|     "files": [ | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-macos-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-linux-x64.tar.gz", | ||||
|       "arch": "x64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-x64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-windows-x64.zip", | ||||
|       "arch": "x64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-x64.zip" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-macos-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "darwin", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-macos-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-linux-aarch64.tar.gz", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "linux", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-linux-aarch64.tar.gz" | ||||
|     }, | ||||
|     { | ||||
|       "filename": "microsoft-jdk-17.0.9-windows-aarch64.zip", | ||||
|       "arch": "aarch64", | ||||
|       "platform": "win32", | ||||
|       "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.9-windows-aarch64.zip" | ||||
|     } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "version": "17.0.8", | ||||
|     "stable": true, | ||||
|     "release_url": "https://aka.ms/download-jdk", | ||||
|     "files": [ | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-macos-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-macos-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-linux-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-linux-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-windows-x64.zip", | ||||
|         "arch": "x64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-windows-x64.zip" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-macos-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-macos-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-linux-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|   { | ||||
|     "version": "17.0.8.1", | ||||
|     "stable": true, | ||||
|     "release_url": "https://aka.ms/download-jdk", | ||||
|     "files": [ | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-macos-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-macos-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-linux-x64.tar.gz", | ||||
|         "arch": "x64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-linux-x64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-windows-x64.zip", | ||||
|         "arch": "x64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-windows-x64.zip" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-macos-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "darwin", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-macos-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-linux-aarch64.tar.gz", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.8.1-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.8.1-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -334,12 +70,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.7-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.7-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -377,12 +107,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.6-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.6-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.6-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -420,12 +144,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.5-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.5-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.5-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -463,12 +181,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.4-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.4-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.4-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -506,12 +218,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.3-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-17.0.3-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-17.0.3-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -623,12 +329,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.19-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-11.0.19-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.19-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -666,12 +366,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.18-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-11.0.18-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.18-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -709,12 +403,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.17-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-11.0.17-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.17-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -752,12 +440,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.16-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-11.0.16-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.16-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
| @ -795,12 +477,6 @@ | ||||
|         "arch": "aarch64", | ||||
|         "platform": "linux", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.15-linux-aarch64.tar.gz" | ||||
|       }, | ||||
|       { | ||||
|         "filename": "microsoft-jdk-11.0.15-windows-aarch64.zip", | ||||
|         "arch": "aarch64", | ||||
|         "platform": "win32", | ||||
|         "download_url": "https://aka.ms/download-jdk/microsoft-jdk-11.0.15-windows-aarch64.zip" | ||||
|       } | ||||
|     ] | ||||
|   }, | ||||
|  | ||||
| @ -10,11 +10,7 @@ import { | ||||
|   JavaInstallerOptions, | ||||
|   JavaInstallerResults | ||||
| } from '../base-models'; | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   renameWinArchive | ||||
| } from '../../util'; | ||||
| import {extractJdkFile, getDownloadArchiveExtension} from '../../util'; | ||||
| import {HttpCodes} from '@actions/http-client'; | ||||
| 
 | ||||
| const ORACLE_DL_BASE = 'https://download.oracle.com/java'; | ||||
| @ -30,13 +26,11 @@ export class OracleDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -1,269 +0,0 @@ | ||||
| import * as core from '@actions/core'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| import semver from 'semver'; | ||||
| import fs from 'fs'; | ||||
| import {OutgoingHttpHeaders} from 'http'; | ||||
| import path from 'path'; | ||||
| import { | ||||
|   convertVersionToSemver, | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   getGitHubHttpHeaders, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
| } from '../../util'; | ||||
| import {JavaBase} from '../base-installer'; | ||||
| import { | ||||
|   JavaDownloadRelease, | ||||
|   JavaInstallerOptions, | ||||
|   JavaInstallerResults | ||||
| } from '../base-models'; | ||||
| import {ISapMachineAllVersions, ISapMachineVersions} from './models'; | ||||
| 
 | ||||
| export class SapMachineDistribution extends JavaBase { | ||||
|   constructor(installerOptions: JavaInstallerOptions) { | ||||
|     super('SapMachine', installerOptions); | ||||
|   } | ||||
| 
 | ||||
|   protected async findPackageForDownload( | ||||
|     version: string | ||||
|   ): Promise<JavaDownloadRelease> { | ||||
|     core.debug(`Only stable versions: ${this.stable}`); | ||||
| 
 | ||||
|     if (!['jdk', 'jre'].includes(this.packageType)) { | ||||
|       throw new Error( | ||||
|         'SapMachine provides only the `jdk` and `jre` package type' | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     const availableVersions = await this.getAvailableVersions(); | ||||
| 
 | ||||
|     const matchedVersions = availableVersions | ||||
|       .filter(item => { | ||||
|         return isVersionSatisfies(version, item.version); | ||||
|       }) | ||||
|       .map(item => { | ||||
|         return { | ||||
|           version: item.version, | ||||
|           url: item.downloadLink | ||||
|         } as JavaDownloadRelease; | ||||
|       }); | ||||
| 
 | ||||
|     if (!matchedVersions.length) { | ||||
|       throw new Error( | ||||
|         `Couldn't find any satisfied version for the specified java-version: "${version}" and architecture: "${this.architecture}".` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     const resolvedVersion = matchedVersions[0]; | ||||
|     return resolvedVersion; | ||||
|   } | ||||
| 
 | ||||
|   private async getAvailableVersions(): Promise<ISapMachineVersions[]> { | ||||
|     const platform = this.getPlatformOption(); | ||||
|     const arch = this.distributionArchitecture(); | ||||
| 
 | ||||
|     let fetchedReleasesJson = await this.fetchReleasesFromUrl( | ||||
|       'https://sap.github.io/SapMachine/assets/data/sapmachine-releases-all.json' | ||||
|     ); | ||||
| 
 | ||||
|     if (!fetchedReleasesJson) { | ||||
|       fetchedReleasesJson = await this.fetchReleasesFromUrl( | ||||
|         'https://api.github.com/repos/SAP/SapMachine/contents/assets/data/sapmachine-releases-all.json?ref=gh-pages', | ||||
|         getGitHubHttpHeaders() | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     if (!fetchedReleasesJson) { | ||||
|       throw new Error( | ||||
|         `Couldn't fetch SapMachine versions information from both primary and backup urls` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
|     core.debug( | ||||
|       'Successfully fetched information about available SapMachine versions' | ||||
|     ); | ||||
| 
 | ||||
|     const availableVersions = this.parseVersions( | ||||
|       platform, | ||||
|       arch, | ||||
|       fetchedReleasesJson | ||||
|     ); | ||||
| 
 | ||||
|     if (core.isDebug()) { | ||||
|       core.startGroup('Print information about available versions'); | ||||
|       core.debug(availableVersions.map(item => item.version).join(', ')); | ||||
|       core.endGroup(); | ||||
|     } | ||||
| 
 | ||||
|     return availableVersions; | ||||
|   } | ||||
| 
 | ||||
|   protected async downloadTool( | ||||
|     javaRelease: JavaDownloadRelease | ||||
|   ): Promise<JavaInstallerResults> { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|     const archivePath = path.join(extractedJavaPath, archiveName); | ||||
|     const version = this.getToolcacheVersionName(javaRelease.version); | ||||
| 
 | ||||
|     const javaPath = await tc.cacheDir( | ||||
|       archivePath, | ||||
|       this.toolcacheFolderName, | ||||
|       version, | ||||
|       this.architecture | ||||
|     ); | ||||
| 
 | ||||
|     return {version: javaRelease.version, path: javaPath}; | ||||
|   } | ||||
| 
 | ||||
|   private parseVersions( | ||||
|     platform: string, | ||||
|     arch: string, | ||||
|     versions: ISapMachineAllVersions | ||||
|   ): ISapMachineVersions[] { | ||||
|     const eligibleVersions: ISapMachineVersions[] = []; | ||||
| 
 | ||||
|     for (const [, majorVersionMap] of Object.entries(versions)) { | ||||
|       for (const [, jdkVersionMap] of Object.entries(majorVersionMap.updates)) { | ||||
|         for (const [buildVersion, buildVersionMap] of Object.entries( | ||||
|           jdkVersionMap | ||||
|         )) { | ||||
|           let buildVersionWithoutPrefix = buildVersion.replace( | ||||
|             'sapmachine-', | ||||
|             '' | ||||
|           ); | ||||
|           if (!buildVersionWithoutPrefix.includes('.')) { | ||||
|             // replace major version with major.minor.patch and keep the remaining build identifier after the + as is with regex
 | ||||
|             buildVersionWithoutPrefix = buildVersionWithoutPrefix.replace( | ||||
|               /(\d+)(\+.*)?/, | ||||
|               '$1.0.0$2' | ||||
|             ); | ||||
|           } | ||||
|           // replace + with . to convert to semver format if we have more than 3 version digits
 | ||||
|           if (buildVersionWithoutPrefix.split('.').length > 3) { | ||||
|             buildVersionWithoutPrefix = buildVersionWithoutPrefix.replace( | ||||
|               '+', | ||||
|               '.' | ||||
|             ); | ||||
|           } | ||||
|           buildVersionWithoutPrefix = convertVersionToSemver( | ||||
|             buildVersionWithoutPrefix | ||||
|           ); | ||||
| 
 | ||||
|           // ignore invalid version
 | ||||
|           if (!semver.valid(buildVersionWithoutPrefix)) { | ||||
|             core.debug(`Invalid version: ${buildVersionWithoutPrefix}`); | ||||
|             continue; | ||||
|           } | ||||
| 
 | ||||
|           // skip earlyAccessVersions if stable version requested
 | ||||
|           if (this.stable && buildVersionMap.ea === 'true') { | ||||
|             continue; | ||||
|           } | ||||
| 
 | ||||
|           for (const [edition, editionAssets] of Object.entries( | ||||
|             buildVersionMap.assets | ||||
|           )) { | ||||
|             if (this.packageType !== edition) { | ||||
|               continue; | ||||
|             } | ||||
|             for (const [archAndPlatForm, archAssets] of Object.entries( | ||||
|               editionAssets | ||||
|             )) { | ||||
|               let expectedArchAndPlatform = `${platform}-${arch}`; | ||||
|               if (platform === 'linux-musl') { | ||||
|                 expectedArchAndPlatform = `linux-${arch}-musl`; | ||||
|               } | ||||
|               if (archAndPlatForm !== expectedArchAndPlatform) { | ||||
|                 continue; | ||||
|               } | ||||
|               for (const [contentType, contentTypeAssets] of Object.entries( | ||||
|                 archAssets | ||||
|               )) { | ||||
|                 // skip if not tar.gz and zip files
 | ||||
|                 if (contentType !== 'tar.gz' && contentType !== 'zip') { | ||||
|                   continue; | ||||
|                 } | ||||
|                 eligibleVersions.push({ | ||||
|                   os: platform, | ||||
|                   architecture: arch, | ||||
|                   version: buildVersionWithoutPrefix, | ||||
|                   checksum: contentTypeAssets.checksum, | ||||
|                   downloadLink: contentTypeAssets.url, | ||||
|                   packageType: edition | ||||
|                 }); | ||||
|               } | ||||
|             } | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     const sortedVersions = this.sortParsedVersions(eligibleVersions); | ||||
| 
 | ||||
|     return sortedVersions; | ||||
|   } | ||||
| 
 | ||||
|   // Sorts versions in descending order as by default data in JSON isn't sorted
 | ||||
|   private sortParsedVersions( | ||||
|     eligibleVersions: ISapMachineVersions[] | ||||
|   ): ISapMachineVersions[] { | ||||
|     const sortedVersions = eligibleVersions.sort((versionObj1, versionObj2) => { | ||||
|       const version1 = versionObj1.version; | ||||
|       const version2 = versionObj2.version; | ||||
|       return semver.compareBuild(version1, version2); | ||||
|     }); | ||||
|     return sortedVersions.reverse(); | ||||
|   } | ||||
| 
 | ||||
|   private getPlatformOption(): string { | ||||
|     switch (process.platform) { | ||||
|       case 'win32': | ||||
|         return 'windows'; | ||||
|       case 'darwin': | ||||
|         return 'macos'; | ||||
|       case 'linux': | ||||
|         // figure out if alpine/musl
 | ||||
|         if (fs.existsSync('/etc/alpine-release')) { | ||||
|           return 'linux-musl'; | ||||
|         } | ||||
|         return 'linux'; | ||||
|       default: | ||||
|         return process.platform; | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   private async fetchReleasesFromUrl( | ||||
|     url: string, | ||||
|     headers: OutgoingHttpHeaders = {} | ||||
|   ): Promise<ISapMachineAllVersions | null> { | ||||
|     try { | ||||
|       core.debug( | ||||
|         `Trying to fetch available SapMachine versions info from the primary url: ${url}` | ||||
|       ); | ||||
|       const releases = ( | ||||
|         await this.http.getJson<ISapMachineAllVersions>(url, headers) | ||||
|       ).result; | ||||
|       return releases; | ||||
|     } catch (err) { | ||||
|       core.debug( | ||||
|         `Fetching SapMachine versions info from the link: ${url} ended up with the error: ${ | ||||
|           (err as Error).message | ||||
|         }` | ||||
|       ); | ||||
|       return null; | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @ -1,33 +0,0 @@ | ||||
| export interface ISapMachineAllVersions { | ||||
|   [major: string]: { | ||||
|     lts: string; | ||||
|     updates: { | ||||
|       [full_version: string]: { | ||||
|         [sapmachineBuild: string]: { | ||||
|           release_url: string; | ||||
|           ea: string; | ||||
|           assets: { | ||||
|             [packageType: string]: { | ||||
|               [arch: string]: { | ||||
|                 [content_type: string]: { | ||||
|                   name: string; | ||||
|                   checksum: string; | ||||
|                   url: string; | ||||
|                 }; | ||||
|               }; | ||||
|             }; | ||||
|           }; | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
| 
 | ||||
| export interface ISapMachineVersions { | ||||
|   os: string; | ||||
|   architecture: string; | ||||
|   version: string; | ||||
|   checksum: string; | ||||
|   downloadLink: string; | ||||
|   packageType: string; | ||||
| } | ||||
| @ -8,8 +8,7 @@ import semver from 'semver'; | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| import * as core from '@actions/core'; | ||||
| import * as tc from '@actions/tool-cache'; | ||||
| @ -34,15 +33,11 @@ export class SemeruDistribution extends JavaBase { | ||||
|   protected async findPackageForDownload( | ||||
|     version: string | ||||
|   ): Promise<JavaDownloadRelease> { | ||||
|     const arch = this.distributionArchitecture(); | ||||
| 
 | ||||
|     if (!supportedArchitectures.includes(arch)) { | ||||
|     if (!supportedArchitectures.includes(this.architecture)) { | ||||
|       throw new Error( | ||||
|         `Unsupported architecture for IBM Semeru: ${ | ||||
|           this.architecture | ||||
|         } for your current OS version, the following are supported: ${supportedArchitectures.join( | ||||
|           ', ' | ||||
|         )}` | ||||
|         }, the following are supported: ${supportedArchitectures.join(', ')}` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
| @ -86,7 +81,7 @@ export class SemeruDistribution extends JavaBase { | ||||
|         ? `\nAvailable versions: ${availableOptions}` | ||||
|         : ''; | ||||
|       throw new Error( | ||||
|         `Could not find satisfied version for SemVer version '${version}' for your current OS version for ${this.architecture} architecture ${availableOptionsMessage}` | ||||
|         `Could not find satisfied version for SemVer '${version}'. ${availableOptionsMessage}` | ||||
|       ); | ||||
|     } | ||||
| 
 | ||||
| @ -99,13 +94,11 @@ export class SemeruDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
| 
 | ||||
|     const extractedJavaPath: string = await extractJdkFile( | ||||
|       javaArchivePath, | ||||
|       extension | ||||
| @ -131,7 +124,7 @@ export class SemeruDistribution extends JavaBase { | ||||
| 
 | ||||
|   public async getAvailableVersions(): Promise<ISemeruAvailableVersions[]> { | ||||
|     const platform = this.getPlatformOption(); | ||||
|     const arch = this.distributionArchitecture(); | ||||
|     const arch = this.architecture; | ||||
|     const imageType = this.packageType; | ||||
|     const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions
 | ||||
|     const releaseType = this.stable ? 'ga' : 'ea'; | ||||
|  | ||||
| @ -15,8 +15,7 @@ import { | ||||
| import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| 
 | ||||
| export enum TemurinImplementation { | ||||
| @ -77,13 +76,11 @@ export class TemurinDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -11,8 +11,7 @@ import { | ||||
|   extractJdkFile, | ||||
|   getDownloadArchiveExtension, | ||||
|   convertVersionToSemver, | ||||
|   isVersionSatisfies, | ||||
|   renameWinArchive | ||||
|   isVersionSatisfies | ||||
| } from '../../util'; | ||||
| import { | ||||
|   JavaDownloadRelease, | ||||
| @ -77,13 +76,11 @@ export class ZuluDistribution extends JavaBase { | ||||
|     core.info( | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     } | ||||
| 
 | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||
|  | ||||
| @ -55,11 +55,7 @@ async function run() { | ||||
|       ); | ||||
|       const content = fs.readFileSync(versionFile).toString().trim(); | ||||
| 
 | ||||
|       const version = getVersionFromFileContent( | ||||
|         content, | ||||
|         distributionName, | ||||
|         versionFile | ||||
|       ); | ||||
|       const version = getVersionFromFileContent(content, distributionName); | ||||
|       core.debug(`Parsed version from file '${version}'`); | ||||
| 
 | ||||
|       if (!version) { | ||||
|  | ||||
							
								
								
									
										43
									
								
								src/util.ts
									
									
									
									
									
								
							
							
						
						
									
										43
									
								
								src/util.ts
									
									
									
									
									
								
							| @ -92,13 +92,7 @@ export function isGhes(): boolean { | ||||
|   const ghUrl = new URL( | ||||
|     process.env['GITHUB_SERVER_URL'] || 'https://github.com' | ||||
|   ); | ||||
| 
 | ||||
|   const hostname = ghUrl.hostname.trimEnd().toUpperCase(); | ||||
|   const isGitHubHost = hostname === 'GITHUB.COM'; | ||||
|   const isGitHubEnterpriseCloudHost = hostname.endsWith('.GHE.COM'); | ||||
|   const isLocalHost = hostname.endsWith('.LOCALHOST'); | ||||
| 
 | ||||
|   return !isGitHubHost && !isGitHubEnterpriseCloudHost && !isLocalHost; | ||||
|   return ghUrl.hostname.toUpperCase() !== 'GITHUB.COM'; | ||||
| } | ||||
| 
 | ||||
| export function isCacheFeatureAvailable(): boolean { | ||||
| @ -121,23 +115,9 @@ export function isCacheFeatureAvailable(): boolean { | ||||
| 
 | ||||
| export function getVersionFromFileContent( | ||||
|   content: string, | ||||
|   distributionName: string, | ||||
|   versionFile: string | ||||
|   distributionName: string | ||||
| ): string | null { | ||||
|   let javaVersionRegExp: RegExp; | ||||
| 
 | ||||
|   function getFileName(versionFile: string) { | ||||
|     return path.basename(versionFile); | ||||
|   } | ||||
| 
 | ||||
|   const versionFileName = getFileName(versionFile); | ||||
|   if (versionFileName == '.tool-versions') { | ||||
|     javaVersionRegExp = | ||||
|       /^(java\s+)(?:\S*-)?v?(?<version>(\d+)(\.\d+)?(\.\d+)?(\+\d+)?(-ea(\.\d+)?)?)$/m; | ||||
|   } else { | ||||
|     javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/; | ||||
|   } | ||||
| 
 | ||||
|   const javaVersionRegExp = /(?<version>(?<=(^|\s|-))(\d+\S*))(\s|$)/; | ||||
|   const fileContent = content.match(javaVersionRegExp)?.groups?.version | ||||
|     ? (content.match(javaVersionRegExp)?.groups?.version as string) | ||||
|     : ''; | ||||
| @ -186,24 +166,9 @@ export function convertVersionToSemver(version: number[] | string) { | ||||
| export function getGitHubHttpHeaders(): OutgoingHttpHeaders { | ||||
|   const token = core.getInput('token'); | ||||
|   const auth = !token ? undefined : `token ${token}`; | ||||
| 
 | ||||
|   const headers: OutgoingHttpHeaders = { | ||||
|     authorization: auth, | ||||
|     accept: 'application/vnd.github.VERSION.raw' | ||||
|   }; | ||||
| 
 | ||||
|   if (auth) { | ||||
|     headers.authorization = auth; | ||||
|   } | ||||
|   return headers; | ||||
| } | ||||
| 
 | ||||
| // Rename archive to add extension because after downloading
 | ||||
| // archive does not contain extension type and it leads to some issues
 | ||||
| // on Windows runners without PowerShell Core.
 | ||||
| //
 | ||||
| // For default PowerShell Windows it should contain extension type to unpack it.
 | ||||
| export function renameWinArchive(javaArchivePath: string): string { | ||||
|   const javaArchivePathRenamed = `${javaArchivePath}.zip`; | ||||
|   fs.renameSync(javaArchivePath, javaArchivePathRenamed); | ||||
|   return javaArchivePathRenamed; | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user