diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml
index 8549bfe7..9df1c32e 100644
--- a/.github/workflows/build-images.yml
+++ b/.github/workflows/build-images.yml
@@ -1,4 +1,4 @@
-name: Continuous Integration Build
+name: Build
on:
pull_request:
@@ -7,37 +7,54 @@ on:
push:
paths-ignore:
- '.build/**'
+ deployment:
+ schedule:
+ - cron: '0 0 * * 0'
+ workflow_dispatch:
jobs:
build-images:
- name: Build images
+ name: Build and Push images
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
- ubi:
- - "default"
- - "9.1"
include:
- - name: "base images"
- modules: "quarkus-distroless-base-image,quarkus-micro-base-image"
- args: ""
- - name: "s2i images"
- modules: "quarkus-binary-s2i,quarkus-native-s2i"
- args: ""
- - name: "mandrel builder images"
- modules: "quarkus-mandrel-builder-image"
- args: ""
- - name: "mandrel builder images 21 and 22.0"
- modules: "quarkus-mandrel-builder-image"
- args: "-Polder-mandrel"
- - name: "graalvm ce builder images"
- modules: "quarkus-graalvm-builder-image"
- args: ""
- - name: "graalvm ce builder images 21 and 22.0"
- modules: "quarkus-graalvm-builder-image"
- args: "-Polder-graalvm"
+ # Distroless image
+ - modules: quarkus-distroless-base-image
+
+ # Default UBI base image
+ - modules: quarkus-micro-base-image
+ ubi: default
+ - modules: quarkus-binary-s2i,quarkus-native-s2i
+ ubi: default
+ - modules: quarkus-mandrel-builder-image
+ ubi: default
+ - modules: quarkus-mandrel-builder-image
+ args: -Polder-mandrel
+ ubi: default
+ - modules: quarkus-graalvm-builder-image
+ ubi: default
+ - modules: quarkus-graalvm-builder-image
+ args: -Polder-graalvm
+ ubi: default
+
+ # UBI 9 base image
+ - modules: quarkus-micro-base-image
+ ubi: "9.1"
+ - modules: quarkus-binary-s2i,quarkus-native-s2i
+ ubi: "9.1"
+ - modules: quarkus-mandrel-builder-image
+ ubi: "9.1"
+ - modules: quarkus-mandrel-builder-image
+ args: -Polder-mandrel
+ ubi: "9.1"
+ - modules: quarkus-graalvm-builder-image
+ ubi: "9.1"
+ - modules: quarkus-graalvm-builder-image
+ args: -Polder-graalvm
+ ubi: "9.1"
steps:
- id: prepare
@@ -50,12 +67,26 @@ jobs:
df -h
# Set up UBI params
- if [ "${{ matrix.ubi }}" != "default" ]; then
+ if [ -n "${{ matrix.ubi }}" ] && [ "${{ 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
+
+ # Should publish images?
+ publish_types=(deployment schedule workflow_dispatch)
+ inarray=$(echo ${publish_types[@]} | grep -o "${{ github.event_name }}" | wc -w)
+ if (( inarray )) || \
+ [ "${{ github.event_name }}" == "push" ] && \
+ [ "${{ github.repository }}" == 'quarkusio/quarkus-images' ] && \
+ [ "${{ github.ref }}" == 'main' ]; then
+ echo "publish=true" >> "$GITHUB_OUTPUT"
+ echo 'publish-args=-Ppush' >> "$GITHUB_OUTPUT
+ else
+ echo "publish=false" >> "$GITHUB_OUTPUT"
+ echo 'publish-args=' >> "$GITHUB_OUTPUT
+ fi
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with:
@@ -75,6 +106,15 @@ jobs:
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
+
+ - name: Login to GitHub Container Registry
+ if: ${{ steps.prepare.outputs.publish == 'true' }}
+ uses: docker/login-action@v2
+ with:
+ registry: quay.io
+ username: ${{ secrets.QUAY_USER }}
+ password: ${{ secrets.QUAY_TOKEN }}
+
- name: Build ${{ matrix.name }} on ${{ matrix.ubi }}
run:
mvn install
@@ -83,6 +123,7 @@ jobs:
-DskipTests
${{ matrix.args }}
${{ steps.prepare.outputs.ubi-args }}
+ ${{ steps.prepare.outputs.publish-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
deleted file mode 100644
index 0472b85d..00000000
--- a/.github/workflows/push-images.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-name: Push Images to Quay
-on:
- deployment:
- schedule:
- - cron: '0 0 * * 0'
- workflow_dispatch:
-
-jobs:
-
- build-images:
- name: Build and Push images
- runs-on: ubuntu-latest
- strategy:
- fail-fast: false
- matrix:
- ubi:
- - "ubi8"
- - "ubi9"
- include:
- - name: "base images"
- modules: "quarkus-distroless-base-image,quarkus-micro-base-image"
- args: ""
- - name: "s2i images"
- modules: "quarkus-binary-s2i,quarkus-native-s2i"
- args: ""
- - name: "mandrel builder images"
- modules: "quarkus-mandrel-builder-image"
- args: ""
- - name: "mandrel builder images 21 and 22.0"
- modules: "quarkus-mandrel-builder-image"
- args: "-Polder-mandrel"
- - name: "graalvm ce builder images"
- modules: "quarkus-graalvm-builder-image"
- args: ""
- - name: "graalvm ce builder images 21 and 22.0"
- modules: "quarkus-graalvm-builder-image"
- args: "-Polder-graalvm"
- steps:
- - id: prepare
- run: |
- # Re-claim some disk space
- sudo swapoff -a
- sudo rm -f /swapfile
- sudo apt-get clean
- docker image ls -aq | xargs -r docker rmi
- df -h
-
- # 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@v2
- - name: Set up Docker Buildx
- id: buildx
- uses: docker/setup-buildx-action@v2
- with:
- install: true
- - name: Inspect builder
- run: |
- echo "Name: ${{ steps.buildx.outputs.name }}"
- echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
- echo "Status: ${{ steps.buildx.outputs.status }}"
- echo "Flags: ${{ steps.buildx.outputs.flags }}"
- echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- - name: Login to GitHub Container Registry
- uses: docker/login-action@v2
- with:
- registry: quay.io
- username: ${{ secrets.QUAY_USER }}
- password: ${{ secrets.QUAY_TOKEN }}
- - 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: |
- df -h
- docker images
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 3e2184e8..9afaffdd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,15 +33,15 @@
17
17
-
- ubi
- ${ubi.rel.major}.${ubi.rel.minor}
-
8
7
+
+ ubi
+ ${ubi.rel.major}.${ubi.rel.minor}
+
registry.access.redhat.com/ubi${ubi.rel.major}/ubi-minimal:${ubi.release}
registry.access.redhat.com/ubi${ubi.rel.major}-micro:${ubi.release}