From 6343430b0c1a4e7217d82d9725d33636c40ac254 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Chris=20Suszy=C5=84ski?= Date: Wed, 19 Apr 2023 20:46:18 +0200 Subject: [PATCH] Support for UBI 8 and 9 --- .github/workflows/build-images.yml | 32 ++++++++++++++++++++------ .github/workflows/push-images.yml | 33 +++++++++++++++++++++------ pom.xml | 15 ++++++++---- quarkus-binary-s2i/pom.xml | 2 +- quarkus-graalvm-builder-image/pom.xml | 2 +- quarkus-mandrel-builder-image/pom.xml | 2 +- quarkus-micro-base-image/pom.xml | 2 +- quarkus-native-s2i/pom.xml | 2 +- 8 files changed, 67 insertions(+), 23 deletions(-) diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml index 7d0a721f..ee51791d 100644 --- a/.github/workflows/build-images.yml +++ b/.github/workflows/build-images.yml @@ -18,6 +18,9 @@ jobs: strategy: fail-fast: false matrix: + ubi: + - "default" + - "9.1" include: - name: "base images" modules: "quarkus-distroless-base-image,quarkus-micro-base-image" @@ -39,23 +42,32 @@ jobs: args: "-Polder-graalvm" steps: - - run: | + - id: prepare + run: | # Re-claim some disk space sudo swapoff -a sudo rm -f /swapfile sudo apt-get clean - docker rmi $(docker image ls -aq) + docker image ls -aq | xargs -r docker rmi df -h - - uses: actions/checkout@v1 + + # Set up UBI params + if [ "${{ matrix.ubi }}" != "default" ]; then + IFS='.' read -r ubi_major ubi_minor <<< "${{ matrix.ubi }}" + echo "ubi-args='-Dubi.tag=ubi${ubi_major} -Dubi.rel.major=${ubi_major} -Dubi.rel.minor=${ubi_minor}'" >> "$GITHUB_OUTPUT" + else + echo "ubi-args=" >> "$GITHUB_OUTPUT" + fi + - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '17' - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 with: install: true - name: Inspect builder @@ -65,8 +77,14 @@ jobs: echo "Status: ${{ steps.buildx.outputs.status }}" echo "Flags: ${{ steps.buildx.outputs.flags }}" echo "Platforms: ${{ steps.buildx.outputs.platforms }}" - - name: Build ${{ matrix.name }} - run: mvn install --projects ${{ matrix.modules }} --also-make -DskipTests ${{ matrix.args }} + - name: Build ${{ matrix.name }} on ${{ matrix.ubi }} + run: + mvn install + --projects ${{ matrix.modules }} + --also-make + -DskipTests + ${{ matrix.args }} + ${{ steps.prepare.outputs.ubi-args }} - name: Print ${{ matrix.name}} if: always() run: docker images \ No newline at end of file diff --git a/.github/workflows/push-images.yml b/.github/workflows/push-images.yml index d87b736f..479f120f 100644 --- a/.github/workflows/push-images.yml +++ b/.github/workflows/push-images.yml @@ -13,6 +13,9 @@ jobs: strategy: fail-fast: false matrix: + ubi: + - "ubi8" + - "ubi9" include: - name: "base images" modules: "quarkus-distroless-base-image,quarkus-micro-base-image" @@ -33,23 +36,32 @@ jobs: modules: "quarkus-graalvm-builder-image" args: "-Polder-graalvm" steps: - - run: | + - id: prepare + run: | # Re-claim some disk space sudo swapoff -a sudo rm -f /swapfile sudo apt-get clean - docker rmi $(docker image ls -aq) + docker image ls -aq | xargs -r docker rmi df -h - - uses: actions/checkout@v1 + + # Set up UBI params + if [ "${{ matrix.ubi }}" != "default" ]; then + IFS='.' read -r ubi_major ubi_minor <<< "${{ matrix.ubi }}" + echo "ubi-args='-Dubi.tag=ubi${ubi_major} -Dubi.rel.major=${ubi_major} -Dubi.rel.minor=${ubi_minor}'" >> "$GITHUB_OUTPUT" + else + echo "ubi-args=" >> "$GITHUB_OUTPUT" + fi + - uses: actions/checkout@v3 - uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '17' - name: Set up QEMU - uses: docker/setup-qemu-action@v1 + uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx id: buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 with: install: true - name: Inspect builder @@ -65,8 +77,15 @@ jobs: registry: quay.io username: ${{ secrets.QUAY_USER }} password: ${{ secrets.QUAY_TOKEN }} - - name: Build images - run: mvn install --projects ${{ matrix.modules }} --also-make -DskipTests -Ppush ${{ matrix.args }} + - name: Build images on ${{ matrix.ubi }} + run: + mvn install + --projects ${{ matrix.modules }} + --also-make + -DskipTests + -Ppush + ${{ matrix.args }} + ${{ steps.prepare.outputs.ubi-args }} - name: Print ${{ matrix.name}} if: always() run: | diff --git a/pom.xml b/pom.xml index 8666f940..3e2184e8 100644 --- a/pom.xml +++ b/pom.xml @@ -33,10 +33,17 @@ 17 17 - - registry.access.redhat.com/ubi8/ubi-minimal:8.7 - - registry.access.redhat.com/ubi8-micro:8.7 + + ubi + ${ubi.rel.major}.${ubi.rel.minor} + + + + 8 + 7 + + registry.access.redhat.com/ubi${ubi.rel.major}/ubi-minimal:${ubi.release} + registry.access.redhat.com/ubi${ubi.rel.major}-micro:${ubi.release} false diff --git a/quarkus-binary-s2i/pom.xml b/quarkus-binary-s2i/pom.xml index f3157822..d39d0008 100644 --- a/quarkus-binary-s2i/pom.xml +++ b/quarkus-binary-s2i/pom.xml @@ -33,7 +33,7 @@ --dockerfile-dir=${project.basedir}/target/docker --ubi-minimal=${ubi-min.base} - --out=quay.io/quarkus/ubi-quarkus-native-binary-s2i:2.0 + --out=quay.io/quarkus/${ubi.tag}-quarkus-native-binary-s2i:2.0 --basedir=${project.basedir} --dry-run=${jdock.dry-run} diff --git a/quarkus-graalvm-builder-image/pom.xml b/quarkus-graalvm-builder-image/pom.xml index 4fe5491b..8959ee59 100644 --- a/quarkus-graalvm-builder-image/pom.xml +++ b/quarkus-graalvm-builder-image/pom.xml @@ -34,7 +34,7 @@ --dockerfile-dir=${project.basedir}/target/docker --ubi-minimal=${ubi-min.base} - --out=quay.io/quarkus/ubi-quarkus-graalvmce-builder-image + --out=quay.io/quarkus/${ubi.tag}-quarkus-graalvmce-builder-image --in=${images.file} --dry-run=${jdock.dry-run} diff --git a/quarkus-mandrel-builder-image/pom.xml b/quarkus-mandrel-builder-image/pom.xml index 04fad72a..c75771a4 100644 --- a/quarkus-mandrel-builder-image/pom.xml +++ b/quarkus-mandrel-builder-image/pom.xml @@ -34,7 +34,7 @@ --dockerfile-dir=${project.basedir}/target/docker --ubi-minimal=${ubi-min.base} - --out=quay.io/quarkus/ubi-quarkus-mandrel-builder-image + --out=quay.io/quarkus/${ubi.tag}-quarkus-mandrel-builder-image --in=${images.file} --dry-run=${jdock.dry-run} diff --git a/quarkus-micro-base-image/pom.xml b/quarkus-micro-base-image/pom.xml index 0d94940f..f36ab4ca 100644 --- a/quarkus-micro-base-image/pom.xml +++ b/quarkus-micro-base-image/pom.xml @@ -34,7 +34,7 @@ --dockerfile-dir=${pom.basedir}/target/docker --ubi-minimal=${ubi-min.base} --ubi-micro=${ubi-micro.base} - --out=quay.io/quarkus/quarkus-micro-image:2.0 + --out=quay.io/quarkus/${ubi.tag}-quarkus-micro-image:2.0 --dry-run=${jdock.dry-run} diff --git a/quarkus-native-s2i/pom.xml b/quarkus-native-s2i/pom.xml index 9f0c8b59..7a26d6cf 100644 --- a/quarkus-native-s2i/pom.xml +++ b/quarkus-native-s2i/pom.xml @@ -33,7 +33,7 @@ --dockerfile-dir=${project.basedir}/target/docker --ubi-minimal=${ubi-min.base} - --out=quay.io/quarkus/ubi-quarkus-graalvmce-s2i + --out=quay.io/quarkus/${ubi.tag}-quarkus-graalvmce-s2i --in=${project.basedir}/graalvm.yaml --basedir=${project.basedir} --dry-run=${jdock.dry-run}