Compare commits
	
		
			No commits in common. "main" and "v4.2.1" 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' |  | ||||||
							
								
								
									
										26
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/e2e-cache.yml
									
									
									
									
										vendored
									
									
								
							| @ -21,7 +21,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -46,7 +46,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     needs: gradle-save |     needs: gradle-save | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
| @ -70,7 +70,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -93,7 +93,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     needs: maven-save |     needs: maven-save | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
| @ -121,7 +121,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-22.04] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -132,21 +132,17 @@ jobs: | |||||||
|           distribution: 'adopt' |           distribution: 'adopt' | ||||||
|           java-version: '11' |           java-version: '11' | ||||||
|           cache: sbt |           cache: sbt | ||||||
|       - name: Setup SBT |  | ||||||
|         if: matrix.os == 'macos-13' |  | ||||||
|         run: | |  | ||||||
|           echo ""Installing SBT..."" |  | ||||||
|           brew install sbt |  | ||||||
|       - name: Create files to cache |       - name: Create files to cache | ||||||
|         run: sbt update |         run: sbt update | ||||||
| 
 | 
 | ||||||
|       - name: Check files to cache on macos-latest |       - name: Check files to cache on macos-latest | ||||||
|         if: matrix.os == 'macos-13' |         if: matrix.os == 'macos-latest' | ||||||
|         run: | |         run: | | ||||||
|           if [ ! -d ~/Library/Caches/Coursier ]; then |           if [ ! -d ~/Library/Caches/Coursier ]; then | ||||||
|             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" |             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" | ||||||
|             exit 1 |             exit 1 | ||||||
|           fi |           fi | ||||||
|  | 
 | ||||||
|       - name: Check files to cache on windows-latest |       - name: Check files to cache on windows-latest | ||||||
|         if: matrix.os == 'windows-latest' |         if: matrix.os == 'windows-latest' | ||||||
|         run: | |         run: | | ||||||
| @ -154,6 +150,7 @@ jobs: | |||||||
|             echo "::error::The ~/AppData/Local/Coursier/Cache directory does not exist unexpectedly" |             echo "::error::The ~/AppData/Local/Coursier/Cache directory does not exist unexpectedly" | ||||||
|             exit 1 |             exit 1 | ||||||
|           fi |           fi | ||||||
|  | 
 | ||||||
|       - name: Check files to cache on ubuntu-latest |       - name: Check files to cache on ubuntu-latest | ||||||
|         if: matrix.os == 'ubuntu-latest' |         if: matrix.os == 'ubuntu-latest' | ||||||
|         run: | |         run: | | ||||||
| @ -161,6 +158,7 @@ jobs: | |||||||
|             echo "::error::The ~/.cache/coursier directory does not exist unexpectedly" |             echo "::error::The ~/.cache/coursier directory does not exist unexpectedly" | ||||||
|             exit 1 |             exit 1 | ||||||
|           fi |           fi | ||||||
|  | 
 | ||||||
|   sbt-restore: |   sbt-restore: | ||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     defaults: |     defaults: | ||||||
| @ -170,7 +168,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-22.04] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|     needs: sbt-save |     needs: sbt-save | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
| @ -184,13 +182,14 @@ jobs: | |||||||
|           cache: sbt |           cache: sbt | ||||||
| 
 | 
 | ||||||
|       - name: Confirm that ~/Library/Caches/Coursier directory has been made |       - name: Confirm that ~/Library/Caches/Coursier directory has been made | ||||||
|         if: matrix.os == 'macos-13' |         if: matrix.os == 'macos-latest' | ||||||
|         run: | |         run: | | ||||||
|           if [ ! -d ~/Library/Caches/Coursier ]; then |           if [ ! -d ~/Library/Caches/Coursier ]; then | ||||||
|             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" |             echo "::error::The ~/Library/Caches/Coursier directory does not exist unexpectedly" | ||||||
|             exit 1 |             exit 1 | ||||||
|           fi |           fi | ||||||
|           ls ~/Library/Caches/Coursier |           ls ~/Library/Caches/Coursier | ||||||
|  | 
 | ||||||
|       - name: Confirm that ~/AppData/Local/Coursier/Cache directory has been made |       - name: Confirm that ~/AppData/Local/Coursier/Cache directory has been made | ||||||
|         if: matrix.os == 'windows-latest' |         if: matrix.os == 'windows-latest' | ||||||
|         run: | |         run: | | ||||||
| @ -199,6 +198,7 @@ jobs: | |||||||
|             exit 1 |             exit 1 | ||||||
|           fi |           fi | ||||||
|           ls ~/AppData/Local/Coursier/Cache |           ls ~/AppData/Local/Coursier/Cache | ||||||
|  | 
 | ||||||
|       - name: Confirm that ~/.cache/coursier directory has been made |       - name: Confirm that ~/.cache/coursier directory has been made | ||||||
|         if: matrix.os == 'ubuntu-latest' |         if: matrix.os == 'ubuntu-latest' | ||||||
|         run: | |         run: | | ||||||
|  | |||||||
							
								
								
									
										171
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										171
									
								
								.github/workflows/e2e-versions.yml
									
									
									
									
										vendored
									
									
								
							| @ -20,7 +20,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|         distribution: [ |         distribution: [ | ||||||
|             'temurin', |             'temurin', | ||||||
|             'adopt', |             'adopt', | ||||||
| @ -30,38 +30,25 @@ jobs: | |||||||
|             'microsoft', |             'microsoft', | ||||||
|             'semeru', |             'semeru', | ||||||
|             'corretto', |             'corretto', | ||||||
|             'dragonwell', |             'dragonwell' | ||||||
|             'sapmachine', |  | ||||||
|             'jetbrains' |  | ||||||
|           ] # internally 'adopt-hotspot' is the same as 'adopt' |           ] # internally 'adopt-hotspot' is the same as 'adopt' | ||||||
|         version: ['21', '11', '17'] |         version: ['8', '11', '17'] | ||||||
|         exclude: |         exclude: | ||||||
|           - distribution: microsoft |           - distribution: microsoft | ||||||
|             version: 8 |             version: 8 | ||||||
|           - distribution: dragonwell |           - distribution: dragonwell | ||||||
|             os: macos-13 |             os: macos-latest | ||||||
|         include: |         include: | ||||||
|           - distribution: oracle |           - distribution: oracle | ||||||
|             os: macos-13 |             os: macos-latest | ||||||
|             version: 17 |             version: 17 | ||||||
|           - distribution: oracle |           - distribution: oracle | ||||||
|             os: windows-latest |             os: windows-latest | ||||||
|             version: 21 |             version: 20 | ||||||
|           - distribution: oracle |           - distribution: oracle | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|             version: 21 |             version: 20 | ||||||
|           - 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' |  | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -71,8 +58,6 @@ jobs: | |||||||
|         with: |         with: | ||||||
|           java-version: ${{ matrix.version }} |           java-version: ${{ matrix.version }} | ||||||
|           distribution: ${{ matrix.distribution }} |           distribution: ${{ matrix.distribution }} | ||||||
|         env: |  | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |  | ||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
| @ -88,30 +73,18 @@ jobs: | |||||||
|         distribution: ['temurin', 'zulu', 'liberica'] |         distribution: ['temurin', 'zulu', 'liberica'] | ||||||
|         version: |         version: | ||||||
|           - '11.0' |           - '11.0' | ||||||
|           - '21.0' |           - '8.0.302' | ||||||
|           - '17.0.7+7' |           - '17.0.7+7' | ||||||
|         include: |         include: | ||||||
|           - distribution: oracle |           - distribution: oracle | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|             version: '21.0.4' |             version: '20.0.1' | ||||||
|           - distribution: graalvm |  | ||||||
|             os: ubuntu-latest |  | ||||||
|             version: '21.0.4' |  | ||||||
|           - distribution: dragonwell |           - distribution: dragonwell | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|             version: '11.0' |             version: '11.0' | ||||||
|           - distribution: dragonwell |           - distribution: dragonwell | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|             version: '11.0.13+9' |             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: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -124,8 +97,6 @@ jobs: | |||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
|         env: |  | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |  | ||||||
| 
 | 
 | ||||||
|   setup-java-check-latest: |   setup-java-check-latest: | ||||||
|     name: ${{ matrix.distribution }} ${{ matrix.version }} - check-latest flag - ${{ matrix.os }} |     name: ${{ matrix.distribution }} ${{ matrix.version }} - check-latest flag - ${{ matrix.os }} | ||||||
| @ -135,15 +106,7 @@ jobs: | |||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-latest, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|         distribution: |         distribution: ['temurin', 'zulu', 'liberica', 'dragonwell'] | ||||||
|           [ |  | ||||||
|             'temurin', |  | ||||||
|             'zulu', |  | ||||||
|             'liberica', |  | ||||||
|             'dragonwell', |  | ||||||
|             'sapmachine', |  | ||||||
|             'jetbrains' |  | ||||||
|           ] |  | ||||||
|         exclude: |         exclude: | ||||||
|           - distribution: dragonwell |           - distribution: dragonwell | ||||||
|             os: macos-latest |             os: macos-latest | ||||||
| @ -157,8 +120,6 @@ jobs: | |||||||
|           distribution: ${{ matrix.distribution }} |           distribution: ${{ matrix.distribution }} | ||||||
|           java-version: 11 |           java-version: 11 | ||||||
|           check-latest: true |           check-latest: true | ||||||
|         env: |  | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |  | ||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
| @ -171,15 +132,7 @@ jobs: | |||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-latest, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|         distribution: |         distribution: ['temurin', 'zulu', 'liberica', 'dragonwell'] | ||||||
|           [ |  | ||||||
|             'temurin', |  | ||||||
|             'zulu', |  | ||||||
|             'liberica', |  | ||||||
|             'dragonwell', |  | ||||||
|             'sapmachine', |  | ||||||
|             'jetbrains' |  | ||||||
|           ] |  | ||||||
|         exclude: |         exclude: | ||||||
|           - distribution: dragonwell |           - distribution: dragonwell | ||||||
|             os: macos-latest |             os: macos-latest | ||||||
| @ -194,8 +147,6 @@ jobs: | |||||||
|           java-version: | |           java-version: | | ||||||
|             11 |             11 | ||||||
|             17 |             17 | ||||||
|         env: |  | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |  | ||||||
|       - name: Verify Java env variables |       - name: Verify Java env variables | ||||||
|         run: | |         run: | | ||||||
|           $versionsArr = "11","17" |           $versionsArr = "11","17" | ||||||
| @ -220,7 +171,7 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|         version: ['17-ea', '15.0.0-ea.14'] |         version: ['17-ea', '15.0.0-ea.14'] | ||||||
|     steps: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
| @ -257,28 +208,6 @@ jobs: | |||||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         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: |   setup-java-custom-package-type: | ||||||
|     name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} |     name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} | ||||||
|     needs: setup-java-major-minor-versions |     needs: setup-java-major-minor-versions | ||||||
| @ -286,23 +215,22 @@ jobs: | |||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         os: [macos-13, windows-latest, ubuntu-latest] |         os: [macos-latest, windows-latest, ubuntu-latest] | ||||||
|         distribution: |         distribution: ['temurin', 'zulu', 'liberica', 'semeru'] | ||||||
|           ['temurin', 'zulu', 'liberica', 'semeru', 'sapmachine', 'jetbrains'] |  | ||||||
|         java-package: ['jre'] |         java-package: ['jre'] | ||||||
|         version: ['17.0'] |         version: ['17.0'] | ||||||
|         include: |         include: | ||||||
|           - distribution: 'zulu' |           - distribution: 'zulu' | ||||||
|             java-package: jre+fx |             java-package: jre+fx | ||||||
|             version: '21' |             version: '8' | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|           - distribution: 'zulu' |           - distribution: 'zulu' | ||||||
|             java-package: jdk+fx |             java-package: jdk+fx | ||||||
|             version: '21.0' |             version: '8.0.242' | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|           - distribution: 'liberica' |           - distribution: 'liberica' | ||||||
|             java-package: jdk+fx |             java-package: jdk+fx | ||||||
|             version: '21' |             version: '8' | ||||||
|             os: ubuntu-latest |             os: ubuntu-latest | ||||||
|           - distribution: 'liberica' |           - distribution: 'liberica' | ||||||
|             java-package: jre+fx |             java-package: jre+fx | ||||||
| @ -312,47 +240,6 @@ jobs: | |||||||
|             java-package: jre |             java-package: jre | ||||||
|             version: '8' |             version: '8' | ||||||
|             os: windows-latest |             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: |     steps: | ||||||
|       - name: Checkout |       - name: Checkout | ||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
| @ -363,8 +250,6 @@ jobs: | |||||||
|           java-version: ${{ matrix.version }} |           java-version: ${{ matrix.version }} | ||||||
|           java-package: ${{ matrix.java-package }} |           java-package: ${{ matrix.java-package }} | ||||||
|           distribution: ${{ matrix.distribution }} |           distribution: ${{ matrix.distribution }} | ||||||
|         env: |  | ||||||
|           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |  | ||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
| @ -378,7 +263,7 @@ jobs: | |||||||
|       fail-fast: false |       fail-fast: false | ||||||
|       matrix: |       matrix: | ||||||
|         # x86 is not supported on macOS |         # x86 is not supported on macOS | ||||||
|         os: [windows-latest, ubuntu-22.04] |         os: [windows-latest, ubuntu-latest] | ||||||
|         distribution: ['liberica', 'zulu', 'corretto'] |         distribution: ['liberica', 'zulu', 'corretto'] | ||||||
|         version: ['11'] |         version: ['11'] | ||||||
|     steps: |     steps: | ||||||
| @ -409,10 +294,10 @@ jobs: | |||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - name: Create .java-version file |       - name: Create .java-version file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "17" > .java-version |         run: echo "8" > .java-version | ||||||
|       - name: Create .tool-versions file |       - name: Create .tool-versions file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "java 17" > .tool-versions |         run: echo "java 8" > .tool-versions | ||||||
|       - name: setup-java |       - name: setup-java | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         id: setup-java |         id: setup-java | ||||||
| @ -466,10 +351,10 @@ jobs: | |||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - name: Create .java-version file |       - name: Create .java-version file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "17.0.10" > .java-version |         run: echo "11.0.2" > .java-version | ||||||
|       - name: Create .tool-versions file |       - name: Create .tool-versions file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "java 17.0.10" > .tool-versions |         run: echo "java 11.0.2" > .tool-versions | ||||||
|       - name: setup-java |       - name: setup-java | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         id: setup-java |         id: setup-java | ||||||
| @ -477,11 +362,11 @@ jobs: | |||||||
|           distribution: ${{ matrix.distribution }} |           distribution: ${{ matrix.distribution }} | ||||||
|           java-version-file: ${{matrix.java-version-file }} |           java-version-file: ${{matrix.java-version-file }} | ||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "17.0.10" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
| 
 | 
 | ||||||
|   setup-java-version-from-file-major-minor-patch-with-dist: |   setup-java-version-from-file-major-minor-patch-with-dist: | ||||||
|     name: ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} |     name: ${{ matrix.distribution }} version from file 'openjdk64-11.0.2' - ${{ matrix.os }} | ||||||
|     runs-on: ${{ matrix.os }} |     runs-on: ${{ matrix.os }} | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
| @ -494,10 +379,10 @@ jobs: | |||||||
|         uses: actions/checkout@v4 |         uses: actions/checkout@v4 | ||||||
|       - name: Create .java-version file |       - name: Create .java-version file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "openjdk64-17.0.10" > .java-version |         run: echo "openjdk64-11.0.2" > .java-version | ||||||
|       - name: Create .tool-versions file |       - name: Create .tool-versions file | ||||||
|         shell: bash |         shell: bash | ||||||
|         run: echo "java openjdk64-17.0.10" > .tool-versions |         run: echo "java openjdk64-11.0.2" > .tool-versions | ||||||
|       - name: setup-java |       - name: setup-java | ||||||
|         uses: ./ |         uses: ./ | ||||||
|         id: setup-java |         id: setup-java | ||||||
| @ -505,5 +390,5 @@ jobs: | |||||||
|           distribution: ${{ matrix.distribution }} |           distribution: ${{ matrix.distribution }} | ||||||
|           java-version-file: ${{matrix.java-version-file }} |           java-version-file: ${{matrix.java-version-file }} | ||||||
|       - name: Verify Java |       - name: Verify Java | ||||||
|         run: bash __tests__/verify-java.sh "17.0.10" "${{ steps.setup-java.outputs.path }}" |         run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}" | ||||||
|         shell: bash |         shell: bash | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										20
									
								
								.github/workflows/publish-immutable-actions.yml
									
									
									
									
										vendored
									
									
								
							| @ -1,20 +0,0 @@ | |||||||
| name: 'Publish Immutable Action Version' |  | ||||||
| 
 |  | ||||||
| on: |  | ||||||
|   release: |  | ||||||
|     types: [published] |  | ||||||
| 
 |  | ||||||
| jobs: |  | ||||||
|   publish: |  | ||||||
|     runs-on: ubuntu-latest |  | ||||||
|     permissions: |  | ||||||
|       contents: read |  | ||||||
|       id-token: write |  | ||||||
|       packages: write |  | ||||||
| 
 |  | ||||||
|     steps: |  | ||||||
|       - name: Checking out |  | ||||||
|         uses: actions/checkout@v4 |  | ||||||
|       - name: Publish |  | ||||||
|         id: publish |  | ||||||
|         uses: actions/publish-immutable-action@v0.0.4 |  | ||||||
| @ -23,7 +23,7 @@ jobs: | |||||||
|     steps: |     steps: | ||||||
|       - name: Update the ${{ env.TAG_NAME }} tag |       - name: Update the ${{ env.TAG_NAME }} tag | ||||||
|         id: update-major-tag |         id: update-major-tag | ||||||
|         uses: actions/publish-action@v0.3.0 |         uses: actions/publish-action@v0.2.2 | ||||||
|         with: |         with: | ||||||
|           source-tag: ${{ env.TAG_NAME }} |           source-tag: ${{ env.TAG_NAME }} | ||||||
|           slack-webhook: ${{ secrets.SLACK_WEBHOOK }} |           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.
										
									
								
							
							
								
								
									
										18
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								README.md
									
									
									
									
									
								
							| @ -91,8 +91,8 @@ steps: | |||||||
| #### Supported version syntax | #### Supported version syntax | ||||||
| The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation: | The `java-version` input supports an exact version or a version range using [SemVer](https://semver.org/) notation: | ||||||
| - major versions: `8`, `11`, `16`, `17`, `21` | - major versions: `8`, `11`, `16`, `17`, `21` | ||||||
| - more specific versions: `8.0.282+8`, `8.0.232`, `11.0`, `11.0.4`, `17.0` | - more specific versions: `17.0`, `11.0`, `11.0.4`, `8.0.232`, `8.0.282+8` | ||||||
| - early access (EA) versions: `15-ea`, `15.0.0-ea` | - early access (EA) versions: `15-ea`, `15.0.0-ea`, `15.0.0-ea.2`, `15.0.0+2-ea` | ||||||
| 
 | 
 | ||||||
| #### Supported distributions | #### Supported distributions | ||||||
| Currently, the following distributions are supported: | Currently, the following distributions are supported: | ||||||
| @ -108,9 +108,6 @@ Currently, the following distributions are supported: | |||||||
| | `semeru` | IBM Semeru Runtime Open Edition | [Link](https://developer.ibm.com/languages/java/semeru-runtimes/downloads/) | [Link](https://openjdk.java.net/legal/gplv2+ce.html) | | | `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) | | `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/) | | `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. | **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) |   - [Amazon Corretto](docs/advanced-usage.md#Amazon-Corretto) | ||||||
|   - [Oracle](docs/advanced-usage.md#Oracle) |   - [Oracle](docs/advanced-usage.md#Oracle) | ||||||
|   - [Alibaba Dragonwell](docs/advanced-usage.md#Alibaba-Dragonwell) |   - [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 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 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) | - [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) | - [Modifying Maven Toolchains](docs/advanced-usage.md#Modifying-Maven-Toolchains) | ||||||
| - [Java Version File](docs/advanced-usage.md#Java-version-file) | - [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 | ## License | ||||||
| 
 | 
 | ||||||
| The scripts and documentation in this project are released under the [MIT License](LICENSE). | The scripts and documentation in this project are released under the [MIT License](LICENSE). | ||||||
|  | |||||||
| @ -481,54 +481,6 @@ | |||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     }, |  | ||||||
|     "11.0.23.20.9" : { |  | ||||||
|       "alpine-linux" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Extended" : { |  | ||||||
|             "sha256" : "9d61fefb4f1a8368f8e7eec17893934b438b67f360cb8b7ef727ab459695d14e", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "linux" : { |  | ||||||
|         "aarch64" : { |  | ||||||
|           "Extended" : { |  | ||||||
|             "sha256" : "2f399231644fe1e3f1b4b5298e85f21f4863017767e9e5afb00ee46e2d7780d9", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "x64" : { |  | ||||||
|           "Extended" : { |  | ||||||
|             "sha256" : "662dfdc584e21bcfb7ed87942b5bb4e71a7b7467d4c82211a3615d0834d1c833", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "riscv" : { |  | ||||||
|           "Extended" : { |  | ||||||
|             "sha256" : "f3488461cbfd95e6c08ad2dc01c51950b9c629c46eea6305002311b263ce2ad9", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "windows" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Extended" : { |  | ||||||
|             "sha256" : "ba8dba2b7f2279f87220f396afcce49cb26482705deb5144c6e22a90ba443f9d", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|   }, |   }, | ||||||
|   "17":{ |   "17":{ | ||||||
| @ -1182,143 +1134,5 @@ | |||||||
|         } |         } | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   }, |  | ||||||
|   "21" : { |  | ||||||
|     "21.0.3.0.3.9" : { |  | ||||||
|       "alpine-linux" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "c3c5d193a0a6aee8757fd3036dc13b7921a4306b089bf8759ba6b822d1e8416e", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_alpine-linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_alpine-linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "linux" : { |  | ||||||
|         "aarch64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "3cc309627ad2a9515ca50cdeff9eff118f14326b37eaa536b758570082aeb242", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "1c0508db048c0b50e2d61b2cc5a5390d3b9bcafec6e185d2cb53dde1fc530203", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "riscv" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "e374698f8ee9c66b8d4a59ba50d0511aa654b55514732bc787e29c9afaddf846", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "windows" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "0b75fc888cb2a9c7e050132fd020c30cbe65f3179feb36812a7c6be3c76ad277", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_windows.zip", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_x64_windows.zip" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "21.0.2.0.2.13" : { |  | ||||||
|       "alpine-linux" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "71a391987fdd569385c0afe1aaf16dbd48d127e14306793ef9ac0e0986b9632c", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_alpine-linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_alpine-linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "linux" : { |  | ||||||
|         "aarch64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "307321a399c206f8d56e0ce5c65921f9448ec9882dfb81ffc5e841b8fb5f8ed8", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_aarch64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_aarch64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "24198f0d436bb913b152181e07205647b05da01c196f5c10a96e9a998b10381a", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "riscv" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "970a49103b8971952e46c81be844bc3776caca04da8456337f12e3a7d2a18011", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_riscv64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_riscv64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "windows" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "b77de54be5ef1595fc568f6f18fbd4b61d64d99a0c9c5ef78a84018b4f82032b", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_windows.zip", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.2.0.2%2B13_jdk-21.0.2-ga/Alibaba_Dragonwell_Standard_21.0.2.0.2.13_x64_windows.zip" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "21.0.1.0.1.12" : { |  | ||||||
|       "alpine-linux" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "b9cea58bffe555484b831ff6d7cdb277c07e86a76d32b373ec35fa21ecb5fdc9", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_alpine-linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_alpine-linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "linux" : { |  | ||||||
|         "aarch64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "d36cef494ccc1939c6b5da04133cfdbe0b03956fd04147aef46014536bc5a37b", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_aarch64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_aarch64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         }, |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "dfb8d325a98b8f577d72fd639cc54feee325eec8ebba497868184c8405a1cf41", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       }, |  | ||||||
|       "windows" : { |  | ||||||
|         "x64" : { |  | ||||||
|           "Standard" : { |  | ||||||
|             "sha256" : "b8ab99ed9060341f75edb8cc238830fbfd608e51536e43f34bd45c3e968ebab5", |  | ||||||
|             "name" : "Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_windows.zip", |  | ||||||
|             "content_type" : "application/zip", |  | ||||||
|             "download_url" : "https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_windows.zip" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -1,1454 +0,0 @@ | |||||||
| [ |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b465.3", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 465.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b465.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b458.1", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 458.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b458.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b453.2", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 453.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b453.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.11b1207.24", |  | ||||||
|       "semver": "17.0.11", |  | ||||||
|       "build": 1207.24, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.24.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.11b1207.23", |  | ||||||
|       "semver": "17.0.11", |  | ||||||
|       "build": 1207.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b446.1", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 446.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b446.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.14", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b829.27", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 829.27, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.27.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.23", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.12", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.21", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.21, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.21.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.6", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b375.1", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 375.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b375.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.1", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1186.1", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1186.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1186.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1171.14", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1171.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1171.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b829.26", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 829.26, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.26.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b346.3", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 346.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b346.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1000.48", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1000.48, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1000.48.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b341.4", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 341.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b341.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.17", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.17, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.17.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1166.2", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1166.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1166.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1162.7", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1162.7, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1162.7.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.11", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.9", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.7", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.7, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.7.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1000.47", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1000.47, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.47.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1000.46", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1000.46, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.46.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.3", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1080.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1080.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1080.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1072.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1072.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1072.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1070.2", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1070.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1070.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1063.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1063.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1063.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1000.32", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1000.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1000.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1059.3", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1059.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1059.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8b1000.22", |  | ||||||
|       "semver": "17.0.8", |  | ||||||
|       "build": 1000.22, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.22.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8b1000.8", |  | ||||||
|       "semver": "17.0.8", |  | ||||||
|       "build": 1000.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.6", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.5", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.5, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.5.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b985.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 985.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b985.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b979.4", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 979.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b979.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b829.16", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 829.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b966.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 966.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b966.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b964.1", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 964.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b964.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b829.14", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 829.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b953.1", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 953.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b953.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.9", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b469.82", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 469.82, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b469.82.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.5", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.5, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.5.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b653.34", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 653.34, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.34.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.4", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b653.32", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 653.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b802.4", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 802.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b802.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 802.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b785.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 785.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b785.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b779.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 779.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b779.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b762.1", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 762.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b762.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.25", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b759.1", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 759.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b759.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.23", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.14", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b469.71", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 469.71, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.71.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_16b2043.64", |  | ||||||
|       "semver": "11.0.16", |  | ||||||
|       "build": 2043.64, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_16-linux-x64-b2043.64.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.6", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b469.67", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 469.67, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.67.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b653.1", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 653.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b653.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b646.8", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 646.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b646.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b629.2", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 629.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b629.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b617.2", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 617.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b617.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b469.62", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 469.62, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b469.62.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b597.1", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 597.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b597.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4b469.53", |  | ||||||
|       "semver": "17.0.4", |  | ||||||
|       "build": 469.53, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.53.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4b469.44", |  | ||||||
|       "semver": "17.0.4", |  | ||||||
|       "build": 469.44, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.44.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.3b469.37", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.37, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.37.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.32", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.30", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.19", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.19, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.19.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b498.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 498.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b498.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.16", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.12", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b463.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 463.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b463.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b423.10", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 423.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b423.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_15b2043.56", |  | ||||||
|       "semver": "11.0.15", |  | ||||||
|       "build": 2043.56, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_15-linux-x64-b2043.56.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.45", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.45, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_14_1-linux-x64-b2043.45.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.2b396.4", |  | ||||||
|       "semver": "17.0.2", |  | ||||||
|       "build": 396.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.2-linux-x64-b396.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.25", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.22", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.22, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.22.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.17", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.17, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.17.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.14", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.11", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b2043.2", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 2043.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b2043.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b1751.46", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 1751.46, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b1751.46.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b1993.2", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 1993.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1993.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_2b315.1", |  | ||||||
|       "semver": "17.0.2", |  | ||||||
|       "build": 315.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_2-linux-x64-b315.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b1982.1", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 1982.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1982.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1890.3", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1890.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1890.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.25", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.24", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.24, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.24.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.21", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.21, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.21.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_1b164.8", |  | ||||||
|       "semver": "17.0.1", |  | ||||||
|       "build": 164.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.19", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.19, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.19.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_13-b1504.49", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1504.49, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1504.49.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_1b164.4", |  | ||||||
|       "semver": "17.0.1", |  | ||||||
|       "build": 164.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.16", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1751.11", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1751.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1751.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1729.1", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1729.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1729.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1715.4", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1715.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1715.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1692.9", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1692.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1692.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.37", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.37, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.37.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1665.1", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1665.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1665.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.28", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.28, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.28.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.27", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.27, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.27.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.16", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.13", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.13, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.13.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.12", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1542.1", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1542.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1542.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.8", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "11_0_11b1536.2", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1536.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1536.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b465.3", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 465.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b465.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b458.1", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 458.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b458.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b453.2", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 453.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b453.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.11b1207.24", |  | ||||||
|       "semver": "17.0.11", |  | ||||||
|       "build": 1207.24, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.24.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.11b1207.23", |  | ||||||
|       "semver": "17.0.11", |  | ||||||
|       "build": 1207.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.11-linux-x64-b1207.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.3b446.1", |  | ||||||
|       "semver": "21.0.3", |  | ||||||
|       "build": 446.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.3-linux-x64-b446.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.14", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b829.27", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 829.27, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.27.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.23", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.12", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.21", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.21, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.21.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.6", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b375.1", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 375.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b375.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1207.1", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1207.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1207.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1186.1", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1186.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1186.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1171.14", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1171.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1171.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b829.26", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 829.26, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b829.26.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b346.3", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 346.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b346.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1000.48", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1000.48, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1000.48.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-21.0.2b341.4", |  | ||||||
|       "semver": "21.0.2", |  | ||||||
|       "build": 341.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-21.0.2-linux-x64-b341.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.10b1087.17", |  | ||||||
|       "semver": "17.0.10", |  | ||||||
|       "build": 1087.17, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.10-linux-x64-b1087.17.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1166.2", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1166.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1166.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1162.7", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1162.7, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1162.7.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.11", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.9", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.7", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.7, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.7.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1000.47", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1000.47, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.47.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1000.46", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1000.46, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1000.46.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.9b1087.3", |  | ||||||
|       "semver": "17.0.9", |  | ||||||
|       "build": 1087.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.9-linux-x64-b1087.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1080.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1080.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1080.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1072.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1072.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1072.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1070.2", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1070.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1070.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1063.1", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1063.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1063.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1000.32", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1000.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1000.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8.1b1059.3", |  | ||||||
|       "semver": "17.0.8.1", |  | ||||||
|       "build": 1059.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8.1-linux-x64-b1059.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8b1000.22", |  | ||||||
|       "semver": "17.0.8", |  | ||||||
|       "build": 1000.22, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.22.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.8b1000.8", |  | ||||||
|       "semver": "17.0.8", |  | ||||||
|       "build": 1000.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.8-linux-x64-b1000.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.6", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.5", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.5, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.5.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b1000.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 1000.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b1000.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b985.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 985.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b985.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b979.4", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 979.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b979.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b829.16", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 829.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b966.2", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 966.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b966.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b964.1", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 964.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b964.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b829.14", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 829.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b829.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.7b953.1", |  | ||||||
|       "semver": "17.0.7", |  | ||||||
|       "build": 953.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.7-linux-x64-b953.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.9", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b469.82", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 469.82, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b469.82.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.5", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.5, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.5.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b653.34", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 653.34, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.34.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.4", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b829.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 829.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b829.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b653.32", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 653.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b653.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b802.4", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 802.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b802.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 802.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b802.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b785.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 785.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b785.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.6b779.1", |  | ||||||
|       "semver": "17.0.6", |  | ||||||
|       "build": 779.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.6-linux-x64-b779.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b762.1", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 762.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b762.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.25", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b759.1", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 759.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b759.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.23", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.23, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.23.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.14", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b469.71", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 469.71, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.71.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_16b2043.64", |  | ||||||
|       "semver": "11.0.16", |  | ||||||
|       "build": 2043.64, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_16-linux-x64-b2043.64.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b653.6", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 653.6, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b653.6.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.5b469.67", |  | ||||||
|       "semver": "17.0.5", |  | ||||||
|       "build": 469.67, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.5-linux-x64-b469.67.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b653.1", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 653.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b653.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b646.8", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 646.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b646.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b629.2", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 629.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b629.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b617.2", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 617.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b617.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b469.62", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 469.62, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b469.62.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4.1b597.1", |  | ||||||
|       "semver": "17.0.4.1", |  | ||||||
|       "build": 597.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4.1-linux-x64-b597.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4b469.53", |  | ||||||
|       "semver": "17.0.4", |  | ||||||
|       "build": 469.53, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.53.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.4b469.44", |  | ||||||
|       "semver": "17.0.4", |  | ||||||
|       "build": 469.44, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.4-linux-x64-b469.44.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr-release-17.0.3b469.37", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.37, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.37.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.32", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.32, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.32.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.30", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.19", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.19, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.19.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b498.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 498.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b498.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.16", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.12", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b469.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 469.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b469.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b463.3", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 463.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b463.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.3b423.10", |  | ||||||
|       "semver": "17.0.3", |  | ||||||
|       "build": 423.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.3-linux-x64-b423.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_15b2043.56", |  | ||||||
|       "semver": "11.0.15", |  | ||||||
|       "build": 2043.56, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_15-linux-x64-b2043.56.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.45", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.45, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_nomod-11_0_14_1-linux-x64-b2043.45.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17.0.2b396.4", |  | ||||||
|       "semver": "17.0.2", |  | ||||||
|       "build": 396.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17.0.2-linux-x64-b396.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.25", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.22", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.22, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.22.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.17", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.17, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.17.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.14", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.14, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.14.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b2043.11", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 2043.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b2043.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b2043.2", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 2043.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b2043.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14_1b1751.46", |  | ||||||
|       "semver": "11.0.14.1", |  | ||||||
|       "build": 1751.46, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14_1-linux-x64-b1751.46.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b1993.2", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 1993.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1993.2.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_2b315.1", |  | ||||||
|       "semver": "17.0.2", |  | ||||||
|       "build": 315.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_2-linux-x64-b315.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_14b1982.1", |  | ||||||
|       "semver": "11.0.14", |  | ||||||
|       "build": 1982.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_14-linux-x64-b1982.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1890.3", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1890.3, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1890.3.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.25", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.25, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.25.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.24", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.24, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.24.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.21", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.21, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.21.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_1b164.8", |  | ||||||
|       "semver": "17.0.1", |  | ||||||
|       "build": 164.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.19", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.19, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.19.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_13-b1504.49", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1504.49, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1504.49.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr17_0_1b164.4", |  | ||||||
|       "semver": "17.0.1", |  | ||||||
|       "build": 164.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-17_0_1-linux-x64-b164.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_13b1751.16", |  | ||||||
|       "semver": "11.0.13", |  | ||||||
|       "build": 1751.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_13-linux-x64-b1751.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1751.11", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1751.11, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1751.11.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1729.1", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1729.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1729.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1715.4", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1715.4, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1715.4.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1692.9", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1692.9, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1692.9.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.37", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.37, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.37.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jbr11_0_12b1665.1", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1665.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1665.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.28", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.28, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.28.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_12-b1504.27", |  | ||||||
|       "semver": "11.0.12", |  | ||||||
|       "build": 1504.27, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_12-linux-x64-b1504.27.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.16", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.16, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.16.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.13", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.13, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.13.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.12", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.12, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.12.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1542.1", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1542.1, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1542.1.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "jb11_0_11-b1504.8", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1504.8, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1504.8.tar.gz" |  | ||||||
|     }, |  | ||||||
|     { |  | ||||||
|       "tag_name": "11_0_11b1536.2", |  | ||||||
|       "semver": "11.0.11", |  | ||||||
|       "build": 1536.2, |  | ||||||
|       "url": "https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk-11_0_11-linux-x64-b1536.2.tar.gz" |  | ||||||
|     } |  | ||||||
|   ] |  | ||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -41,16 +41,15 @@ describe('getAvailableVersions', () => { | |||||||
|   describe('getAvailableVersions', () => { |   describe('getAvailableVersions', () => { | ||||||
|     it.each([ |     it.each([ | ||||||
|       ['8', 'x86', 'linux', 0], |       ['8', 'x86', 'linux', 0], | ||||||
|       ['8', 'aarch64', 'linux', 28], |       ['8', 'aarch64', 'linux', 24], | ||||||
|       ['8.6.6', 'x64', 'linux', 31], |       ['8.6.6', 'x64', 'linux', 27], | ||||||
|       ['8', 'x86', 'anolis', 0], |       ['8', 'x86', 'anolis', 0], | ||||||
|       ['8', 'x86', 'windows', 0], |       ['8', 'x86', 'windows', 0], | ||||||
|       ['8', 'x86', 'mac', 0], |       ['8', 'x86', 'mac', 0], | ||||||
|       ['11', 'x64', 'linux', 31], |       ['11', 'x64', 'linux', 27], | ||||||
|       ['11', 'aarch64', 'linux', 28], |       ['11', 'aarch64', 'linux', 24], | ||||||
|       ['17', 'riscv', 'linux', 3], |       ['17', 'riscv', 'linux', 0], | ||||||
|       ['16.0.1', 'x64', 'linux', 31], |       ['16.0.1', 'x64', 'linux', 27] | ||||||
|       ['21', 'x64', 'linux', 31] |  | ||||||
|     ])( |     ])( | ||||||
|       'should get right number of available versions from JSON', |       'should get right number of available versions from JSON', | ||||||
|       async ( |       async ( | ||||||
| @ -104,31 +103,25 @@ describe('getAvailableVersions', () => { | |||||||
|         '11', |         '11', | ||||||
|         'linux', |         'linux', | ||||||
|         'x64', |         'x64', | ||||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_linux.tar.gz' |         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_linux.tar.gz' | ||||||
|       ], |       ], | ||||||
|       [ |       [ | ||||||
|         '11', |         '11', | ||||||
|         'linux', |         'linux', | ||||||
|         'aarch64', |         'aarch64', | ||||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_aarch64_linux.tar.gz' |         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_aarch64_linux.tar.gz' | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '11', |  | ||||||
|         'linux', |  | ||||||
|         'riscv', |  | ||||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_riscv64_linux.tar.gz' |  | ||||||
|       ], |       ], | ||||||
|       [ |       [ | ||||||
|         '11', |         '11', | ||||||
|         'windows', |         'windows', | ||||||
|         'x64', |         'x64', | ||||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_windows.zip' |         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_windows.zip' | ||||||
|       ], |       ], | ||||||
|       [ |       [ | ||||||
|         '11', |         '11', | ||||||
|         'alpine-linux', |         'alpine-linux', | ||||||
|         'x64', |         'x64', | ||||||
|         'https://github.com/dragonwell-project/dragonwell11/releases/download/dragonwell-extended-11.0.23.20_jdk-11.0.23-ga/Alibaba_Dragonwell_Extended_11.0.23.20.9_x64_alpine-linux.tar.gz' |         'https://github.com/alibaba/dragonwell11/releases/download/dragonwell-extended-11.0.17.13_jdk-11.0.17-ga/Alibaba_Dragonwell_Extended_11.0.17.13.8_x64_alpine-linux.tar.gz' | ||||||
|       ], |       ], | ||||||
|       [ |       [ | ||||||
|         '11.0.17', |         '11.0.17', | ||||||
| @ -165,30 +158,6 @@ describe('getAvailableVersions', () => { | |||||||
|         'linux', |         'linux', | ||||||
|         'x64', |         'x64', | ||||||
|         'https://github.com/alibaba/dragonwell17/releases/download/dragonwell-standard-17.0.4.0.4%2B8_jdk-17.0.4-ga/Alibaba_Dragonwell_Standard_17.0.4.0.4%2B8_x64_linux.tar.gz' |         'https://github.com/alibaba/dragonwell17/releases/download/dragonwell-standard-17.0.4.0.4%2B8_jdk-17.0.4-ga/Alibaba_Dragonwell_Standard_17.0.4.0.4%2B8_x64_linux.tar.gz' | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17.0.4+8', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'https://github.com/alibaba/dragonwell17/releases/download/dragonwell-standard-17.0.4.0.4%2B8_jdk-17.0.4-ga/Alibaba_Dragonwell_Standard_17.0.4.0.4%2B8_x64_linux.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '21', |  | ||||||
|         'linux', |  | ||||||
|         'aarch64', |  | ||||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_aarch64_linux.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '21.0.3+9', |  | ||||||
|         'linux', |  | ||||||
|         'riscv', |  | ||||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.3.0.3%2B9_jdk-21.0.3-ga/Alibaba_Dragonwell_Standard_21.0.3.0.3.9_riscv64_linux.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '21.0.1+12', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'https://github.com/dragonwell-project/dragonwell21/releases/download/dragonwell-standard-21.0.1.0.1%2B12_jdk-21.0.1-ga/Alibaba_Dragonwell_Standard_21.0.1.0.1.12_x64_linux.tar.gz' |  | ||||||
|       ] |       ] | ||||||
|     ])( |     ])( | ||||||
|       'should return proper link according to the specified java-version, platform and arch', |       'should return proper link according to the specified java-version, platform and arch', | ||||||
|  | |||||||
| @ -1,152 +0,0 @@ | |||||||
| import {GraalVMDistribution} from '../../src/distributions/graalvm/installer'; |  | ||||||
| import os from 'os'; |  | ||||||
| import * as core from '@actions/core'; |  | ||||||
| import {getDownloadArchiveExtension} from '../../src/util'; |  | ||||||
| import {HttpClient} from '@actions/http-client'; |  | ||||||
| 
 |  | ||||||
| describe('findPackageForDownload', () => { |  | ||||||
|   let distribution: GraalVMDistribution; |  | ||||||
|   let spyDebug: jest.SpyInstance; |  | ||||||
|   let spyHttpClient: jest.SpyInstance; |  | ||||||
| 
 |  | ||||||
|   beforeEach(() => { |  | ||||||
|     distribution = new GraalVMDistribution({ |  | ||||||
|       version: '', |  | ||||||
|       architecture: 'x64', |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     spyDebug = jest.spyOn(core, 'debug'); |  | ||||||
|     spyDebug.mockImplementation(() => {}); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it.each([ |  | ||||||
|     [ |  | ||||||
|       '21', |  | ||||||
|       '21', |  | ||||||
|       'https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' |  | ||||||
|     ], |  | ||||||
|     [ |  | ||||||
|       '21.0.4', |  | ||||||
|       '21.0.4', |  | ||||||
|       'https://download.oracle.com/graalvm/21/archive/graalvm-jdk-21.0.4_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' |  | ||||||
|     ], |  | ||||||
|     [ |  | ||||||
|       '17', |  | ||||||
|       '17', |  | ||||||
|       'https://download.oracle.com/graalvm/17/latest/graalvm-jdk-17_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' |  | ||||||
|     ], |  | ||||||
|     [ |  | ||||||
|       '17.0.12', |  | ||||||
|       '17.0.12', |  | ||||||
|       'https://download.oracle.com/graalvm/17/archive/graalvm-jdk-17.0.12_{{OS_TYPE}}-x64_bin.{{ARCHIVE_TYPE}}' |  | ||||||
|     ] |  | ||||||
|   ])('version is %s -> %s', async (input, expectedVersion, expectedUrl) => { |  | ||||||
|     /* Needed only for this particular test because /latest/ urls tend to change */ |  | ||||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'head'); |  | ||||||
|     spyHttpClient.mockReturnValue( |  | ||||||
|       Promise.resolve({ |  | ||||||
|         message: { |  | ||||||
|           statusCode: 200 |  | ||||||
|         } |  | ||||||
|       }) |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     const result = await distribution['findPackageForDownload'](input); |  | ||||||
| 
 |  | ||||||
|     jest.restoreAllMocks(); |  | ||||||
| 
 |  | ||||||
|     expect(result.version).toBe(expectedVersion); |  | ||||||
|     const osType = distribution.getPlatform(); |  | ||||||
|     const archiveType = getDownloadArchiveExtension(); |  | ||||||
|     const url = expectedUrl |  | ||||||
|       .replace('{{OS_TYPE}}', osType) |  | ||||||
|       .replace('{{ARCHIVE_TYPE}}', archiveType); |  | ||||||
|     expect(result.url).toBe(url); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it.each([ |  | ||||||
|     [ |  | ||||||
|       '24-ea', |  | ||||||
|       /^https:\/\/github\.com\/graalvm\/oracle-graalvm-ea-builds\/releases\/download\/jdk-24\.0\.0-ea\./ |  | ||||||
|     ] |  | ||||||
|   ])('version is %s -> %s', async (version, expectedUrlPrefix) => { |  | ||||||
|     /* Needed only for this particular test because /latest/ urls tend to change */ |  | ||||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'head'); |  | ||||||
|     spyHttpClient.mockReturnValue( |  | ||||||
|       Promise.resolve({ |  | ||||||
|         message: { |  | ||||||
|           statusCode: 200 |  | ||||||
|         } |  | ||||||
|       }) |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     const eaDistro = new GraalVMDistribution({ |  | ||||||
|       version, |  | ||||||
|       architecture: '', // to get default value
 |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     const versionWithoutEA = version.split('-')[0]; |  | ||||||
|     const result = await eaDistro['findPackageForDownload'](versionWithoutEA); |  | ||||||
| 
 |  | ||||||
|     jest.restoreAllMocks(); |  | ||||||
| 
 |  | ||||||
|     expect(result.url).toEqual(expect.stringMatching(expectedUrlPrefix)); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it.each([ |  | ||||||
|     ['amd64', 'x64'], |  | ||||||
|     ['arm64', 'aarch64'] |  | ||||||
|   ])( |  | ||||||
|     'defaults to os.arch(): %s mapped to distro arch: %s', |  | ||||||
|     async (osArch: string, distroArch: string) => { |  | ||||||
|       jest.spyOn(os, 'arch').mockReturnValue(osArch); |  | ||||||
|       jest.spyOn(os, 'platform').mockReturnValue('linux'); |  | ||||||
| 
 |  | ||||||
|       const version = '21'; |  | ||||||
|       const distro = new GraalVMDistribution({ |  | ||||||
|         version, |  | ||||||
|         architecture: '', // to get default value
 |  | ||||||
|         packageType: 'jdk', |  | ||||||
|         checkLatest: false |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|       const osType = distribution.getPlatform(); |  | ||||||
|       if (osType === 'windows' && distroArch == 'aarch64') { |  | ||||||
|         return; // skip, aarch64 is not available for Windows
 |  | ||||||
|       } |  | ||||||
|       const archiveType = getDownloadArchiveExtension(); |  | ||||||
|       const result = await distro['findPackageForDownload'](version); |  | ||||||
|       const expectedUrl = `https://download.oracle.com/graalvm/21/latest/graalvm-jdk-21_${osType}-${distroArch}_bin.${archiveType}`; |  | ||||||
| 
 |  | ||||||
|       expect(result.url).toBe(expectedUrl); |  | ||||||
|     } |  | ||||||
|   ); |  | ||||||
| 
 |  | ||||||
|   it('should throw an error', async () => { |  | ||||||
|     await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( |  | ||||||
|       /GraalVM is only supported for JDK 17 and later/ |  | ||||||
|     ); |  | ||||||
|     await expect(distribution['findPackageForDownload']('11')).rejects.toThrow( |  | ||||||
|       /GraalVM is only supported for JDK 17 and later/ |  | ||||||
|     ); |  | ||||||
|     await expect(distribution['findPackageForDownload']('18')).rejects.toThrow( |  | ||||||
|       /Could not find GraalVM for SemVer */ |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     const unavailableEADistro = new GraalVMDistribution({ |  | ||||||
|       version: '17-ea', |  | ||||||
|       architecture: '', // to get default value
 |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
|     await expect( |  | ||||||
|       unavailableEADistro['findPackageForDownload']('17') |  | ||||||
|     ).rejects.toThrow( |  | ||||||
|       /No GraalVM EA build found\. Are you sure java-version: '17-ea' is correct\?/ |  | ||||||
|     ); |  | ||||||
|   }); |  | ||||||
| }); |  | ||||||
| @ -1,120 +0,0 @@ | |||||||
| import https from 'https'; |  | ||||||
| import {HttpClient} from '@actions/http-client'; |  | ||||||
| import {JetBrainsDistribution} from '../../src/distributions/jetbrains/installer'; |  | ||||||
| 
 |  | ||||||
| import manifestData from '../data/jetbrains.json'; |  | ||||||
| import os from 'os'; |  | ||||||
| 
 |  | ||||||
| describe('getAvailableVersions', () => { |  | ||||||
|   let spyHttpClient: jest.SpyInstance; |  | ||||||
| 
 |  | ||||||
|   beforeEach(() => { |  | ||||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); |  | ||||||
|     spyHttpClient.mockReturnValue({ |  | ||||||
|       statusCode: 200, |  | ||||||
|       headers: {}, |  | ||||||
|       result: [] |  | ||||||
|     }); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   afterEach(() => { |  | ||||||
|     jest.resetAllMocks(); |  | ||||||
|     jest.clearAllMocks(); |  | ||||||
|     jest.restoreAllMocks(); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it('load available versions', async () => { |  | ||||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); |  | ||||||
|     spyHttpClient.mockReturnValueOnce({ |  | ||||||
|       statusCode: 200, |  | ||||||
|       headers: {}, |  | ||||||
|       result: manifestData as any |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     const distribution = new JetBrainsDistribution({ |  | ||||||
|       version: '17', |  | ||||||
|       architecture: 'x64', |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
|     const availableVersions = await distribution['getAvailableVersions'](); |  | ||||||
|     expect(availableVersions).not.toBeNull(); |  | ||||||
| 
 |  | ||||||
|     const length = |  | ||||||
|       os.platform() === 'win32' |  | ||||||
|         ? manifestData.length - 1 |  | ||||||
|         : manifestData.length + 1; |  | ||||||
|     expect(availableVersions.length).toBe(length); |  | ||||||
|   }, 10_000); |  | ||||||
| }); |  | ||||||
| 
 |  | ||||||
| describe('findPackageForDownload', () => { |  | ||||||
|   it.each([ |  | ||||||
|     ['17', '17.0.11+1207.24'], |  | ||||||
|     ['11.0', '11.0.16+2043.64'], |  | ||||||
|     ['11.0.11', '11.0.11+1542.1'], |  | ||||||
|     ['21.0.2', '21.0.2+375.1'], |  | ||||||
|     ['21', '21.0.3+465.3'], |  | ||||||
|     ['x', '21.0.3+465.3'] |  | ||||||
|   ])('version is resolved correctly %s -> %s', async (input, expected) => { |  | ||||||
|     const distribution = new JetBrainsDistribution({ |  | ||||||
|       version: input, |  | ||||||
|       architecture: 'x64', |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
|     distribution['getAvailableVersions'] = async () => manifestData as any; |  | ||||||
|     const resolvedVersion = await distribution['findPackageForDownload'](input); |  | ||||||
|     expect(resolvedVersion.version).toBe(expected); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it.each(['17', '11.0', '11.0.11', '21.0.2', '21'])( |  | ||||||
|     'version %s can be downloaded', |  | ||||||
|     async input => { |  | ||||||
|       const distribution = new JetBrainsDistribution({ |  | ||||||
|         version: input, |  | ||||||
|         architecture: 'x64', |  | ||||||
|         packageType: 'jdk', |  | ||||||
|         checkLatest: false |  | ||||||
|       }); |  | ||||||
|       distribution['getAvailableVersions'] = async () => manifestData as any; |  | ||||||
|       const resolvedVersion = await distribution['findPackageForDownload']( |  | ||||||
|         input |  | ||||||
|       ); |  | ||||||
|       const url = resolvedVersion.url; |  | ||||||
|       const options = {method: 'HEAD'}; |  | ||||||
| 
 |  | ||||||
|       https.request(url, options, res => { |  | ||||||
|         // JetBrains uses 403 for inexistent packages
 |  | ||||||
|         expect(res.statusCode).not.toBe(403); |  | ||||||
|         res.resume(); |  | ||||||
|       }); |  | ||||||
|     } |  | ||||||
|   ); |  | ||||||
| 
 |  | ||||||
|   it('version is not found', async () => { |  | ||||||
|     const distribution = new JetBrainsDistribution({ |  | ||||||
|       version: '8.0.452', |  | ||||||
|       architecture: 'x64', |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
|     distribution['getAvailableVersions'] = async () => manifestData as any; |  | ||||||
|     await expect(distribution['findPackageForDownload']('8.x')).rejects.toThrow( |  | ||||||
|       /Could not find satisfied version for SemVer */ |  | ||||||
|     ); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   it('version list is empty', async () => { |  | ||||||
|     const distribution = new JetBrainsDistribution({ |  | ||||||
|       version: '8', |  | ||||||
|       architecture: 'x64', |  | ||||||
|       packageType: 'jdk', |  | ||||||
|       checkLatest: false |  | ||||||
|     }); |  | ||||||
|     distribution['getAvailableVersions'] = async () => []; |  | ||||||
|     await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( |  | ||||||
|       /Could not find satisfied version for SemVer */ |  | ||||||
|     ); |  | ||||||
|   }); |  | ||||||
| }); |  | ||||||
| @ -115,8 +115,7 @@ describe('findPackageForDownload', () => { | |||||||
|       const expectedUrl = `https://download.oracle.com/java/18/archive/jdk-18_${osType}-${distroArch}_bin.${archiveType}`; |       const expectedUrl = `https://download.oracle.com/java/18/archive/jdk-18_${osType}-${distroArch}_bin.${archiveType}`; | ||||||
| 
 | 
 | ||||||
|       expect(result.url).toBe(expectedUrl); |       expect(result.url).toBe(expectedUrl); | ||||||
|     }, |     } | ||||||
|     10000 |  | ||||||
|   ); |   ); | ||||||
| 
 | 
 | ||||||
|   it('should throw an error', async () => { |   it('should throw an error', async () => { | ||||||
|  | |||||||
| @ -1,294 +0,0 @@ | |||||||
| import {HttpClient} from '@actions/http-client'; |  | ||||||
| import {SapMachineDistribution} from '../../src/distributions/sapmachine/installer'; |  | ||||||
| import * as utils from '../../src/util'; |  | ||||||
| 
 |  | ||||||
| import manifestData from '../data/sapmachine.json'; |  | ||||||
| 
 |  | ||||||
| describe('getAvailableVersions', () => { |  | ||||||
|   let spyHttpClient: jest.SpyInstance; |  | ||||||
|   let spyUtilGetDownloadArchiveExtension: jest.SpyInstance; |  | ||||||
| 
 |  | ||||||
|   beforeEach(() => { |  | ||||||
|     spyHttpClient = jest.spyOn(HttpClient.prototype, 'getJson'); |  | ||||||
|     spyHttpClient.mockReturnValue({ |  | ||||||
|       statusCode: 200, |  | ||||||
|       headers: {}, |  | ||||||
|       result: manifestData |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     spyUtilGetDownloadArchiveExtension = jest.spyOn( |  | ||||||
|       utils, |  | ||||||
|       'getDownloadArchiveExtension' |  | ||||||
|     ); |  | ||||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue('tar.gz'); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   afterEach(() => { |  | ||||||
|     jest.resetAllMocks(); |  | ||||||
|     jest.clearAllMocks(); |  | ||||||
|     jest.restoreAllMocks(); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   const mockPlatform = ( |  | ||||||
|     distribution: SapMachineDistribution, |  | ||||||
|     platform: string |  | ||||||
|   ) => { |  | ||||||
|     distribution['getPlatformOption'] = () => platform; |  | ||||||
|     const mockedExtension = platform == 'windows' ? 'zip' : 'tar.gz'; |  | ||||||
|     spyUtilGetDownloadArchiveExtension.mockReturnValue(mockedExtension); |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   describe('shouldFallbackToBackupUrl', () => { |  | ||||||
|     it('should return correct release when the primary URL is not available', async () => { |  | ||||||
|       spyHttpClient.mockReturnValueOnce({ |  | ||||||
|         statusCode: 404, |  | ||||||
|         headers: {}, |  | ||||||
|         result: '' |  | ||||||
|       }); |  | ||||||
|       spyHttpClient.mockReturnValueOnce({ |  | ||||||
|         statusCode: 200, |  | ||||||
|         headers: {}, |  | ||||||
|         result: manifestData |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|       const version = '17'; |  | ||||||
|       const distribution = new SapMachineDistribution({ |  | ||||||
|         version: version, |  | ||||||
|         architecture: 'x64', |  | ||||||
|         packageType: 'jdk', |  | ||||||
|         checkLatest: false |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|       mockPlatform(distribution, 'linux'); |  | ||||||
| 
 |  | ||||||
|       const availableVersion = await distribution['findPackageForDownload']( |  | ||||||
|         version |  | ||||||
|       ); |  | ||||||
|       expect(availableVersion).not.toBeNull(); |  | ||||||
|       expect(availableVersion.url).toBe( |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64_bin.tar.gz' |  | ||||||
|       ); |  | ||||||
|     }); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   describe('getAvailableVersions', () => { |  | ||||||
|     it.each([ |  | ||||||
|       ['11', 'x64', 'linux', 71], |  | ||||||
|       ['11', 'aarch64', 'linux', 54], |  | ||||||
|       ['17', 'riscv', 'linux', 0], |  | ||||||
|       ['16.0.1', 'x64', 'linux', 71], |  | ||||||
|       ['23-ea', 'x64', 'linux', 798], |  | ||||||
|       ['23-ea', 'aarch64', 'windows', 0], |  | ||||||
|       ['23-ea', 'x64', 'windows', 750] |  | ||||||
|     ])( |  | ||||||
|       'should get right number of available versions from JSON', |  | ||||||
|       async ( |  | ||||||
|         jdkVersion: string, |  | ||||||
|         arch: string, |  | ||||||
|         platform: string, |  | ||||||
|         len: number |  | ||||||
|       ) => { |  | ||||||
|         const distribution = new SapMachineDistribution({ |  | ||||||
|           version: jdkVersion, |  | ||||||
|           architecture: arch, |  | ||||||
|           packageType: 'jdk', |  | ||||||
|           checkLatest: false |  | ||||||
|         }); |  | ||||||
|         mockPlatform(distribution, platform); |  | ||||||
| 
 |  | ||||||
|         const availableVersions = await distribution['getAvailableVersions'](); |  | ||||||
|         expect(availableVersions).not.toBeNull(); |  | ||||||
|         expect(availableVersions.length).toBe(len); |  | ||||||
|       } |  | ||||||
|     ); |  | ||||||
|   }); |  | ||||||
| 
 |  | ||||||
|   describe('findPackageForDownload', () => { |  | ||||||
|     it.each([ |  | ||||||
|       [ |  | ||||||
|         '11', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '11', |  | ||||||
|         'linux', |  | ||||||
|         'aarch64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_linux-aarch64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '11', |  | ||||||
|         'windows', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.22/sapmachine-jdk-11.0.22_windows-x64_bin.zip' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '11.0.17', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-11.0.17/sapmachine-jdk-11.0.17_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'linux', |  | ||||||
|         'aarch64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-aarch64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'windows', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_windows-x64_bin.zip' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17.0.4', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.4.1/sapmachine-jdk-17.0.4.1_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jre', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'linux', |  | ||||||
|         'aarch64', |  | ||||||
|         'jre', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_linux-aarch64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'windows', |  | ||||||
|         'x64', |  | ||||||
|         'jre', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jre-17.0.10_windows-x64_bin.zip' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17.0.4', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jre', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.4.1/sapmachine-jre-17.0.4.1_linux-x64_bin.tar.gz' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '23-ea', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-23%2B15/sapmachine-jdk-23-ea.15_linux-x64_bin.tar.gz', |  | ||||||
|         '23' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '21.0.2+2-ea', |  | ||||||
|         'linux', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-21.0.2%2B2/sapmachine-jdk-21.0.2-ea.2_linux-x64_bin.tar.gz', |  | ||||||
|         '21.0.2+2' |  | ||||||
|       ], |  | ||||||
|       [ |  | ||||||
|         '17', |  | ||||||
|         'linux-musl', |  | ||||||
|         'x64', |  | ||||||
|         'jdk', |  | ||||||
|         'https://github.com/SAP/SapMachine/releases/download/sapmachine-17.0.10/sapmachine-jdk-17.0.10_linux-x64-musl_bin.tar.gz' |  | ||||||
|       ] |  | ||||||
|     ])( |  | ||||||
|       'should return proper link according to the specified java-version, platform and arch', |  | ||||||
|       async ( |  | ||||||
|         version: string, |  | ||||||
|         platform: string, |  | ||||||
|         arch: string, |  | ||||||
|         packageType: string, |  | ||||||
|         expectedLink: string, |  | ||||||
|         normalizedVersion: string = version |  | ||||||
|       ) => { |  | ||||||
|         const distribution = new SapMachineDistribution({ |  | ||||||
|           version: version, |  | ||||||
|           architecture: arch, |  | ||||||
|           packageType: packageType, |  | ||||||
|           checkLatest: false |  | ||||||
|         }); |  | ||||||
|         mockPlatform(distribution, platform); |  | ||||||
| 
 |  | ||||||
|         const availableVersion = await distribution['findPackageForDownload']( |  | ||||||
|           normalizedVersion |  | ||||||
|         ); |  | ||||||
|         expect(availableVersion).not.toBeNull(); |  | ||||||
|         expect(availableVersion.url).toBe(expectedLink); |  | ||||||
|       } |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     it.each([ |  | ||||||
|       ['8', 'linux', 'x64'], |  | ||||||
|       ['8', 'macos', 'aarch64'], |  | ||||||
|       ['23', 'macos', 'aarch64'], |  | ||||||
|       ['17', 'linux', 'riscv'], |  | ||||||
|       ['23', 'linux', 'x64'], |  | ||||||
|       ['25-ea', 'linux', 'x64', '25'], |  | ||||||
|       ['8-ea', 'linux', 'x64', '8'], |  | ||||||
|       ['21.0.3+7', 'linux', 'x64', '21.0.3+7'], |  | ||||||
|       ['21.0.3+8-ea', 'linux', 'x64', '21.0.3+8'], |  | ||||||
|       ['17', 'linux-muse', 'aarch64'] |  | ||||||
|     ])( |  | ||||||
|       'should throw when required version of JDK can not be found in the JSON', |  | ||||||
|       async ( |  | ||||||
|         version: string, |  | ||||||
|         platform: string, |  | ||||||
|         arch: string, |  | ||||||
|         normalizedVersion: string = version |  | ||||||
|       ) => { |  | ||||||
|         const distribution = new SapMachineDistribution({ |  | ||||||
|           version: version, |  | ||||||
|           architecture: arch, |  | ||||||
|           packageType: 'jdk', |  | ||||||
|           checkLatest: false |  | ||||||
|         }); |  | ||||||
|         mockPlatform(distribution, platform); |  | ||||||
| 
 |  | ||||||
|         await expect( |  | ||||||
|           distribution['findPackageForDownload'](normalizedVersion) |  | ||||||
|         ).rejects.toThrow( |  | ||||||
|           `Couldn't find any satisfied version for the specified java-version: "${normalizedVersion}" and architecture: "${arch}".` |  | ||||||
|         ); |  | ||||||
|       } |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     it('should throw when required package type is not supported', async () => { |  | ||||||
|       const jdkVersion = '17'; |  | ||||||
|       const arch = 'x64'; |  | ||||||
|       const platform = 'linux'; |  | ||||||
|       const distribution = new SapMachineDistribution({ |  | ||||||
|         version: jdkVersion, |  | ||||||
|         architecture: arch, |  | ||||||
|         packageType: 'jdk+fx', |  | ||||||
|         checkLatest: false |  | ||||||
|       }); |  | ||||||
|       mockPlatform(distribution, platform); |  | ||||||
|       await expect( |  | ||||||
|         distribution['findPackageForDownload'](jdkVersion) |  | ||||||
|       ).rejects.toThrow( |  | ||||||
|         'SapMachine provides only the `jdk` and `jre` package type' |  | ||||||
|       ); |  | ||||||
|     }); |  | ||||||
|   }); |  | ||||||
| }); |  | ||||||
| @ -207,7 +207,7 @@ describe('findPackageForDownload', () => { | |||||||
|       }); |       }); | ||||||
|       distribution['getAvailableVersions'] = async () => []; |       distribution['getAvailableVersions'] = async () => []; | ||||||
|       await expect(distribution['findPackageForDownload']('8')).rejects.toThrow( |       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 { | import { | ||||||
|   convertVersionToSemver, |   convertVersionToSemver, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies, | ||||||
|   isCacheFeatureAvailable, |   isCacheFeatureAvailable | ||||||
|   isGhes |  | ||||||
| } from '../src/util'; | } from '../src/util'; | ||||||
| 
 | 
 | ||||||
| jest.mock('@actions/cache'); | jest.mock('@actions/cache'); | ||||||
| @ -81,41 +80,3 @@ describe('convertVersionToSemver', () => { | |||||||
|     expect(actual).toBe(expected); |     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(); |  | ||||||
|   }); |  | ||||||
| }); |  | ||||||
|  | |||||||
							
								
								
									
										10572
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10572
									
								
								dist/cleanup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										11259
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										11259
									
								
								dist/setup/index.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @ -8,9 +8,6 @@ | |||||||
|   - [Amazon Corretto](#Amazon-Corretto) |   - [Amazon Corretto](#Amazon-Corretto) | ||||||
|   - [Oracle](#Oracle) |   - [Oracle](#Oracle) | ||||||
|   - [Alibaba Dragonwell](#Alibaba-Dragonwell) |   - [Alibaba Dragonwell](#Alibaba-Dragonwell) | ||||||
|   - [SapMachine](#SapMachine) |  | ||||||
|   - [GraalVM](#GraalVM) |  | ||||||
|   - [JetBrains](#JetBrains) |  | ||||||
| - [Installing custom Java package type](#Installing-custom-Java-package-type) | - [Installing custom Java package type](#Installing-custom-Java-package-type) | ||||||
| - [Installing custom Java architecture](#Installing-custom-Java-architecture) | - [Installing custom Java architecture](#Installing-custom-Java-architecture) | ||||||
| - [Installing custom Java distribution from local file](#Installing-Java-from-local-file) | - [Installing custom Java distribution from local file](#Installing-Java-from-local-file) | ||||||
| @ -145,91 +142,6 @@ steps: | |||||||
| - run: java -cp java HelloWorldApp | - 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 | ## Installing custom Java package type | ||||||
| ```yaml | ```yaml | ||||||
| steps: | steps: | ||||||
| @ -242,6 +154,7 @@ steps: | |||||||
| - run: java -cp java HelloWorldApp | - run: java -cp java HelloWorldApp | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| ## Installing custom Java architecture | ## Installing custom Java architecture | ||||||
| 
 | 
 | ||||||
| ```yaml | ```yaml | ||||||
| @ -613,19 +526,19 @@ steps: | |||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## Java version file | ## Java version file | ||||||
|   If the `java-version-file` input is specified, the action will extract the version from the file and install it. | If the `java-version-file` input is specified, the action will extract the version from the file and install it. | ||||||
| 
 | 
 | ||||||
|   Supported files are .java-version and .tool-versions. | Supported files are .java-version and .tool-versions. | ||||||
|   In .java-version file, only the version should be specified (e.g., 17.0.7). | In .java-version file, only the version should be specified, e.g., 17.0.7. | ||||||
|   In .tool-versions file, java version should be preceded by the java keyword (e.g., java 17.0.7). | In .tool-versions file, java version should be preceded by the java keyword, e.g., java 17.0.7. | ||||||
|   The `.java-version` file recognizes all variants of the version description according to [jenv](https://github.com/jenv/jenv). Similarly, the `.tool-versions` file supports version specifications in accordance with [asdf](https://github.com/asdf-vm/asdf) standards, adhering to Semantic Versioning ([semver](https://semver.org/)). | .java-version recognizes all variants of the version description according to [jenv](https://github.com/jenv/jenv) and .tool-version recognizes all variants of the version description according to [asdf](https://github.com/asdf-vm/asdf). | ||||||
| 
 | 
 | ||||||
|   If both java-version and java-version-file inputs are provided, the java-version input will be used. | If both java-version and java-version-file inputs are provided, the java-version input will be used. | ||||||
| 
 | 
 | ||||||
| Valid entry options: | Valid entry options: | ||||||
| ``` | ``` | ||||||
| major versions: 8, 11, 16, 17, 21 | major versions: 8, 11, 16, 17, 21 | ||||||
| more specific versions: 8.0.282+8, 8.0.232, 11.0, 11.0.4, 17.0 | more specific versions: 1.8.0.2, 17.0, 11.0, 11.0.4, 8.0.232, 8.0.282+8 | ||||||
| early access (EA) versions: 15-ea, 15.0.0-ea | early access (EA) versions: 15-ea, 15.0.0-ea | ||||||
| versions with specified distribution: openjdk64-11.0.2 | versions with specified distribution: openjdk64-11.0.2 | ||||||
| ``` | ``` | ||||||
|  | |||||||
							
								
								
									
										299
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										299
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -9,18 +9,18 @@ | |||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "license": "MIT", |       "license": "MIT", | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/cache": "^4.0.0", |         "@actions/cache": "^3.2.4", | ||||||
|         "@actions/core": "^1.10.0", |         "@actions/core": "^1.10.0", | ||||||
|         "@actions/exec": "^1.0.4", |         "@actions/exec": "^1.0.4", | ||||||
|         "@actions/glob": "^0.4.0", |         "@actions/glob": "^0.4.0", | ||||||
|         "@actions/http-client": "^2.2.3", |         "@actions/http-client": "^2.2.1", | ||||||
|         "@actions/io": "^1.0.2", |         "@actions/io": "^1.0.2", | ||||||
|         "@actions/tool-cache": "^2.0.1", |         "@actions/tool-cache": "^2.0.1", | ||||||
|         "semver": "^7.6.0", |         "semver": "^7.6.0", | ||||||
|         "xmlbuilder2": "^2.4.0" |         "xmlbuilder2": "^2.4.0" | ||||||
|       }, |       }, | ||||||
|       "devDependencies": { |       "devDependencies": { | ||||||
|         "@types/jest": "^29.5.14", |         "@types/jest": "^29.5.12", | ||||||
|         "@types/node": "^20.11.24", |         "@types/node": "^20.11.24", | ||||||
|         "@types/semver": "^7.5.8", |         "@types/semver": "^7.5.8", | ||||||
|         "@typescript-eslint/eslint-plugin": "^5.54.0", |         "@typescript-eslint/eslint-plugin": "^5.54.0", | ||||||
| @ -47,12 +47,11 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/cache": { |     "node_modules/@actions/cache": { | ||||||
|       "version": "4.0.0", |       "version": "3.2.4", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/@actions/cache/-/cache-3.2.4.tgz", | ||||||
|       "integrity": "sha512-WIuxjnZ44lNYtIS4fqSaYvF00hORdy3cSin+jx8xNgBVGWnNIAiCBHjlwusVQlcgExoQC9pHXGrDsZyZr7rCDQ==", |       "integrity": "sha512-RuHnwfcDagtX+37s0ZWy7clbOfnZ7AlDJQ7k/9rzt2W4Gnwde3fa/qjSjVuz4vLcLIpc7fUob27CMrqiWZytYA==", | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@actions/core": "^1.11.1", |         "@actions/core": "^1.10.0", | ||||||
|         "@actions/exec": "^1.0.1", |         "@actions/exec": "^1.0.1", | ||||||
|         "@actions/glob": "^0.1.0", |         "@actions/glob": "^0.1.0", | ||||||
|         "@actions/http-client": "^2.1.1", |         "@actions/http-client": "^2.1.1", | ||||||
| @ -60,9 +59,8 @@ | |||||||
|         "@azure/abort-controller": "^1.1.0", |         "@azure/abort-controller": "^1.1.0", | ||||||
|         "@azure/ms-rest-js": "^2.6.0", |         "@azure/ms-rest-js": "^2.6.0", | ||||||
|         "@azure/storage-blob": "^12.13.0", |         "@azure/storage-blob": "^12.13.0", | ||||||
|         "@protobuf-ts/plugin": "^2.9.4", |  | ||||||
|         "semver": "^6.3.1", |         "semver": "^6.3.1", | ||||||
|         "twirp-ts": "^2.5.0" |         "uuid": "^3.3.3" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/cache/node_modules/@actions/glob": { |     "node_modules/@actions/cache/node_modules/@actions/glob": { | ||||||
| @ -83,12 +81,20 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/core": { |     "node_modules/@actions/core": { | ||||||
|       "version": "1.11.1", |       "version": "1.10.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.11.1.tgz", |       "resolved": "https://registry.npmjs.org/@actions/core/-/core-1.10.1.tgz", | ||||||
|       "integrity": "sha512-hXJCSrkwfA46Vd9Z3q4cpEpHB1rL5NG04+/rbqW9d3+CSvtB1tYe8UTpAlixa1vj0m/ULglfEK2UKxMGxCxv5A==", |       "integrity": "sha512-3lBR9EDAY+iYIpTnTIXmWcNbX3T2kCkAEQGIQx4NVQ0575nk2k3GRZDTPQG+vVtS2izSLmINlxXf0uLtnrTP+g==", | ||||||
|       "dependencies": { |       "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": { |     "node_modules/@actions/exec": { | ||||||
| @ -109,10 +115,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@actions/http-client": { |     "node_modules/@actions/http-client": { | ||||||
|       "version": "2.2.3", |       "version": "2.2.1", | ||||||
|       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.3.tgz", |       "resolved": "https://registry.npmjs.org/@actions/http-client/-/http-client-2.2.1.tgz", | ||||||
|       "integrity": "sha512-mx8hyJi/hjFvbPokCg4uRd4ZX78t+YyRPtnKWwIl+RzNaVuFpQHfmlGVfsKEJN8LwTCvL+DfVgAM04XaHkm6bA==", |       "integrity": "sha512-KhC/cZsq7f8I4LfZSJKgCvEwfkE8o1538VoBeoGzokVLLnbFDEAdFD3UhoMklxo2un9NJVBdANOresx7vTHlHw==", | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "tunnel": "^0.0.6", |         "tunnel": "^0.0.6", | ||||||
|         "undici": "^5.25.4" |         "undici": "^5.25.4" | ||||||
| @ -1599,83 +1604,6 @@ | |||||||
|         "node": ">=8.0.0" |         "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": { |     "node_modules/@sinclair/typebox": { | ||||||
|       "version": "0.27.8", |       "version": "0.27.8", | ||||||
|       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", |       "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", | ||||||
| @ -1775,11 +1703,10 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/@types/jest": { |     "node_modules/@types/jest": { | ||||||
|       "version": "29.5.14", |       "version": "29.5.12", | ||||||
|       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", |       "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", | ||||||
|       "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", |       "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "expect": "^29.0.0", |         "expect": "^29.0.0", | ||||||
|         "pretty-format": "^29.0.0" |         "pretty-format": "^29.0.0" | ||||||
| @ -2322,12 +2249,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/braces": { |     "node_modules/braces": { | ||||||
|       "version": "3.0.3", |       "version": "3.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", |       "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", | ||||||
|       "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", |       "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "fill-range": "^7.1.1" |         "fill-range": "^7.0.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=8" |         "node": ">=8" | ||||||
| @ -2401,16 +2328,6 @@ | |||||||
|         "node": ">=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": { |     "node_modules/camelcase": { | ||||||
|       "version": "5.3.1", |       "version": "5.3.1", | ||||||
|       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", |       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", | ||||||
| @ -2545,15 +2462,6 @@ | |||||||
|         "node": ">= 0.8" |         "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": { |     "node_modules/concat-map": { | ||||||
|       "version": "0.0.1", |       "version": "0.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", |       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||||
| @ -2587,11 +2495,10 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/cross-spawn": { |     "node_modules/cross-spawn": { | ||||||
|       "version": "7.0.6", |       "version": "7.0.3", | ||||||
|       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", |       "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", | ||||||
|       "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", |       "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "path-key": "^3.1.0", |         "path-key": "^3.1.0", | ||||||
|         "shebang-command": "^2.0.0", |         "shebang-command": "^2.0.0", | ||||||
| @ -2697,19 +2604,6 @@ | |||||||
|         "node": ">=6.0.0" |         "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": { |     "node_modules/electron-to-chromium": { | ||||||
|       "version": "1.4.589", |       "version": "1.4.589", | ||||||
|       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", |       "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.589.tgz", | ||||||
| @ -3208,9 +3102,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/fill-range": { |     "node_modules/fill-range": { | ||||||
|       "version": "7.1.1", |       "version": "7.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", |       "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", | ||||||
|       "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", |       "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "to-regex-range": "^5.0.1" |         "to-regex-range": "^5.0.1" | ||||||
| @ -3271,7 +3165,8 @@ | |||||||
|     "node_modules/fs.realpath": { |     "node_modules/fs.realpath": { | ||||||
|       "version": "1.0.0", |       "version": "1.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", |       "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": { |     "node_modules/fsevents": { | ||||||
|       "version": "2.3.3", |       "version": "2.3.3", | ||||||
| @ -3339,6 +3234,7 @@ | |||||||
|       "version": "7.2.3", |       "version": "7.2.3", | ||||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", |       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", | ||||||
|       "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", |       "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", | ||||||
|  |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "fs.realpath": "^1.0.0", |         "fs.realpath": "^1.0.0", | ||||||
|         "inflight": "^1.0.4", |         "inflight": "^1.0.4", | ||||||
| @ -3506,6 +3402,7 @@ | |||||||
|       "version": "1.0.6", |       "version": "1.0.6", | ||||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", |       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||||
|       "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", |       "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", | ||||||
|  |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "once": "^1.3.0", |         "once": "^1.3.0", | ||||||
|         "wrappy": "1" |         "wrappy": "1" | ||||||
| @ -3514,7 +3411,8 @@ | |||||||
|     "node_modules/inherits": { |     "node_modules/inherits": { | ||||||
|       "version": "2.0.4", |       "version": "2.0.4", | ||||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |       "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": { |     "node_modules/is-arrayish": { | ||||||
|       "version": "0.2.1", |       "version": "0.2.1", | ||||||
| @ -4357,12 +4255,6 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "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": { |     "node_modules/lodash.memoize": { | ||||||
|       "version": "4.1.2", |       "version": "4.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", |       "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", | ||||||
| @ -4375,15 +4267,6 @@ | |||||||
|       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", |       "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", | ||||||
|       "dev": true |       "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": { |     "node_modules/lru-cache": { | ||||||
|       "version": "5.1.1", |       "version": "5.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |       "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", | ||||||
| @ -4439,13 +4322,12 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/micromatch": { |     "node_modules/micromatch": { | ||||||
|       "version": "4.0.8", |       "version": "4.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", |       "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", | ||||||
|       "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", |       "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", | ||||||
|       "dev": true, |       "dev": true, | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "braces": "^3.0.3", |         "braces": "^3.0.2", | ||||||
|         "picomatch": "^2.3.1" |         "picomatch": "^2.3.1" | ||||||
|       }, |       }, | ||||||
|       "engines": { |       "engines": { | ||||||
| @ -4509,16 +4391,6 @@ | |||||||
|       "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", |       "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", | ||||||
|       "dev": true |       "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": { |     "node_modules/node-fetch": { | ||||||
|       "version": "2.7.0", |       "version": "2.7.0", | ||||||
|       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", |       "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", | ||||||
| @ -4594,6 +4466,7 @@ | |||||||
|       "version": "1.4.0", |       "version": "1.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", |       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||||
|       "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", |       "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", | ||||||
|  |       "dev": true, | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "wrappy": "1" |         "wrappy": "1" | ||||||
|       } |       } | ||||||
| @ -4699,16 +4572,6 @@ | |||||||
|         "url": "https://github.com/sponsors/sindresorhus" |         "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": { |     "node_modules/path-exists": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||||||
| @ -4722,6 +4585,7 @@ | |||||||
|       "version": "1.0.1", |       "version": "1.0.1", | ||||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", |       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||||
|       "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", |       "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", | ||||||
|  |       "dev": true, | ||||||
|       "engines": { |       "engines": { | ||||||
|         "node": ">=0.10.0" |         "node": ">=0.10.0" | ||||||
|       } |       } | ||||||
| @ -4741,12 +4605,6 @@ | |||||||
|       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", |       "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", | ||||||
|       "dev": true |       "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": { |     "node_modules/path-type": { | ||||||
|       "version": "4.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", | ||||||
| @ -4860,6 +4718,7 @@ | |||||||
|       "version": "2.8.8", |       "version": "2.8.8", | ||||||
|       "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", |       "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", | ||||||
|       "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", |       "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", | ||||||
|  |       "dev": true, | ||||||
|       "bin": { |       "bin": { | ||||||
|         "prettier": "bin-prettier.js" |         "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": { |     "node_modules/tslib": { | ||||||
|       "version": "2.6.2", |       "version": "2.6.2", | ||||||
|       "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", |       "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": ">=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": { |     "node_modules/type-check": { | ||||||
|       "version": "0.4.0", |       "version": "0.4.0", | ||||||
|       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", |       "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", | ||||||
| @ -5518,10 +5338,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "node_modules/undici": { |     "node_modules/undici": { | ||||||
|       "version": "5.28.5", |       "version": "5.28.3", | ||||||
|       "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.5.tgz", |       "resolved": "https://registry.npmjs.org/undici/-/undici-5.28.3.tgz", | ||||||
|       "integrity": "sha512-zICwjrDrcrUE0pyyJc1I2QzBkLM8FINsgOrt6WjA+BgajVq9Nxu2PbFFXUrAggLfDXlZGZBVZYw7WNV5KiBiBA==", |       "integrity": "sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA==", | ||||||
|       "license": "MIT", |  | ||||||
|       "dependencies": { |       "dependencies": { | ||||||
|         "@fastify/busboy": "^2.0.0" |         "@fastify/busboy": "^2.0.0" | ||||||
|       }, |       }, | ||||||
| @ -5640,7 +5459,8 @@ | |||||||
|     "node_modules/wrappy": { |     "node_modules/wrappy": { | ||||||
|       "version": "1.0.2", |       "version": "1.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", |       "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": { |     "node_modules/write-file-atomic": { | ||||||
|       "version": "4.0.2", |       "version": "4.0.2", | ||||||
| @ -5725,15 +5545,6 @@ | |||||||
|       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", |       "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", | ||||||
|       "dev": true |       "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": { |     "node_modules/yargs": { | ||||||
|       "version": "17.7.2", |       "version": "17.7.2", | ||||||
|       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", |       "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", | ||||||
|  | |||||||
| @ -26,18 +26,18 @@ | |||||||
|   "author": "GitHub", |   "author": "GitHub", | ||||||
|   "license": "MIT", |   "license": "MIT", | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@actions/cache": "^4.0.0", |     "@actions/cache": "^3.2.4", | ||||||
|     "@actions/core": "^1.10.0", |     "@actions/core": "^1.10.0", | ||||||
|     "@actions/exec": "^1.0.4", |     "@actions/exec": "^1.0.4", | ||||||
|     "@actions/glob": "^0.4.0", |     "@actions/glob": "^0.4.0", | ||||||
|     "@actions/http-client": "^2.2.3", |     "@actions/http-client": "^2.2.1", | ||||||
|     "@actions/io": "^1.0.2", |     "@actions/io": "^1.0.2", | ||||||
|     "@actions/tool-cache": "^2.0.1", |     "@actions/tool-cache": "^2.0.1", | ||||||
|     "semver": "^7.6.0", |     "semver": "^7.6.0", | ||||||
|     "xmlbuilder2": "^2.4.0" |     "xmlbuilder2": "^2.4.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|     "@types/jest": "^29.5.14", |     "@types/jest": "^29.5.12", | ||||||
|     "@types/node": "^20.11.24", |     "@types/node": "^20.11.24", | ||||||
|     "@types/semver": "^7.5.8", |     "@types/semver": "^7.5.8", | ||||||
|     "@typescript-eslint/eslint-plugin": "^5.54.0", |     "@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` |       `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 { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| 
 | 
 | ||||||
| export enum AdoptImplementation { | export enum AdoptImplementation { | ||||||
| @ -74,13 +73,11 @@ export class AdoptDistribution extends JavaBase { | |||||||
|     core.info( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { | 
 | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||||
|  | |||||||
| @ -5,8 +5,7 @@ import path from 'path'; | |||||||
| import { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   convertVersionToSemver, |   convertVersionToSemver | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import {JavaBase} from '../base-installer'; | import {JavaBase} from '../base-installer'; | ||||||
| import { | import { | ||||||
| @ -30,14 +29,14 @@ export class CorrettoDistribution extends JavaBase { | |||||||
|     core.info( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); | 
 | ||||||
|     if (process.platform === 'win32') { |     const extractedJavaPath = await extractJdkFile( | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |       javaArchivePath, | ||||||
|     } |       getDownloadArchiveExtension() | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     ); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||||
|     const archivePath = path.join(extractedJavaPath, archiveName); |     const archivePath = path.join(extractedJavaPath, archiveName); | ||||||
| @ -94,7 +93,7 @@ export class CorrettoDistribution extends JavaBase { | |||||||
|     const imageType = this.packageType; |     const imageType = this.packageType; | ||||||
| 
 | 
 | ||||||
|     if (core.isDebug()) { |     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 = |     const availableVersionsUrl = | ||||||
| @ -117,7 +116,7 @@ export class CorrettoDistribution extends JavaBase { | |||||||
| 
 | 
 | ||||||
|     if (core.isDebug()) { |     if (core.isDebug()) { | ||||||
|       core.startGroup('Print information about available versions'); |       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(`Available versions: [${availableVersions.length}]`); | ||||||
|       core.debug( |       core.debug( | ||||||
|         availableVersions |         availableVersions | ||||||
|  | |||||||
| @ -10,9 +10,6 @@ import {SemeruDistribution} from './semeru/installer'; | |||||||
| import {CorrettoDistribution} from './corretto/installer'; | import {CorrettoDistribution} from './corretto/installer'; | ||||||
| import {OracleDistribution} from './oracle/installer'; | import {OracleDistribution} from './oracle/installer'; | ||||||
| import {DragonwellDistribution} from './dragonwell/installer'; | import {DragonwellDistribution} from './dragonwell/installer'; | ||||||
| import {SapMachineDistribution} from './sapmachine/installer'; |  | ||||||
| import {GraalVMDistribution} from './graalvm/installer'; |  | ||||||
| import {JetBrainsDistribution} from './jetbrains/installer'; |  | ||||||
| 
 | 
 | ||||||
| enum JavaDistribution { | enum JavaDistribution { | ||||||
|   Adopt = 'adopt', |   Adopt = 'adopt', | ||||||
| @ -26,10 +23,7 @@ enum JavaDistribution { | |||||||
|   Semeru = 'semeru', |   Semeru = 'semeru', | ||||||
|   Corretto = 'corretto', |   Corretto = 'corretto', | ||||||
|   Oracle = 'oracle', |   Oracle = 'oracle', | ||||||
|   Dragonwell = 'dragonwell', |   Dragonwell = 'dragonwell' | ||||||
|   SapMachine = 'sapmachine', |  | ||||||
|   GraalVM = 'graalvm', |  | ||||||
|   JetBrains = 'jetbrains' |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function getJavaDistribution( | export function getJavaDistribution( | ||||||
| @ -70,12 +64,6 @@ export function getJavaDistribution( | |||||||
|       return new OracleDistribution(installerOptions); |       return new OracleDistribution(installerOptions); | ||||||
|     case JavaDistribution.Dragonwell: |     case JavaDistribution.Dragonwell: | ||||||
|       return new DragonwellDistribution(installerOptions); |       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: |     default: | ||||||
|       return null; |       return null; | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -11,8 +11,7 @@ import { | |||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   getGitHubHttpHeaders, |   getGitHubHttpHeaders, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import {IDragonwellVersions, IDragonwellAllVersions} from './models'; | import {IDragonwellVersions, IDragonwellAllVersions} from './models'; | ||||||
| import { | import { | ||||||
| @ -101,14 +100,14 @@ export class DragonwellDistribution extends JavaBase { | |||||||
|     core.info( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); | 
 | ||||||
|     if (process.platform === 'win32') { |     const extractedJavaPath = await extractJdkFile( | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |       javaArchivePath, | ||||||
|     } |       getDownloadArchiveExtension() | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     ); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||||
|     const archivePath = path.join(extractedJavaPath, archiveName); |     const archivePath = path.join(extractedJavaPath, archiveName); | ||||||
| @ -150,14 +149,9 @@ export class DragonwellDistribution extends JavaBase { | |||||||
| 
 | 
 | ||||||
|         // Some version of Dragonwell JDK are numerated with help of non-semver notation (more then 3 digits).
 |         // Some version of Dragonwell JDK are numerated with help of non-semver notation (more then 3 digits).
 | ||||||
|         // Common practice is to transform excess digits to the so-called semver build part, which is prefixed with the plus sign, to be able to operate with them using semver tools.
 |         // Common practice is to transform excess digits to the so-called semver build part, which is prefixed with the plus sign, to be able to operate with them using semver tools.
 | ||||||
|         const jdkVersionNums: string[] = jdkVersion |         if (jdkVersion.split('.').length > 3) { | ||||||
|           .replace('+', '.') |           jdkVersion = convertVersionToSemver(jdkVersion); | ||||||
|           .split('.'); |         } | ||||||
|         jdkVersion = convertVersionToSemver( |  | ||||||
|           `${jdkVersionNums.slice(0, 3).join('.')}.${ |  | ||||||
|             jdkVersionNums[jdkVersionNums.length - 1] |  | ||||||
|           }` |  | ||||||
|         ); |  | ||||||
| 
 | 
 | ||||||
|         for (const edition in archMap) { |         for (const edition in archMap) { | ||||||
|           eligibleVersions.push({ |           eligibleVersions.push({ | ||||||
|  | |||||||
| @ -1,176 +0,0 @@ | |||||||
| import * as core from '@actions/core'; |  | ||||||
| import * as tc from '@actions/tool-cache'; |  | ||||||
| 
 |  | ||||||
| import fs from 'fs'; |  | ||||||
| import path from 'path'; |  | ||||||
| 
 |  | ||||||
| import {JavaBase} from '../base-installer'; |  | ||||||
| import { |  | ||||||
|   JavaDownloadRelease, |  | ||||||
|   JavaInstallerOptions, |  | ||||||
|   JavaInstallerResults |  | ||||||
| } from '../base-models'; |  | ||||||
| import { |  | ||||||
|   extractJdkFile, |  | ||||||
|   getDownloadArchiveExtension, |  | ||||||
|   getGitHubHttpHeaders, |  | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; |  | ||||||
| import {HttpCodes} from '@actions/http-client'; |  | ||||||
| import {GraalVMEAVersion} from './models'; |  | ||||||
| 
 |  | ||||||
| const GRAALVM_DL_BASE = 'https://download.oracle.com/graalvm'; |  | ||||||
| const IS_WINDOWS = process.platform === 'win32'; |  | ||||||
| const GRAALVM_PLATFORM = IS_WINDOWS ? 'windows' : process.platform; |  | ||||||
| 
 |  | ||||||
| export class GraalVMDistribution extends JavaBase { |  | ||||||
|   constructor(installerOptions: JavaInstallerOptions) { |  | ||||||
|     super('GraalVM', installerOptions); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   protected async downloadTool( |  | ||||||
|     javaRelease: JavaDownloadRelease |  | ||||||
|   ): Promise<JavaInstallerResults> { |  | ||||||
|     core.info( |  | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |  | ||||||
|     ); |  | ||||||
|     let javaArchivePath = await tc.downloadTool(javaRelease.url); |  | ||||||
| 
 |  | ||||||
|     core.info(`Extracting Java archive...`); |  | ||||||
|     const extension = getDownloadArchiveExtension(); |  | ||||||
|     if (process.platform === 'win32') { |  | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |  | ||||||
| 
 |  | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |  | ||||||
|     const archivePath = path.join(extractedJavaPath, archiveName); |  | ||||||
|     const version = this.getToolcacheVersionName(javaRelease.version); |  | ||||||
| 
 |  | ||||||
|     const javaPath = await tc.cacheDir( |  | ||||||
|       archivePath, |  | ||||||
|       this.toolcacheFolderName, |  | ||||||
|       version, |  | ||||||
|       this.architecture |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     return {version: javaRelease.version, path: javaPath}; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   protected async findPackageForDownload( |  | ||||||
|     range: string |  | ||||||
|   ): Promise<JavaDownloadRelease> { |  | ||||||
|     const arch = this.distributionArchitecture(); |  | ||||||
|     if (arch !== 'x64' && arch !== 'aarch64') { |  | ||||||
|       throw new Error(`Unsupported architecture: ${this.architecture}`); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (!this.stable) { |  | ||||||
|       return this.findEABuildDownloadUrl(`${range}-ea`); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (this.packageType !== 'jdk') { |  | ||||||
|       throw new Error('GraalVM provides only the `jdk` package type'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     const platform = this.getPlatform(); |  | ||||||
|     const extension = getDownloadArchiveExtension(); |  | ||||||
|     let major; |  | ||||||
|     let fileUrl; |  | ||||||
|     if (range.includes('.')) { |  | ||||||
|       major = range.split('.')[0]; |  | ||||||
|       fileUrl = `${GRAALVM_DL_BASE}/${major}/archive/graalvm-jdk-${range}_${platform}-${arch}_bin.${extension}`; |  | ||||||
|     } else { |  | ||||||
|       major = range; |  | ||||||
|       fileUrl = `${GRAALVM_DL_BASE}/${range}/latest/graalvm-jdk-${range}_${platform}-${arch}_bin.${extension}`; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (parseInt(major) < 17) { |  | ||||||
|       throw new Error('GraalVM is only supported for JDK 17 and later'); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     const response = await this.http.head(fileUrl); |  | ||||||
| 
 |  | ||||||
|     if (response.message.statusCode === HttpCodes.NotFound) { |  | ||||||
|       throw new Error(`Could not find GraalVM for SemVer ${range}`); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     if (response.message.statusCode !== HttpCodes.OK) { |  | ||||||
|       throw new Error( |  | ||||||
|         `Http request for GraalVM failed with status code: ${response.message.statusCode}` |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     return {url: fileUrl, version: range}; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   private async findEABuildDownloadUrl( |  | ||||||
|     javaEaVersion: string |  | ||||||
|   ): Promise<JavaDownloadRelease> { |  | ||||||
|     const versions = await this.fetchEAJson(javaEaVersion); |  | ||||||
|     const latestVersion = versions.find(v => v.latest); |  | ||||||
|     if (!latestVersion) { |  | ||||||
|       throw new Error(`Unable to find latest version for '${javaEaVersion}'`); |  | ||||||
|     } |  | ||||||
|     const arch = this.distributionArchitecture(); |  | ||||||
|     const file = latestVersion.files.find( |  | ||||||
|       f => f.arch === arch && f.platform === GRAALVM_PLATFORM |  | ||||||
|     ); |  | ||||||
|     if (!file || !file.filename.startsWith('graalvm-jdk-')) { |  | ||||||
|       throw new Error(`Unable to find file metadata for '${javaEaVersion}'`); |  | ||||||
|     } |  | ||||||
|     return { |  | ||||||
|       url: `${latestVersion.download_base_url}${file.filename}`, |  | ||||||
|       version: latestVersion.version |  | ||||||
|     }; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   private async fetchEAJson( |  | ||||||
|     javaEaVersion: string |  | ||||||
|   ): Promise<GraalVMEAVersion[]> { |  | ||||||
|     const owner = 'graalvm'; |  | ||||||
|     const repository = 'oracle-graalvm-ea-builds'; |  | ||||||
|     const branch = 'main'; |  | ||||||
|     const filePath = `versions/${javaEaVersion}.json`; |  | ||||||
| 
 |  | ||||||
|     const url = `https://api.github.com/repos/${owner}/${repository}/contents/${filePath}?ref=${branch}`; |  | ||||||
| 
 |  | ||||||
|     const headers = getGitHubHttpHeaders(); |  | ||||||
| 
 |  | ||||||
|     core.debug( |  | ||||||
|       `Trying to fetch available version info for GraalVM EA builds from '${url}'` |  | ||||||
|     ); |  | ||||||
|     let fetchedJson; |  | ||||||
|     try { |  | ||||||
|       fetchedJson = (await this.http.getJson<GraalVMEAVersion[]>(url, headers)) |  | ||||||
|         .result; |  | ||||||
|     } catch (err) { |  | ||||||
|       throw Error( |  | ||||||
|         `Fetching version info for GraalVM EA builds from '${url}' failed with the error: ${ |  | ||||||
|           (err as Error).message |  | ||||||
|         }` |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
|     if (fetchedJson === null) { |  | ||||||
|       throw Error( |  | ||||||
|         `No GraalVM EA build found. Are you sure java-version: '${javaEaVersion}' is correct?` |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
|     return fetchedJson; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   public getPlatform(platform: NodeJS.Platform = process.platform): OsVersions { |  | ||||||
|     switch (platform) { |  | ||||||
|       case 'darwin': |  | ||||||
|         return 'macos'; |  | ||||||
|       case 'win32': |  | ||||||
|         return 'windows'; |  | ||||||
|       case 'linux': |  | ||||||
|         return 'linux'; |  | ||||||
|       default: |  | ||||||
|         throw new Error( |  | ||||||
|           `Platform '${platform}' is not supported. Supported platforms: 'linux', 'macos', 'windows'` |  | ||||||
|         ); |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -1,14 +0,0 @@ | |||||||
| export type OsVersions = 'linux' | 'macos' | 'windows'; |  | ||||||
| 
 |  | ||||||
| export interface GraalVMEAFile { |  | ||||||
|   filename: string; |  | ||||||
|   arch: 'aarch64' | 'x64'; |  | ||||||
|   platform: 'darwin' | 'linux' | 'windows'; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface GraalVMEAVersion { |  | ||||||
|   version: string; |  | ||||||
|   latest?: boolean; |  | ||||||
|   download_base_url: string; |  | ||||||
|   files: GraalVMEAFile[]; |  | ||||||
| } |  | ||||||
| @ -1,233 +0,0 @@ | |||||||
| import * as core from '@actions/core'; |  | ||||||
| import * as tc from '@actions/tool-cache'; |  | ||||||
| 
 |  | ||||||
| import fs from 'fs'; |  | ||||||
| import path from 'path'; |  | ||||||
| import semver from 'semver'; |  | ||||||
| 
 |  | ||||||
| import {JavaBase} from '../base-installer'; |  | ||||||
| import {IJetBrainsRawVersion, IJetBrainsVersion} from './models'; |  | ||||||
| import { |  | ||||||
|   JavaDownloadRelease, |  | ||||||
|   JavaInstallerOptions, |  | ||||||
|   JavaInstallerResults |  | ||||||
| } from '../base-models'; |  | ||||||
| import {extractJdkFile, isVersionSatisfies} from '../../util'; |  | ||||||
| import {OutgoingHttpHeaders} from 'http'; |  | ||||||
| import {HttpCodes} from '@actions/http-client'; |  | ||||||
| 
 |  | ||||||
| export class JetBrainsDistribution extends JavaBase { |  | ||||||
|   constructor(installerOptions: JavaInstallerOptions) { |  | ||||||
|     super('JetBrains', installerOptions); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   protected async findPackageForDownload( |  | ||||||
|     range: string |  | ||||||
|   ): Promise<JavaDownloadRelease> { |  | ||||||
|     const versionsRaw = await this.getAvailableVersions(); |  | ||||||
| 
 |  | ||||||
|     const versions = versionsRaw.map(v => { |  | ||||||
|       const formattedVersion = `${v.semver}+${v.build}`; |  | ||||||
| 
 |  | ||||||
|       return { |  | ||||||
|         version: formattedVersion, |  | ||||||
|         url: v.url |  | ||||||
|       } as JavaDownloadRelease; |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     const satisfiedVersions = versions |  | ||||||
|       .filter(item => isVersionSatisfies(range, item.version)) |  | ||||||
|       .sort((a, b) => { |  | ||||||
|         return -semver.compareBuild(a.version, b.version); |  | ||||||
|       }); |  | ||||||
| 
 |  | ||||||
|     const resolvedFullVersion = |  | ||||||
|       satisfiedVersions.length > 0 ? satisfiedVersions[0] : null; |  | ||||||
|     if (!resolvedFullVersion) { |  | ||||||
|       const availableOptions = versionsRaw |  | ||||||
|         .map(item => `${item.tag_name} (${item.semver}+${item.build})`) |  | ||||||
|         .join(', '); |  | ||||||
|       const availableOptionsMessage = availableOptions |  | ||||||
|         ? `\nAvailable versions: ${availableOptions}` |  | ||||||
|         : ''; |  | ||||||
|       throw new Error( |  | ||||||
|         `Could not find satisfied version for SemVer '${range}'. ${availableOptionsMessage}` |  | ||||||
|       ); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     return resolvedFullVersion; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   protected async downloadTool( |  | ||||||
|     javaRelease: JavaDownloadRelease |  | ||||||
|   ): Promise<JavaInstallerResults> { |  | ||||||
|     core.info( |  | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     const javaArchivePath = await tc.downloadTool(javaRelease.url); |  | ||||||
| 
 |  | ||||||
|     core.info(`Extracting Java archive...`); |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, 'tar.gz'); |  | ||||||
| 
 |  | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |  | ||||||
|     const archivePath = path.join(extractedJavaPath, archiveName); |  | ||||||
|     const version = this.getToolcacheVersionName(javaRelease.version); |  | ||||||
| 
 |  | ||||||
|     const javaPath = await tc.cacheDir( |  | ||||||
|       archivePath, |  | ||||||
|       this.toolcacheFolderName, |  | ||||||
|       version, |  | ||||||
|       this.architecture |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     return {version: javaRelease.version, path: javaPath}; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   private async getAvailableVersions(): Promise<IJetBrainsVersion[]> { |  | ||||||
|     const platform = this.getPlatformOption(); |  | ||||||
|     const arch = this.distributionArchitecture(); |  | ||||||
| 
 |  | ||||||
|     if (core.isDebug()) { |  | ||||||
|       console.time('Retrieving available versions for JBR took'); // eslint-disable-line no-console
 |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // need to iterate through all pages to retrieve the list of all versions
 |  | ||||||
|     // GitHub API doesn't provide way to retrieve the count of pages to iterate so infinity loop
 |  | ||||||
|     let page_index = 1; |  | ||||||
|     const rawVersions: IJetBrainsRawVersion[] = []; |  | ||||||
|     const bearerToken = process.env.GITHUB_TOKEN; |  | ||||||
| 
 |  | ||||||
|     while (true) { |  | ||||||
|       const requestArguments = `per_page=100&page=${page_index}`; |  | ||||||
|       const requestHeaders: OutgoingHttpHeaders = {}; |  | ||||||
| 
 |  | ||||||
|       if (bearerToken) { |  | ||||||
|         requestHeaders['Authorization'] = `Bearer ${bearerToken}`; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       const rawUrl = `https://api.github.com/repos/JetBrains/JetBrainsRuntime/releases?${requestArguments}`; |  | ||||||
| 
 |  | ||||||
|       if (core.isDebug() && page_index === 1) { |  | ||||||
|         // url is identical except page_index so print it once for debug
 |  | ||||||
|         core.debug(`Gathering available versions from '${rawUrl}'`); |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       const paginationPage = ( |  | ||||||
|         await this.http.getJson<IJetBrainsRawVersion[]>(rawUrl, requestHeaders) |  | ||||||
|       ).result; |  | ||||||
|       if (!paginationPage || paginationPage.length === 0) { |  | ||||||
|         // break infinity loop because we have reached end of pagination
 |  | ||||||
|         break; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       rawVersions.push(...paginationPage); |  | ||||||
|       page_index++; |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     // Add versions not available from the API but are downloadable
 |  | ||||||
|     const hidden = ['11_0_10b1145.115', '11_0_11b1341.60']; |  | ||||||
|     rawVersions.push(...hidden.map(tag => ({tag_name: tag, name: tag}))); |  | ||||||
| 
 |  | ||||||
|     const versions0 = rawVersions.map(async v => { |  | ||||||
|       // Release tags look like one of these:
 |  | ||||||
|       // jbr-release-21.0.3b465.3
 |  | ||||||
|       // jbr17-b87.7
 |  | ||||||
|       // jb11_0_11-b87.7
 |  | ||||||
|       // jbr11_0_15b2043.56
 |  | ||||||
|       // 11_0_11b1536.2
 |  | ||||||
|       // 11_0_11-b1522
 |  | ||||||
|       const tag = v.tag_name; |  | ||||||
| 
 |  | ||||||
|       // Extract version string
 |  | ||||||
|       const vstring = tag |  | ||||||
|         .replace('jbr-release-', '') |  | ||||||
|         .replace('jbr', '') |  | ||||||
|         .replace('jb', '') |  | ||||||
|         .replace('-', ''); |  | ||||||
| 
 |  | ||||||
|       const vsplit = vstring.split('b'); |  | ||||||
|       let semver = vsplit[0]; |  | ||||||
|       const build = +vsplit[1]; |  | ||||||
| 
 |  | ||||||
|       // Normalize semver
 |  | ||||||
|       if (!semver.includes('.') && !semver.includes('_')) |  | ||||||
|         semver = `${semver}.0.0`; |  | ||||||
| 
 |  | ||||||
|       // Construct URL
 |  | ||||||
|       let type: string; |  | ||||||
|       switch (this.packageType ?? '') { |  | ||||||
|         case 'jre': |  | ||||||
|           type = 'jbr'; |  | ||||||
|           break; |  | ||||||
|         case 'jdk+jcef': |  | ||||||
|           type = 'jbrsdk_jcef'; |  | ||||||
|           break; |  | ||||||
|         case 'jre+jcef': |  | ||||||
|           type = 'jbr_jcef'; |  | ||||||
|           break; |  | ||||||
|         case 'jdk+ft': |  | ||||||
|           type = 'jbrsdk_ft'; |  | ||||||
|           break; |  | ||||||
|         case 'jre+ft': |  | ||||||
|           type = 'jbr_ft'; |  | ||||||
|           break; |  | ||||||
|         default: |  | ||||||
|           type = 'jbrsdk'; |  | ||||||
|           break; |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       let url = `https://cache-redirector.jetbrains.com/intellij-jbr/${type}-${semver}-${platform}-${arch}-b${build}.tar.gz`; |  | ||||||
|       let include = false; |  | ||||||
| 
 |  | ||||||
|       const res = await this.http.head(url); |  | ||||||
|       if (res.message.statusCode === HttpCodes.OK) { |  | ||||||
|         include = true; |  | ||||||
|       } else { |  | ||||||
|         url = `https://cache-redirector.jetbrains.com/intellij-jbr/${type}_nomod-${semver}-${platform}-${arch}-b${build}.tar.gz`; |  | ||||||
|         const res2 = await this.http.head(url); |  | ||||||
|         if (res2.message.statusCode === HttpCodes.OK) { |  | ||||||
|           include = true; |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
| 
 |  | ||||||
|       const version = { |  | ||||||
|         tag_name: tag, |  | ||||||
|         semver: semver.replace(/_/g, '.'), |  | ||||||
|         build: build, |  | ||||||
|         url: url |  | ||||||
|       } as IJetBrainsVersion; |  | ||||||
| 
 |  | ||||||
|       return { |  | ||||||
|         item: version, |  | ||||||
|         include: include |  | ||||||
|       }; |  | ||||||
|     }); |  | ||||||
| 
 |  | ||||||
|     const versions = await Promise.all(versions0).then(res => |  | ||||||
|       res.filter(item => item.include).map(item => item.item) |  | ||||||
|     ); |  | ||||||
| 
 |  | ||||||
|     if (core.isDebug()) { |  | ||||||
|       core.startGroup('Print information about available versions'); |  | ||||||
|       console.timeEnd('Retrieving available versions for JBR took'); // eslint-disable-line no-console
 |  | ||||||
|       core.debug(`Available versions: [${versions.length}]`); |  | ||||||
|       core.debug(versions.map(item => item.semver).join(', ')); |  | ||||||
|       core.endGroup(); |  | ||||||
|     } |  | ||||||
| 
 |  | ||||||
|     return versions; |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|   private getPlatformOption(): string { |  | ||||||
|     // Jetbrains has own platform names so need to map them
 |  | ||||||
|     switch (process.platform) { |  | ||||||
|       case 'darwin': |  | ||||||
|         return 'osx'; |  | ||||||
|       case 'win32': |  | ||||||
|         return 'windows'; |  | ||||||
|       default: |  | ||||||
|         return process.platform; |  | ||||||
|     } |  | ||||||
|   } |  | ||||||
| } |  | ||||||
| @ -1,13 +0,0 @@ | |||||||
| // Raw Model from https://api.github.com/repos/JetBrains/JetBrainsRuntime/releases
 |  | ||||||
| 
 |  | ||||||
| export interface IJetBrainsRawVersion { |  | ||||||
|   tag_name: string; |  | ||||||
|   name: string; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| export interface IJetBrainsVersion { |  | ||||||
|   tag_name: string; |  | ||||||
|   semver: string; |  | ||||||
|   build: number; |  | ||||||
|   url: string; |  | ||||||
| } |  | ||||||
| @ -8,8 +8,7 @@ import semver from 'semver'; | |||||||
| import { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import {ArchitectureOptions, LibericaVersion, OsVersions} from './models'; | import {ArchitectureOptions, LibericaVersion, OsVersions} from './models'; | ||||||
| @ -36,8 +35,13 @@ export class LibericaDistributions extends JavaBase { | |||||||
| 
 | 
 | ||||||
|     core.info(`Extracting Java archive...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { |     if ( | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |       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); |     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -7,8 +7,7 @@ import { | |||||||
| import { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   getGitHubHttpHeaders, |   getGitHubHttpHeaders | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import * as tc from '@actions/tool-cache'; | 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} ...` |       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` | ||||||
|     ); |     ); | ||||||
|     let javaArchivePath = await tc.downloadTool(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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { |  | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||||
|  | |||||||
| @ -10,11 +10,7 @@ import { | |||||||
|   JavaInstallerOptions, |   JavaInstallerOptions, | ||||||
|   JavaInstallerResults |   JavaInstallerResults | ||||||
| } from '../base-models'; | } from '../base-models'; | ||||||
| import { | import {extractJdkFile, getDownloadArchiveExtension} from '../../util'; | ||||||
|   extractJdkFile, |  | ||||||
|   getDownloadArchiveExtension, |  | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; |  | ||||||
| import {HttpCodes} from '@actions/http-client'; | import {HttpCodes} from '@actions/http-client'; | ||||||
| 
 | 
 | ||||||
| const ORACLE_DL_BASE = 'https://download.oracle.com/java'; | const ORACLE_DL_BASE = 'https://download.oracle.com/java'; | ||||||
| @ -30,13 +26,11 @@ export class OracleDistribution extends JavaBase { | |||||||
|     core.info( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { | 
 | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     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 { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import * as tc from '@actions/tool-cache'; | import * as tc from '@actions/tool-cache'; | ||||||
| @ -34,15 +33,11 @@ export class SemeruDistribution extends JavaBase { | |||||||
|   protected async findPackageForDownload( |   protected async findPackageForDownload( | ||||||
|     version: string |     version: string | ||||||
|   ): Promise<JavaDownloadRelease> { |   ): Promise<JavaDownloadRelease> { | ||||||
|     const arch = this.distributionArchitecture(); |     if (!supportedArchitectures.includes(this.architecture)) { | ||||||
| 
 |  | ||||||
|     if (!supportedArchitectures.includes(arch)) { |  | ||||||
|       throw new Error( |       throw new Error( | ||||||
|         `Unsupported architecture for IBM Semeru: ${ |         `Unsupported architecture for IBM Semeru: ${ | ||||||
|           this.architecture |           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}` |         ? `\nAvailable versions: ${availableOptions}` | ||||||
|         : ''; |         : ''; | ||||||
|       throw new Error( |       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( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { | 
 | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath: string = await extractJdkFile( |     const extractedJavaPath: string = await extractJdkFile( | ||||||
|       javaArchivePath, |       javaArchivePath, | ||||||
|       extension |       extension | ||||||
| @ -131,7 +124,7 @@ export class SemeruDistribution extends JavaBase { | |||||||
| 
 | 
 | ||||||
|   public async getAvailableVersions(): Promise<ISemeruAvailableVersions[]> { |   public async getAvailableVersions(): Promise<ISemeruAvailableVersions[]> { | ||||||
|     const platform = this.getPlatformOption(); |     const platform = this.getPlatformOption(); | ||||||
|     const arch = this.distributionArchitecture(); |     const arch = this.architecture; | ||||||
|     const imageType = this.packageType; |     const imageType = this.packageType; | ||||||
|     const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions
 |     const versionRange = encodeURI('[1.0,100.0]'); // retrieve all available versions
 | ||||||
|     const releaseType = this.stable ? 'ga' : 'ea'; |     const releaseType = this.stable ? 'ga' : 'ea'; | ||||||
|  | |||||||
| @ -15,8 +15,7 @@ import { | |||||||
| import { | import { | ||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| 
 | 
 | ||||||
| export enum TemurinImplementation { | export enum TemurinImplementation { | ||||||
| @ -77,13 +76,11 @@ export class TemurinDistribution extends JavaBase { | |||||||
|     core.info( |     core.info( | ||||||
|       `Downloading Java ${javaRelease.version} (${this.distribution}) from ${javaRelease.url} ...` |       `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...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { | 
 | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |  | ||||||
|     } |  | ||||||
|     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); |     const extractedJavaPath = await extractJdkFile(javaArchivePath, extension); | ||||||
| 
 | 
 | ||||||
|     const archiveName = fs.readdirSync(extractedJavaPath)[0]; |     const archiveName = fs.readdirSync(extractedJavaPath)[0]; | ||||||
|  | |||||||
| @ -11,8 +11,7 @@ import { | |||||||
|   extractJdkFile, |   extractJdkFile, | ||||||
|   getDownloadArchiveExtension, |   getDownloadArchiveExtension, | ||||||
|   convertVersionToSemver, |   convertVersionToSemver, | ||||||
|   isVersionSatisfies, |   isVersionSatisfies | ||||||
|   renameWinArchive |  | ||||||
| } from '../../util'; | } from '../../util'; | ||||||
| import { | import { | ||||||
|   JavaDownloadRelease, |   JavaDownloadRelease, | ||||||
| @ -81,8 +80,13 @@ export class ZuluDistribution extends JavaBase { | |||||||
| 
 | 
 | ||||||
|     core.info(`Extracting Java archive...`); |     core.info(`Extracting Java archive...`); | ||||||
|     const extension = getDownloadArchiveExtension(); |     const extension = getDownloadArchiveExtension(); | ||||||
|     if (process.platform === 'win32') { |     if ( | ||||||
|       javaArchivePath = renameWinArchive(javaArchivePath); |       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); |     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( |   const ghUrl = new URL( | ||||||
|     process.env['GITHUB_SERVER_URL'] || 'https://github.com' |     process.env['GITHUB_SERVER_URL'] || 'https://github.com' | ||||||
|   ); |   ); | ||||||
| 
 |   return ghUrl.hostname.toUpperCase() !== '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; |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| export function isCacheFeatureAvailable(): boolean { | export function isCacheFeatureAvailable(): boolean { | ||||||
| @ -196,14 +190,3 @@ export function getGitHubHttpHeaders(): OutgoingHttpHeaders { | |||||||
|   } |   } | ||||||
|   return headers; |   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