Skip to content

JDK specifics CI

JDK specifics CI #815

Workflow file for this run

name: "JDK specifics CI"
on:
pull_request:
workflow_dispatch:
schedule:
- cron: '0 20 * * *'
jobs:
build-dependencies:
name: Build Dependencies
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: [ 17 ]
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install required tools
run: |
sudo apt update && sudo apt install pigz
- name: Install JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
- name: Build Quarkus main
run: |
git clone https://github.com/quarkusio/quarkus.git && cd quarkus && ./mvnw -B --no-transfer-progress -s .github/mvn-settings.xml clean install -Dquickly -Prelocations
- name: Tar Maven Repo
shell: bash
run: tar -I 'pigz -9' -cf maven-repo.tgz -C ~ .m2/repository
- name: Persist Maven Repo
uses: actions/upload-artifact@v4
with:
name: maven-repo
path: maven-repo.tgz
retention-days: 1
linux-build-jvm-latest:
name: Linux - JVM build - Latest Version
runs-on: ubuntu-latest
timeout-minutes: 60
needs: build-dependencies
strategy:
matrix:
java: [ 17, 21 ]
steps:
- uses: actions/checkout@v3
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Validate format
run: |
mvn -V -B --no-transfer-progress -s .github/mvn-settings.xml verify -Dvalidate-format -DskipTests -DskipITs
- name: Build with Maven
run: mvn -fae -V -B --no-transfer-progress -s .github/mvn-settings.xml clean verify
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-latest-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ci-artifacts
path: artifacts-latest-linux-jvm${{ matrix.java }}.zip
linux-build-native-latest:
name: Linux - Native build - Latest Version
runs-on: ubuntu-latest
needs: build-dependencies
strategy:
matrix:
java: [ 17, 21 ]
steps:
- uses: actions/checkout@v3
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Set Profile and Mandrel Image
id: set-mandrel-image
run: |
if [[ ${{ matrix.java }} == 17 ]]; then
echo PROFILE=JDK17 >> $GITHUB_OUTPUT
echo MANDREL_IMAGE=ubi-quarkus-mandrel-builder-image:jdk-21 >> $GITHUB_OUTPUT
else
echo PROFILE=JDK21 >> $GITHUB_OUTPUT
echo MANDREL_IMAGE=ubi-quarkus-mandrel-builder-image:jdk-21 >> $GITHUB_OUTPUT
fi
- name: Install JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: ${{ matrix.java }}
- name: Download Maven Repo
uses: actions/download-artifact@v4
with:
name: maven-repo
path: .
- name: Extract Maven Repo
shell: bash
run: tar -xzf maven-repo.tgz -C ~
- name: Test in Native mode
run: |
mvn -fae -V -B --no-transfer-progress -s .github/mvn-settings.xml -P ${{ steps.set-mandrel-image.outputs.PROFILE }} clean verify -Dnative \
-Dquarkus.native.builder-image=quay.io/quarkus/${{ steps.set-mandrel-image.outputs.MANDREL_IMAGE }}
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-native${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: ci-artifacts
path: artifacts-native${{ matrix.java }}.zip