Skip to content

Raise native image Xmx to 7g in GitHub workflows testing native mode as build-time RSS increased due to upstream changes #1007

Raise native image Xmx to 7g in GitHub workflows testing native mode as build-time RSS increased due to upstream changes

Raise native image Xmx to 7g in GitHub workflows testing native mode as build-time RSS increased due to upstream changes #1007

Workflow file for this run

name: "Pull Request Build"
on:
- pull_request
jobs:
quarkus-main-build:
name: Quarkus Main build
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 17 ]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
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@v4
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 -Dno-test-modules
- 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:
name: PR - Linux - JVM build
runs-on: ubuntu-latest
needs: quarkus-main-build
strategy:
matrix:
java: [ 17 ]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
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 JDK {{ matrix.java }}
uses: actions/setup-java@v4
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 JVM mode
run: |
mvn -fae -V -B --no-transfer-progress -s .github/mvn-settings.xml -Dvalidate-format clean test
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-linux-jvm${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-linux-jvm${{ matrix.java }}
path: artifacts-linux-jvm${{ matrix.java }}.zip
linux-build-native:
name: PR - Linux - Native build
runs-on: ubuntu-latest
needs: quarkus-main-build
strategy:
matrix:
java: [ 17 ]
image: [ "ubi-quarkus-mandrel-builder-image:jdk-21"]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
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 JDK {{ matrix.java }}
uses: actions/setup-java@v4
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 ~
- id: files
uses: tj-actions/changed-files@v41.0.0
continue-on-error: true
- name: Test in Native mode
run: |
MODULES=$(find -name pom.xml | grep -v 002 | sed -e 's|pom.xml| |' | sed -e 's|./| |')
# Always run the module 003-quarkus-many-extensions
CHANGED="003-quarkus-many-extensions"
MODULES_ARG=""
for module in $MODULES
do
if [[ "${{ steps.files.outputs.all_changed_and_modified_files }}" =~ ("$module") ]] ; then
CHANGED=$(echo $CHANGED" "$module)
fi
done
MODULES_ARG="${CHANGED// /,}"
mvn -am -fae -V -B --no-transfer-progress -s .github/mvn-settings.xml -fae -pl $MODULES_ARG clean verify -Dnative \
-Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=4g \
-Dquarkus.native.builder-image=quay.io/quarkus/${{ matrix.image }}
- name: Zip Artifacts
if: failure()
run: |
zip -R artifacts-linux-native${{ matrix.java }}.zip '*-reports/*'
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-linux-native${{ matrix.java }}
path: artifacts-linux-native${{ matrix.java }}.zip
windows-build:
name: Windows - PR build
runs-on: windows-latest
needs: quarkus-main-build
strategy:
matrix:
java: [ 17 ]
graalvm-version: ["mandrel-latest"]
graalvm-java-version: [ "21" ]
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-
- name: Install JDK {{ matrix.java }}
uses: actions/setup-java@v4
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 JVM mode
shell: bash
run: |
mvn -fae -V -B --no-transfer-progress -s .github/mvn-settings.xml clean test
- name: Setup GraalVM
id: setup-graalvm
uses: graalvm/setup-graalvm@v1
with:
version: ${{ matrix.graalvm-version }}
java-version: ${{ matrix.graalvm-java-version }}
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Smoke Test in Native mode
shell: bash
run: |
mvn -V -B --no-transfer-progress -s .github/mvn-settings.xml -fae clean verify -Dnative \
-Dquarkus.native.native-image-xmx=6g \
-pl '003-quarkus-many-extensions'
- name: Zip Artifacts
shell: bash
if: failure()
run: |
# Disambiguate windows find from cygwin find
/usr/bin/find . -name '*-reports/*' -type d | tar -czf artifacts-windows${{ matrix.java }}.tar -T -
- name: Archive artifacts
if: failure()
uses: actions/upload-artifact@v4
with:
name: artifacts-windows${{ matrix.java }}
path: artifacts-windows${{ matrix.java }}.tar