mirror of
				https://gitea.com/actions/setup-java.git
				synced 2025-11-04 07:47:06 +00:00 
			
		
		
		
	* add support for dragonwell * fix: update logic of parsing json file, refactor code * build: rebuild action * chore: update error message * build: rebuild action * tests: fix unit tests, add e2e tests * chore: prettier, lint and rebuild solution * feat: add check for the package type, update unit tests * tests: update e2e tests * tests: remove excess entries from e2e tests * feat: update logic of getting json file * feat: add logic for backuping getting json * chore: update wordings * chore: fix typos, add additional logs * fix: fix review points * chore: rebuild solution * chore: update wordings * chore: refactor code --------- Co-authored-by: Ivan Zosimov <ivanzosimov@github.com> Co-authored-by: Ivan <98037481+IvanZosimov@users.noreply.github.com>
		
			
				
	
	
		
			379 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			379 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
name: Validate Java e2e
 | 
						|
 | 
						|
on:
 | 
						|
  push:
 | 
						|
    branches:
 | 
						|
      - main
 | 
						|
      - releases/*
 | 
						|
    paths-ignore:
 | 
						|
      - '**.md'
 | 
						|
  pull_request:
 | 
						|
    paths-ignore:
 | 
						|
      - '**.md'
 | 
						|
  schedule:
 | 
						|
    - cron: '0 */12 * * *'
 | 
						|
  workflow_dispatch:
 | 
						|
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: [
 | 
						|
            'temurin',
 | 
						|
            'adopt',
 | 
						|
            'adopt-openj9',
 | 
						|
            'zulu',
 | 
						|
            'liberica',
 | 
						|
            'microsoft',
 | 
						|
            'semeru',
 | 
						|
            'corretto',
 | 
						|
            'dragonwell'
 | 
						|
          ] # internally 'adopt-hotspot' is the same as 'adopt'
 | 
						|
        version: ['8', '11', '17']
 | 
						|
        exclude:
 | 
						|
          - distribution: microsoft
 | 
						|
            version: 8
 | 
						|
          - distribution: dragonwell
 | 
						|
            os: macos-latest
 | 
						|
        include:
 | 
						|
          - distribution: oracle
 | 
						|
            os: macos-latest
 | 
						|
            version: 17
 | 
						|
          - distribution: oracle
 | 
						|
            os: windows-latest
 | 
						|
            version: 20
 | 
						|
          - distribution: oracle
 | 
						|
            os: ubuntu-latest
 | 
						|
            version: 20
 | 
						|
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - 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: ['temurin', 'zulu', 'liberica']
 | 
						|
        version:
 | 
						|
          - '11.0'
 | 
						|
          - '8.0.302'
 | 
						|
          - '17.0.7+7'
 | 
						|
        include:
 | 
						|
          - distribution: oracle
 | 
						|
            os: ubuntu-latest
 | 
						|
            version: '20.0.1'
 | 
						|
          - distribution: dragonwell
 | 
						|
            os: ubuntu-latest
 | 
						|
            version: '11.0'
 | 
						|
          - distribution: dragonwell
 | 
						|
            os: ubuntu-latest
 | 
						|
            version: '11.0.13+9'
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - 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 }}
 | 
						|
    needs: setup-java-major-versions
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['temurin', 'zulu', 'liberica', 'dragonwell']
 | 
						|
        exclude:
 | 
						|
          - distribution: dragonwell
 | 
						|
            os: macos-latest
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version: 11
 | 
						|
          check-latest: true
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 | 
						|
 | 
						|
  setup-java-multiple-jdks:
 | 
						|
    name: ${{ matrix.distribution }} ${{ matrix.version }} - multiple jdks - ${{ matrix.os }}
 | 
						|
    needs: setup-java-major-versions
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['temurin', 'zulu', 'liberica', 'dragonwell']
 | 
						|
        exclude:
 | 
						|
          - distribution: dragonwell
 | 
						|
            os: macos-latest
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version: |
 | 
						|
            11
 | 
						|
            17
 | 
						|
      - name: Verify Java env variables
 | 
						|
        run: |
 | 
						|
          $versionsArr = "11","17"
 | 
						|
          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 "17" "${{ 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@v3
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          java-version: ${{ matrix.version }}
 | 
						|
          distribution: zulu
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 | 
						|
 | 
						|
  setup-java-ea-versions-temurin:
 | 
						|
    name: temurin ${{ 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']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          java-version: ${{ matrix.version }}
 | 
						|
          distribution: temurin
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "${{ matrix.version }}" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 | 
						|
 | 
						|
  setup-java-custom-package-type:
 | 
						|
    name: ${{ matrix.distribution }} ${{ matrix.version }} (${{ matrix.java-package }}-x64) - ${{ matrix.os }}
 | 
						|
    needs: setup-java-major-minor-versions
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['temurin', 'zulu', 'liberica', 'semeru']
 | 
						|
        java-package: ['jre']
 | 
						|
        version: ['17.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
 | 
						|
          - distribution: 'liberica'
 | 
						|
            java-package: jdk+fx
 | 
						|
            version: '8'
 | 
						|
            os: ubuntu-latest
 | 
						|
          - distribution: 'liberica'
 | 
						|
            java-package: jre+fx
 | 
						|
            version: '11'
 | 
						|
            os: ubuntu-latest
 | 
						|
          - distribution: 'corretto'
 | 
						|
            java-package: jre
 | 
						|
            version: '8'
 | 
						|
            os: windows-latest
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - 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
 | 
						|
 | 
						|
  # Only Liberica and Zulu provide x86
 | 
						|
  setup-java-x86:
 | 
						|
    name: ${{ matrix.distribution }} ${{ matrix.version }} (jdk-${{ matrix.architecture }}) - ${{ matrix.os }}
 | 
						|
    needs: setup-java-major-minor-versions
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        # x86 is not supported on macOS
 | 
						|
        os: [windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['liberica', 'zulu', 'corretto']
 | 
						|
        version: ['11']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version: ${{ matrix.version }}
 | 
						|
          architecture: 'x86'
 | 
						|
      - 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: ${{ matrix.distribution }} version (should be from input) - ${{ matrix.os }}
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['temurin', 'microsoft', 'corretto']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: Create .java-version file
 | 
						|
        shell: bash
 | 
						|
        run: echo "8" > .java-version
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version: 11
 | 
						|
          java-version-file: '.java-version'
 | 
						|
      - 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: ${{ matrix.distribution }} version from file X - ${{ matrix.os }}
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['temurin', 'zulu', 'liberica', 'microsoft', 'corretto']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: Create .java-version file
 | 
						|
        shell: bash
 | 
						|
        run: echo "11" > .java-version
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version-file: '.java-version'
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "11" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 | 
						|
 | 
						|
  setup-java-version-from-file-major-minor-patch-notation:
 | 
						|
    name: ${{ matrix.distribution }} version from file X.Y.Z - ${{ matrix.os }}
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['adopt', 'adopt-openj9', 'zulu']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: Create .java-version file
 | 
						|
        shell: bash
 | 
						|
        run: echo "11.0.2" > .java-version
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version-file: '.java-version'
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 | 
						|
 | 
						|
  setup-java-version-from-file-major-minor-patch-with-dist:
 | 
						|
    name: ${{ matrix.distribution }} version from file 'openjdk64-11.0.2' - ${{ matrix.os }}
 | 
						|
    runs-on: ${{ matrix.os }}
 | 
						|
    strategy:
 | 
						|
      fail-fast: false
 | 
						|
      matrix:
 | 
						|
        os: [macos-latest, windows-latest, ubuntu-latest]
 | 
						|
        distribution: ['adopt', 'zulu', 'liberica']
 | 
						|
    steps:
 | 
						|
      - name: Checkout
 | 
						|
        uses: actions/checkout@v3
 | 
						|
      - name: Create .java-version file
 | 
						|
        shell: bash
 | 
						|
        run: echo "openjdk64-11.0.2" > .java-version
 | 
						|
      - name: setup-java
 | 
						|
        uses: ./
 | 
						|
        id: setup-java
 | 
						|
        with:
 | 
						|
          distribution: ${{ matrix.distribution }}
 | 
						|
          java-version-file: '.java-version'
 | 
						|
      - name: Verify Java
 | 
						|
        run: bash __tests__/verify-java.sh "11.0.2" "${{ steps.setup-java.outputs.path }}"
 | 
						|
        shell: bash
 |