Compare commits
	
		
			No commits in common. "main" and "v4.2.2" 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' | ||||
							
								
								
									
										4
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							| @ -121,7 +121,7 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-22.04] | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
| @ -170,7 +170,7 @@ jobs: | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-22.04] | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|     needs: sbt-save | ||||
|     steps: | ||||
|       - name: Checkout | ||||
|  | ||||
							
								
								
									
										137
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										137
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							| @ -30,9 +30,7 @@ jobs: | ||||
|             'microsoft', | ||||
|             'semeru', | ||||
|             'corretto', | ||||
|             'dragonwell', | ||||
|             'sapmachine', | ||||
|             'jetbrains' | ||||
|             'dragonwell' | ||||
|           ] # internally 'adopt-hotspot' is the same as 'adopt' | ||||
|         version: ['21', '11', '17'] | ||||
|         exclude: | ||||
| @ -46,22 +44,11 @@ jobs: | ||||
|             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 | ||||
| @ -71,8 +58,6 @@ jobs: | ||||
|         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 | ||||
| @ -93,25 +78,13 @@ jobs: | ||||
|         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 | ||||
| @ -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,15 +106,7 @@ 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 | ||||
| @ -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,15 +132,7 @@ 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 | ||||
| @ -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 | ||||
| @ -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 | ||||
| @ -287,8 +216,7 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         os: [macos-13, windows-latest, ubuntu-latest] | ||||
|         distribution: | ||||
|           ['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains'] | ||||
|         distribution: ['temurin', 'zulu', 'liberica', 'semeru'] | ||||
|         java-package: ['jre'] | ||||
|         version: ['17.0'] | ||||
|         include: | ||||
| @ -312,47 +240,6 @@ 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 | ||||
| @ -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,7 +263,7 @@ 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: | ||||
|  | ||||
							
								
								
									
										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/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.
										
									
								
							
							
								
								
									
										
											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.
										
									
								
							
							
								
								
									
										16
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								README.md
									
									
									
									
									
								
							| @ -28,7 +28,7 @@ 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). | ||||
| 
 | ||||
|     | ||||
|   - `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`. | ||||
| @ -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. | ||||
| 
 | ||||
| @ -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) | ||||
| @ -273,15 +268,6 @@ In the example above multiple JDKs are installed for the same job. The result af | ||||
| - [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 | ||||
| 
 | ||||
| The scripts and documentation in this project are released under the [MIT License](LICENSE). | ||||
|  | ||||
| @ -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" | ||||
|     } | ||||
|   ] | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -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,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` | ||||
|       ); | ||||
|     } | ||||
|   ); | ||||
|  | ||||
| @ -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(); | ||||
|   }); | ||||
| }); | ||||
|  | ||||
							
								
								
									
										10299
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10299
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10979
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10979
									
								
								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) | ||||
| @ -145,91 +142,6 @@ steps: | ||||
| - 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: | ||||
| @ -242,6 +154,7 @@ steps: | ||||
| - run: java -cp java HelloWorldApp | ||||
| ``` | ||||
| 
 | ||||
| 
 | ||||
| ## Installing custom Java architecture | ||||
| 
 | ||||
| ```yaml | ||||
|  | ||||
							
								
								
									
										285
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										285
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -9,18 +9,18 @@ | ||||
|       "version": "4.0.0", | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "@actions/cache": "^4.0.0", | ||||
|         "@actions/cache": "^3.2.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.1", | ||||
|         "@actions/io": "^1.0.2", | ||||
|         "@actions/tool-cache": "^2.0.1", | ||||
|         "semver": "^7.6.0", | ||||
|         "xmlbuilder2": "^2.4.0" | ||||
|       }, | ||||
|       "devDependencies": { | ||||
|         "@types/jest": "^29.5.14", | ||||
|         "@types/jest": "^29.5.12", | ||||
|         "@types/node": "^20.11.24", | ||||
|         "@types/semver": "^7.5.8", | ||||
|         "@typescript-eslint/eslint-plugin": "^5.54.0", | ||||
| @ -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.4", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.2.4.tgz", | ||||
|       "integrity": "sha512-RuHnwfcDagtX+37s0ZWy7clbOfnZ7AlDJQ7k/9rzt2W4Gnwde3fa/qjSjVuz4vLcLIpc7fUob27CMrqiWZytYA==", | ||||
|       "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" | ||||
|         "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.1", | ||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", | ||||
|       "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", | ||||
|       "dependencies": { | ||||
|         "tunnel": "^0.0.6", | ||||
|         "undici": "^5.25.4" | ||||
| @ -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.12", | ||||
|       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", | ||||
|       "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", | ||||
|       "dev": true, | ||||
|       "license": "MIT", | ||||
|       "dependencies": { | ||||
|         "expect": "^29.0.0", | ||||
|         "pretty-format": "^29.0.0" | ||||
| @ -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", | ||||
| @ -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", | ||||
| @ -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" | ||||
|       }, | ||||
| @ -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", | ||||
| @ -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.28.4", | ||||
|       "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.4.tgz", | ||||
|       "integrity": "sha512-72RFADWFqKmUb2hmmvNODKL3p9hcB6Gt2DOQMis1SEBaV6a4MH8soBvzg+95CYhCKPFedut2JY9bMfrDl9D23g==", | ||||
|       "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", | ||||
|  | ||||
| @ -26,18 +26,18 @@ | ||||
|   "author": "GitHub", | ||||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@actions/cache": "^4.0.0", | ||||
|     "@actions/cache": "^3.2.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.1", | ||||
|     "@actions/io": "^1.0.2", | ||||
|     "@actions/tool-cache": "^2.0.1", | ||||
|     "semver": "^7.6.0", | ||||
|     "xmlbuilder2": "^2.4.0" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/jest": "^29.5.14", | ||||
|     "@types/jest": "^29.5.12", | ||||
|     "@types/node": "^20.11.24", | ||||
|     "@types/semver": "^7.5.8", | ||||
|     "@typescript-eslint/eslint-plugin": "^5.54.0", | ||||
|  | ||||
| @ -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); | ||||
|  | ||||
| @ -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'; | ||||
| @ -36,8 +35,13 @@ export class LibericaDistributions extends JavaBase { | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     if ( | ||||
|       process.platform === 'win32' && | ||||
|       (this.architecture === 'arm64' || this.architecture === 'aarch64') | ||||
|     ) { | ||||
|       const javaArchivePathRenamed = `${javaArchivePath}.zip`; | ||||
|       await fs.renameSync(javaArchivePath, javaArchivePathRenamed); | ||||
|       javaArchivePath = javaArchivePathRenamed; | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|  | ||||
| @ -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'; | ||||
| @ -28,12 +27,22 @@ export class MicrosoftDistributions extends JavaBase { | ||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||
|     ); | ||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); | ||||
|     // 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.
 | ||||
|     if ( | ||||
|       process.platform === 'win32' && | ||||
|       (this.architecture === 'arm64' || this.architecture === 'aarch64') | ||||
|     ) { | ||||
|       const javaArchivePathRenamed = `${javaArchivePath}.zip`; | ||||
|       await fs.renameSync(javaArchivePath, javaArchivePathRenamed); | ||||
|       javaArchivePath = javaArchivePathRenamed; | ||||
|     } | ||||
| 
 | ||||
|     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]; | ||||
|  | ||||
| @ -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, | ||||
| @ -81,8 +80,13 @@ export class ZuluDistribution extends JavaBase { | ||||
| 
 | ||||
|     core.info(`Extracting Java archive...`); | ||||
|     const extension = getDownloadArchiveExtension(); | ||||
|     if (process.platform === 'win32') { | ||||
|       javaArchivePath = renameWinArchive(javaArchivePath); | ||||
|     if ( | ||||
|       process.platform === 'win32' && | ||||
|       (this.architecture === 'arm64' || this.architecture === 'aarch64') | ||||
|     ) { | ||||
|       const javaArchivePathRenamed = `${javaArchivePath}.zip`; | ||||
|       await fs.renameSync(javaArchivePath, javaArchivePathRenamed); | ||||
|       javaArchivePath = javaArchivePathRenamed; | ||||
|     } | ||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										19
									
								
								src/util.ts
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								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 { | ||||
| @ -196,14 +190,3 @@ export function getGitHubHttpHeaders(): OutgoingHttpHeaders { | ||||
|   } | ||||
|   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