-
Notifications
You must be signed in to change notification settings - Fork 745
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
actions/setup-java@v2 - Support different distributions (#132)
* Implement support for custom vendors in setup-java * minor improvements * minor refactoring * Add unit tests and e2e tests * Update documentation for setup-java@v2 release * minor improvements * regenerate dist * fix comments * resolve comments * resolve comments * fix tests * Update README.md Co-authored-by: George Adams <[email protected]> * Apply suggestions from code review Co-authored-by: Konrad Pabjan <[email protected]> * fix minor nitpicks * handle 4th digit * pull latest main * Update README.md * rename adoptium to adopt * rename adoptium to adopt * rename adoptium to adopt * Update README.md * make java-version and distribution required for action * update readme * fix tests * fix e2e tests Co-authored-by: George Adams <[email protected]> Co-authored-by: Konrad Pabjan <[email protected]>
- Loading branch information
1 parent
e73e96a
commit 7c88894
Showing
44 changed files
with
47,715 additions
and
29,577 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
name: Build Action | ||
|
||
on: | ||
push: | ||
branches: | ||
- main | ||
- releases/* | ||
- v2-preview | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
|
||
jobs: | ||
build: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, windows-latest, macos-latest] | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Setup Node.JS 12 | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: 12.x | ||
- run: npm ci | ||
- run: npm run build | ||
- run: npm run format-check | ||
- run: npm test | ||
- name: Verify no unstaged changes | ||
if: runner.os != 'windows' | ||
run: bash __tests__/verify-no-unstaged-changes.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,87 @@ | ||
name: Validate local file | ||
on: | ||
push: | ||
branches: | ||
- main | ||
- releases/* | ||
- v2-preview | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
|
||
jobs: | ||
setup-java-local-file-adopt: | ||
name: Validate installation from local file Adopt | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Download Adopt OpenJDK file | ||
run: | | ||
if ($IsLinux) { | ||
$downloadUrl = "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_linux_hotspot_11.0.10_9.tar.gz" | ||
$localFilename = "java_package.tar.gz" | ||
} elseif ($IsMacOS) { | ||
$downloadUrl = "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_mac_hotspot_11.0.10_9.tar.gz" | ||
$localFilename = "java_package.tar.gz" | ||
} elseif ($IsWindows) { | ||
$downloadUrl = "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.10%2B9/OpenJDK11U-jdk_x64_windows_hotspot_11.0.10_9.zip" | ||
$localFilename = "java_package.zip" | ||
} | ||
echo "LocalFilename=$localFilename" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | ||
(New-Object System.Net.WebClient).DownloadFile($downloadUrl, "$env:RUNNER_TEMP/$localFilename") | ||
shell: pwsh | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
distribution: 'jdkfile' | ||
jdkFile: ${{ runner.temp }}/${{ env.LocalFilename }} | ||
java-version: '11.0.0-ea' | ||
architecture: x64 | ||
- name: Verify Java version | ||
run: bash __tests__/verify-java.sh "11.0.10" "${{ steps.setup-java.outputs.path }}" | ||
shell: bash | ||
|
||
setup-java-local-file-zulu: | ||
name: Validate installation from local file Zulu | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: Download Zulu OpenJDK file | ||
run: | | ||
if ($IsLinux) { | ||
$downloadUrl = "https://cdn.azul.com/zulu/bin/zulu11.2.3-jdk11.0.1-linux_x64.tar.gz" | ||
$localFilename = "java_package.tar.gz" | ||
} elseif ($IsMacOS) { | ||
$downloadUrl = "https://cdn.azul.com/zulu/bin/zulu11.2.3-jdk11.0.1-macosx_x64.tar.gz" | ||
$localFilename = "java_package.tar.gz" | ||
} elseif ($IsWindows) { | ||
$downloadUrl = "https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-win_x64.zip" | ||
$localFilename = "java_package.zip" | ||
} | ||
echo "LocalFilename=$localFilename" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | ||
(New-Object System.Net.WebClient).DownloadFile($downloadUrl, "$env:RUNNER_TEMP/$localFilename") | ||
shell: pwsh | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
distribution: 'jdkfile' | ||
jdkFile: ${{ runner.temp }}/${{ env.LocalFilename }} | ||
java-version: '11.0.0-ea' | ||
architecture: x64 | ||
- name: Verify Java version | ||
run: bash __tests__/verify-java.sh "11.0" "${{ steps.setup-java.outputs.path }}" | ||
shell: bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
name: Validate publishing functionality | ||
on: | ||
push: | ||
branches: | ||
- main | ||
- releases/* | ||
- v2-preview | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
|
||
jobs: | ||
setup-java-publishing: | ||
name: Validate settings.xml | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
distribution: 'adopt' | ||
java-version: '11' | ||
server-id: maven | ||
server-username: MAVEN_USERNAME | ||
server-password: MAVEN_CENTRAL_TOKEN | ||
gpg-passphrase: MAVEN_GPG_PASSPHRASE | ||
- name: Validate settings.xml | ||
run: | | ||
$homePath = $env:USERPROFILE | ||
if (-not $homePath) { | ||
$homePath = $env:HOME | ||
} | ||
$xmlPath = Join-Path $homePath ".m2" "settings.xml" | ||
Get-Content $xmlPath | ForEach-Object { Write-Host $_ } | ||
[xml]$xml = Get-Content $xmlPath | ||
$servers = $xml.settings.servers.server | ||
if (($servers[0].id -ne 'maven') -or ($servers[0].username -ne '${env.MAVEN_USERNAME}') -or ($servers[0].password -ne '${env.MAVEN_CENTRAL_TOKEN}')) { | ||
throw "Generated XML file is incorrect" | ||
} | ||
if (($servers[1].id -ne 'gpg.passphrase') -or ($servers[1].passphrase -ne '${env.MAVEN_GPG_PASSPHRASE}')) { | ||
throw "Generated XML file is incorrect" | ||
} | ||
shell: pwsh | ||
|
||
test-publishing-custom-location: | ||
name: Validate settings.xml in custom location | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
distribution: 'adopt' | ||
java-version: '11' | ||
server-id: maven | ||
server-username: MAVEN_USERNAME | ||
server-password: MAVEN_CENTRAL_TOKEN | ||
gpg-passphrase: MAVEN_GPG_PASSPHRASE | ||
settings-path: ${{ runner.temp }} | ||
- name: Validate settings.xml location | ||
run: | | ||
$path = Join-Path $env:RUNNER_TEMP "settings.xml" | ||
if (-not (Test-Path $path)) { | ||
throw "settings.xml file is not found in expected location" | ||
} | ||
shell: pwsh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,166 @@ | ||
name: Validate Java e2e | ||
on: | ||
push: | ||
branches: | ||
- main | ||
- releases/* | ||
- v2-preview | ||
paths-ignore: | ||
- '**.md' | ||
pull_request: | ||
paths-ignore: | ||
- '**.md' | ||
|
||
jobs: | ||
setup-java-major-versions: | ||
name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
distribution: ['adopt', 'zulu'] | ||
version: ['8', '11', '15'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
java-version: ${{ matrix.version }} | ||
distribution: ${{ matrix.distribution }} | ||
- name: Verify Java | ||
run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||
shell: bash | ||
|
||
setup-java-major-minor-versions: | ||
name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} | ||
needs: setup-java-major-versions | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [macos-latest, windows-latest, ubuntu-latest] | ||
distribution: ['adopt', 'zulu'] | ||
version: | ||
- '11.0' | ||
- '8.0.282' | ||
- '11.0.2+7' | ||
include: | ||
- distribution: 'adopt' | ||
version: '12.0.2+10.1' | ||
os: macos-latest | ||
- distribution: 'adopt' | ||
version: '12.0.2+10.1' | ||
os: windows-latest | ||
- distribution: 'adopt' | ||
version: '12.0.2+10.1' | ||
os: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
java-version: ${{ matrix.version }} | ||
distribution: ${{ matrix.distribution }} | ||
- name: Verify Java | ||
run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||
shell: bash | ||
|
||
setup-java-ea-versions-zulu: | ||
name: zulu ${{ 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', '15.0.0-ea.14'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
java-version: ${{ matrix.version }} | ||
distribution: zulu | ||
|
||
setup-java-ea-versions-adopt: | ||
name: adopt ${{ 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', '15.0.0-ea.14.1.202003160455'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
java-version: ${{ matrix.version }} | ||
distribution: adopt | ||
|
||
setup-java-custom-package-type: | ||
name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-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] | ||
distribution: ['adopt', 'zulu'] | ||
java-package: ['jre'] | ||
version: | ||
- '15.0' | ||
include: | ||
- distribution: 'zulu' | ||
java-package: jre+fx | ||
version: '8' | ||
os: ubuntu-latest | ||
- distribution: 'zulu' | ||
java-package: jdk+fx | ||
version: '8.0.242' | ||
os: ubuntu-latest | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
java-version: ${{ matrix.version }} | ||
java-package: ${{ matrix.java-package }} | ||
distribution: ${{ matrix.distribution }} | ||
- name: Verify Java | ||
run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | ||
shell: bash | ||
|
||
setup-java-custom-architecture: | ||
name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-x86) - ${{ matrix.os }} | ||
needs: setup-java-major-minor-versions | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
# Only Zulu provides x86 arch for now and only for windows / ubuntu | ||
os: [windows-latest, ubuntu-latest] | ||
distribution: ['zulu'] | ||
version: ['11'] | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
- name: setup-java | ||
uses: ./ | ||
id: setup-java | ||
with: | ||
distribution: ${{ matrix.distribution }} | ||
java-version: ${{ matrix.version }} | ||
architecture: x86 |
Oops, something went wrong.