Skip to content

Validate Java e2e

Validate Java e2e #271

Workflow file for this run

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