Validate Java e2e #271
This file contains hidden or 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
| name: Validate Java e2e | |
| on: | |
| push: | |
| branches: | |
| - main | |
| - releases/* | |
| paths-ignore: | |
| - '**.md' | |
| pull_request: | |
| paths-ignore: | |
| - '**.md' | |
| schedule: | |
| - cron: '30 8 * * 2,4' | |
| workflow_dispatch: | |
| env: | |
| GLOBAL_LATEST_STR: "24.0.2" | |
| GLOBAL_LATEST_21: "8" | |
| GLOBAL_LATEST_17: "17.0.16" | |
| GLOBAL_LATEST_11: "25" | |
| jobs: | |
| setup-java-major-versions-jdk-x64: | |
| # name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} | |
| # https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners | |
| # x86_64: ubuntu-*, windows-*, macos-13, macos-12 | |
| # aarch64: macos-14, macos-15 (beta) | |
| name: 01a ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # os: [macos-latest, windows-latest, ubuntu-latest] | |
| os: [ubuntu-latest, ubuntu-22.04, windows-latest, windows-2019, macos-13 ] | |
| distribution: [ 'sapmachine' ] # internally 'adopt-hotspot' is the same as 'adopt' | |
| version: ['21', '17', '11', '24'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - 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-versions-jdk-aarch64: | |
| # name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-aarch64) - ${{ matrix.os }} | |
| # https://docs.github.com/en/actions/using-github-hosted-runners/using-github-hosted-runners/about-github-hosted-runners | |
| name: 01b ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| # os: [macos-latest, windows-latest, ubuntu-latest] | |
| os: [macos-latest, macos-14, macos-15 ] | |
| distribution: [ 'sapmachine' ] # internally 'adopt-hotspot' is the same as 'adopt' | |
| version: ['21', '17', '11', '24'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - 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 }} | |
| name: 02 ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} ${{ matrix.distribution }} | |
| # needs: setup-java-major-versions | |
| needs: setup-java-major-versions-jdk-x64 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| distribution: ['sapmachine'] | |
| version: | |
| - '21.0.8' | |
| - '17.0.16' | |
| - '11.0.28' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - 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-check-latest: | |
| # name: ${{ matrix.distribution }} ${{ matrix.version }} - check-latest flag - ${{ matrix.os }} | |
| name: 03 ${{ matrix.version }} - check-latest flag - ${{ matrix.os }} ${{ matrix.distribution }} | |
| # needs: setup-java-major-versions | |
| needs: setup-java-major-versions-jdk-x64 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| distribution: ['sapmachine'] | |
| version: ['21', '17', '11', '24'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version: ${{ matrix.version }} | |
| check-latest: true | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh ${{ matrix.version }} "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-multiple-jdks: | |
| # name: ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} | |
| name: 04 ${{ matrix.version }} - multiple jdks - ${{ matrix.os }} ${{ matrix.distribution }} | |
| # needs: setup-java-major-versions | |
| needs: setup-java-major-versions-jdk-x64 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| distribution: ['sapmachine'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version: | | |
| 17 | |
| 21 | |
| - name: Verify Java env variables | |
| run: | | |
| $versionsArr = "17","21" | |
| foreach ($version in $versionsArr) | |
| { | |
| $envName = "JAVA_HOME_${version}_${env:RUNNER_ARCH}" | |
| $JavaVersionPath = [Environment]::GetEnvironmentVariable($envName) | |
| if (-not (Test-Path "$JavaVersionPath")) { | |
| Write-Host "$envName is not found" | |
| exit 1 | |
| } | |
| } | |
| shell: pwsh | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh "21.0.5" "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-ea-versions-sapmachine: | |
| # name: sapmachine ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} | |
| name: 05 ${{ matrix.version }} (jdk-x64) - ${{ matrix.os }} sapmachine | |
| needs: setup-java-major-minor-versions | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-13, windows-latest, ubuntu-latest] | |
| version: ['17-ea', '21-ea', '25-ea', '26-ea'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| java-version: ${{ matrix.version }} | |
| distribution: sapmachine | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-custom-package-type: | |
| # name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} | |
| name: 06 ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }} ${{ matrix.distribution }} | |
| needs: setup-java-major-minor-versions | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-13, windows-latest, ubuntu-latest] | |
| distribution: ['sapmachine'] | |
| java-package: ['jre'] | |
| version: ['17.0'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - 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-version-both-version-inputs-presents: | |
| # name: ig ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }} | |
| name: 07 version (should be from input) - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| # distribution: ['temurin', 'microsoft', 'corretto'] | |
| distribution: ['sapmachine'] | |
| java-version-file: ['.java-version', '.tool-versions'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Create .java-version file | |
| shell: bash | |
| run: echo "17" > .java-version | |
| - name: Create .tool-versions file | |
| shell: bash | |
| run: echo "java 17" > .tool-versions | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version: 11 | |
| java-version-file: ${{matrix.java-version-file }} | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-version-from-file-major-notation: | |
| # name: ig ${{ matrix.distribution }} version from file X - ${{ matrix.os }} | |
| name: 08 version from file X - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| # distribution: ['temurin', 'zulu', 'liberica', 'microsoft', 'corretto'] | |
| distribution: ['sapmachine'] | |
| java-version-file: ['.java-version', '.tool-versions'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Create .java-version file | |
| shell: bash | |
| run: echo "21" > .java-version | |
| - name: Create .tool-versions file | |
| shell: bash | |
| run: echo "java 21" > .tool-versions | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version-file: ${{matrix.java-version-file }} | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh $GLOBAL_LATEST_21 "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-version-from-file-major-minor-patch-notation: | |
| # name: ig ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }} | |
| name: 09 version from file X.Y.Z - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| # distribution: ['adopt', 'adopt-openj9', 'zulu'] | |
| distribution: ['sapmachine'] | |
| java-version-file: ['.java-version', '.tool-versions'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Create .java-version file | |
| shell: bash | |
| run: echo "17.0.28" > .java-version | |
| - name: Create .tool-versions file | |
| shell: bash | |
| run: echo "java 17.0.28" > .tool-versions | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version-file: ${{matrix.java-version-file }} | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh "17.0.28" "${{ steps.setup-java.outputs.path }}" | |
| shell: bash | |
| setup-java-version-from-file-major-minor-patch-with-dist: | |
| # name: ig ${{ matrix.distribution }} version from file 'openjdk64-17.0.10' - ${{ matrix.os }} | |
| name: 10 version from file 'openjdk64-17.0.16' - ${{ matrix.os }} ${{ matrix.distribution }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-latest, windows-latest, ubuntu-latest] | |
| # distribution: ['adopt', 'zulu', 'liberica'] | |
| distribution: ['sapmachine'] | |
| java-version-file: ['.java-version', '.tool-versions'] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v5 | |
| - name: Create .java-version file | |
| shell: bash | |
| run: echo "openjdk64-17.0.16" > .java-version | |
| - name: Create .tool-versions file | |
| shell: bash | |
| run: echo "java openjdk64-17.0.16" > .tool-versions | |
| - name: setup-java | |
| uses: ./ | |
| id: setup-java | |
| with: | |
| distribution: ${{ matrix.distribution }} | |
| java-version-file: ${{matrix.java-version-file }} | |
| - name: Verify Java | |
| run: bash __tests__/verify-java.sh $GLOBAL_LATEST_17 "${{ steps.setup-java.outputs.path }}" | |
| shell: bash |