Skip to content

Daily Build

Daily Build #1233

Workflow file for this run

name: "Daily Build"
on:
workflow_dispatch:
schedule:
- cron: '0 23 * * *'
jobs:
quarkus-main-build:
name: Quarkus main build
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 17 ]
steps:
- uses: actions/checkout@v4
- 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@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Build Quarkus main
run: |
git clone https://github.com/quarkusio/quarkus.git && cd quarkus && ./mvnw -B -s .github/mvn-settings.xml clean install -Dquickly -Dno-test-modules -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-released:
name: Daily - Linux - JVM build - Released Versions
runs-on: ubuntu-latest
strategy:
matrix:
quarkus-version: ["current"]
java: [ 17, 21 ]
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Build
run: |
MAVEN_PROFILES="-Pframework,examples"
if [[ "${{ matrix.quarkus-version }}" != current ]]; then
QUARKUS_VERSION="-Dquarkus.platform.version=${{ matrix.quarkus-version }}"
fi
mvn -B -fae -s .github/mvn-settings.xml clean install -Dvalidate-format $QUARKUS_VERSION $EXCLUDE_MODULES
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}
path: artifacts-quarkus${{ matrix.quarkus-version }}-linux-jvm${{ matrix.java }}.zip
linux-build-jvm-latest:
name: Daily - Linux - JVM build - Latest Version
runs-on: ubuntu-latest
needs: quarkus-main-build
strategy:
matrix:
quarkus-version: ["999-SNAPSHOT"]
java: [ 17, 21 ]
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
id: install-jdk
- 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 ~
# - uses: engineerd/setup-kind@v0.5.0
# with:
# version: "v0.11.1"
# - name: Configure Load Balancer
# run: .github/configure-load-balancer.sh kind
# - name: Login to Docker Registry
# uses: docker/login-action@v1
# with:
# registry: ${{ secrets.CI_REGISTRY }}
# username: ${{ secrets.CI_REGISTRY_USERNAME }}
# password: ${{ secrets.CI_REGISTRY_PASSWORD }}
- name: Build Quarkus CLI
run: |
git clone https://github.com/quarkusio/quarkus.git && cd quarkus/devtools/cli && mvn -B -s ../../../.github/mvn-settings.xml clean install -Dquickly -Dno-test-modules -Prelocations
- name: Install Quarkus CLI
run: |
cat <<EOF > ./quarkus-dev-cli
#!/bin/bash
java -jar $PWD/quarkus/devtools/cli/target/quarkus-cli-999-SNAPSHOT-runner.jar "\$@"
EOF
chmod +x ./quarkus-dev-cli
./quarkus-dev-cli version
- name: Build
run: |
mvn -B -fae -s .github/mvn-settings.xml clean install -Pframework,examples,coverage -Dvalidate-format -Drun-cli-tests -Dts.container.registry-url=${{ secrets.CI_REGISTRY }} -Dts.quarkus.cli.cmd="${PWD}/quarkus-dev-cli" -Dquarkus.platform.version="${{ matrix.quarkus-version }}"
- name: Generate Jacoco Report
run: |
cd coverage-report
mvn -B package
- name: Generate Jacoco Badge
id: jacoco
uses: cicirello/jacoco-badge-generator@v2
with:
generate-branches-badge: true
jacoco-csv-file: coverage-report/target/site/jacoco/jacoco.csv
- name: Coverage Preparation
id: coverage
run: |
echo "coverage = ${{ steps.jacoco.outputs.coverage }}"
if [[ `git status | grep .svg | wc -l` > 0 ]]; then
echo "needs-commit-badge=true" >> $GITHUB_OUTPUT
else
echo "needs-commit-badge=false" >> $GITHUB_OUTPUT
fi
- name: Commit the badge (if it changed)
if: steps.coverage.outputs.needs-commit-badge == 'true'
run: |
git config --global user.name 'QuarkusQE'
git config --global user.email 'QuarkusQE@users.noreply.github.com'
git add *.svg
git commit -m "Autogenerated JaCoCo coverage badge"
- name: Push the badge (if it changed)
if: steps.coverage.outputs.needs-commit-badge == 'true'
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
force: true
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-latest-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-latest-linux-jvm${{ matrix.java }}
path: artifacts-latest-linux-jvm${{ matrix.java }}.zip
- name: Archive Coverage Report
uses: actions/upload-artifact@v4
with:
name: ci-coverage${{ matrix.java }}
path: coverage-report/target/site/jacoco
retention-days: 1
linux-build-native:
name: Daily - Linux - Native build
runs-on: ubuntu-latest
needs: quarkus-main-build
strategy:
matrix:
quarkus-version: ["current", "999-SNAPSHOT"]
java: [ 17 ]
steps:
- uses: actions/checkout@v4
- name: Reclaim Disk Space
run: .github/ci-prerequisites.sh
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
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: Build
run: |
if [[ "${{ matrix.quarkus-version }}" != current ]]; then
QUARKUS_VERSION="-Dquarkus.platform.version=${{ matrix.quarkus-version }}"
fi
mvn -B -fae -s .github/mvn-settings.xml clean install -Pframework,examples,native $QUARKUS_VERSION $EXCLUDE_MODULES
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}
path: artifacts-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip
windows-build-jvm-latest:
name: Daily - Windows - JVM build - Latest Version
runs-on: windows-latest
needs: quarkus-main-build
strategy:
matrix:
java: [ 17, 21 ]
quarkus-version: ["999-SNAPSHOT"]
steps:
- uses: actions/checkout@v4
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
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: Build in JVM mode
shell: bash
run: |
mvn -B -fae -s .github/mvn-settings.xml clean install -Pframework,examples -Dquarkus.platform.version="${{ matrix.quarkus-version }}"
- name: Zip Artifacts
shell: bash
if: failure()
run: |
# Disambiguate windows find from cygwin find
/usr/bin/find . -name '*-reports/*' -type d | tar -czf artifacts-latest-windows-jvm${{ matrix.java }}.tar -T -
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-latest-windows-jvm${{ matrix.java }}
path: artifacts-latest-windows-jvm${{ matrix.java }}.tar
windows-build-native-latest:
name: Daily - Windows - Native build - Latest Version
runs-on: windows-latest
needs: quarkus-main-build
strategy:
matrix:
java: [ 17 ]
quarkus-version: ["999-SNAPSHOT"]
graalvm-version: ["mandrel-latest"]
graalvm-java: ["21"]
steps:
- uses: actions/checkout@v4
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java }}
check-latest: true
cache: 'maven'
- name: Download Sysinternals Handle program used for native race debugging
shell: pwsh
run: Invoke-WebRequest https://download.sysinternals.com/files/Handle.zip -OutFile .\handle.zip
- name: Unzip Sysinternals Handle
shell: pwsh
run: Expand-Archive .\handle.zip -DestinationPath .
- 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: Install cl.exe
uses: ilammy/msvc-dev-cmd@v1
- uses: microsoft/setup-msbuild@v2
- name: Setup GraalVM
id: setup-graalvm
uses: graalvm/setup-graalvm@v1
with:
version: ${{ matrix.graalvm-version }}
java-version: ${{ matrix.graalvm-java }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Configure Pagefile
# Increased the page-file size due to memory-consumption of native-image command
# For details see https://github.com/actions/virtual-environments/issues/785
uses: al-cheb/configure-pagefile-action@v1.4
- name: Build in Native mode
shell: bash
run: |
mvn -B -fae -s .github/mvn-settings.xml clean install -Pframework,examples,native -Dquarkus.native.container-build=false -Dquarkus.platform.version="${{ matrix.quarkus-version }}" -Denable-win-race-debug=true
- name: Zip Artifacts
shell: bash
if: failure()
run: |
# Disambiguate windows find from cygwin find
/usr/bin/find . -name '*-reports/*' -type d | tar -czf artifacts-latest-windows-native${{ matrix.java }}.tar -T -
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-latest-windows-native${{ matrix.java }}
path: artifacts-latest-windows-native${{ matrix.java }}.tar
# kubernetes-build-native-latest:
# name: Daily - Kubernetes - Native build - Latest Version
# runs-on: ubuntu-latest
# needs: [ quarkus-main-build, linux-build-jvm-latest ]
# strategy:
# matrix:
# quarkus-version: ["999-SNAPSHOT"]
# java: [ 17 ]
# steps:
# - uses: actions/checkout@v4
# - name: Reclaim Disk Space
# run: .github/ci-prerequisites.sh
# - name: Install JDK {{ matrix.java }}
# uses: actions/setup-java@v4
# with:
# distribution: 'temurin'
# java-version: ${{ matrix.java }}
# check-latest: true
# cache: 'maven'
# - uses: engineerd/setup-kind@v0.5.0
# with:
# version: "v0.11.1"
# - name: Configure Load Balancer
# run: .github/configure-load-balancer.sh kind
# - name: Login to Docker Registry
# uses: docker/login-action@v1
# with:
# registry: ${{ secrets.CI_REGISTRY }}
# username: ${{ secrets.CI_REGISTRY_USERNAME }}
# password: ${{ secrets.CI_REGISTRY_PASSWORD }}
# - 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: Build
# run: |
# if [[ "${{ matrix.quarkus-version }}" = 1.* ]]; then
# EXCLUDE_MODULES="-pl !examples/grpc"
# fi
# mvn -B -fae -s .github/mvn-settings.xml clean install -Pframework,examples,kubernetes,native -Dts.container.registry-url=${{ secrets.CI_REGISTRY }} -Dquarkus.platform.version="${{ matrix.quarkus-version }}" $EXCLUDE_MODULES
# - name: Zip Artifacts
# if: failure()
# run: |
# zip -R artifacts-k8s-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip '*-reports/*'
# - name: Archive artifacts
# if: failure()
# uses: actions/upload-artifact@v4
# with:
# name: ci-artifacts
# path: artifacts-k8s-native-${{ matrix.quarkus-version }}-${{ matrix.java }}.zip