-
Notifications
You must be signed in to change notification settings - Fork 164
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use podman instead of docker for building and pushing images on main
- Loading branch information
Showing
1 changed file
with
27 additions
and
74 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -108,7 +108,7 @@ jobs: | |
- check-commit-count | ||
- calculate-modules | ||
if: (needs.check-commit-count.outputs.has_commits == 'true') && (needs.calculate-modules.outputs.projects_matrix != '[]') && (github.repository == 'quarkusio/quarkus-super-heroes') && (contains(fromJSON('["workflow_dispatch", "schedule"]'), github.event_name) || ((github.event_name == 'worflow_run') && ((github.event.workflow_run.event == 'push') || (github.event.workflow_run.event == 'workflow_dispatch') && (github.event.workflow_run.conclusion == 'success') && (github.event.workflow_run.head_branch == 'main')))) | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-24.04 | ||
strategy: | ||
matrix: | ||
java: | ||
|
@@ -149,40 +149,33 @@ jobs: | |
working-directory: .github/workflows/scripts | ||
run: echo "CONTAINER_TAG=$(./compute-container-tag.sh "" ${{ matrix.java }} ${{ env.LATEST_IMAGE_TAG }} ${{ needs.check-commit-count.outputs.branch }} "${{ matrix.project.openai-type }}")" >> $GITHUB_ENV | ||
|
||
- name: Set up QEMU | ||
if: matrix.arch == 'arm64' | ||
uses: docker/setup-qemu-action@v3 | ||
with: | ||
platforms: ${{ matrix.arch }} | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
with: | ||
install: true | ||
|
||
- name: Build JVM image (${{ matrix.project.name }}-java${{ matrix.java }}-${{ matrix.arch }}-${{ matrix.project.openai-type }}) | ||
working-directory: ${{ matrix.project.name }} | ||
run: | | ||
./mvnw -B quarkus:remove-extension -Dextension="quarkus-container-image-docker" && | ||
./mvnw -B quarkus:add-extension -Dextension="quarkus-container-image-podman" && | ||
./mvnw -B clean package -DskipTests \ | ||
-Dmaven.compiler.release=${{ matrix.java }} \ | ||
-Dquarkus.http.host=0.0.0.0 \ | ||
-Dquarkus.container-image.builder=podman \ | ||
-Dquarkus.container-image.build=true \ | ||
-Dquarkus.container-image.push=false \ | ||
-Dquarkus.container-image.tag=${{ env.CONTAINER_TAG }}-${{ matrix.arch }} \ | ||
-Dquarkus.docker.dockerfile-jvm-path=src/main/docker/${{ env.JVM_DOCKERFILE }} \ | ||
-Dquarkus.docker.buildx.platform=linux/${{ matrix.arch }} | ||
-Dquarkus.podman.dockerfile-jvm-path=src/main/docker/${{ env.JVM_DOCKERFILE }} \ | ||
-Dquarkus.podman.platform=linux/${{ matrix.arch }} | ||
- name: Save JVM Image (${{ matrix.project.name }}-java${{ matrix.java }}-${{ matrix.arch }}-${{ matrix.project.openai-type }}) | ||
uses: ishworkh/[email protected] | ||
with: | ||
image: "${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-${{ matrix.arch }}" | ||
container_engine: podman | ||
|
||
build-native-images: | ||
needs: | ||
- check-commit-count | ||
- calculate-modules | ||
if: (needs.check-commit-count.outputs.has_commits == 'true') && (needs.calculate-modules.outputs.projects_matrix != '[]') && (github.repository == 'quarkusio/quarkus-super-heroes') && (contains(fromJSON('["workflow_dispatch", "schedule"]'), github.event_name) || ((github.event_name == 'worflow_run') && ((github.event.workflow_run.event == 'push') || (github.event.workflow_run.event == 'workflow_dispatch') && (github.event.workflow_run.conclusion == 'success') && (github.event.workflow_run.head_branch == 'main')))) | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-24.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
|
@@ -215,44 +208,37 @@ jobs: | |
working-directory: .github/workflows/scripts | ||
run: echo "CONTAINER_TAG=$(./compute-container-tag.sh "native-" ${{ matrix.java.jvm }} ${{ env.LATEST_IMAGE_TAG }} ${{ needs.check-commit-count.outputs.branch }} "${{ matrix.project.openai-type }}")" >> $GITHUB_ENV | ||
|
||
- name: Set up QEMU | ||
if: matrix.arch == 'arm64' | ||
uses: docker/setup-qemu-action@v3 | ||
with: | ||
platforms: ${{ matrix.arch }} | ||
|
||
- name: Set up Docker Buildx | ||
uses: docker/setup-buildx-action@v3 | ||
with: | ||
install: true | ||
|
||
- name: Build native image (${{ matrix.project.name }}-java${{ matrix.java.jvm }}-${{ matrix.arch }}-${{ matrix.project.openai-type }}) | ||
working-directory: ${{ matrix.project.name }} | ||
run: | | ||
./mvnw -B quarkus:remove-extension -Dextension="quarkus-container-image-docker" && | ||
./mvnw -B quarkus:add-extension -Dextension="quarkus-container-image-podman" && | ||
./mvnw -B clean package -DskipTests -Pnative \ | ||
-Dmaven.compiler.release=${{ matrix.java.jvm }} \ | ||
-Dquarkus.http.host=0.0.0.0 \ | ||
-Dquarkus.native.container-build=true \ | ||
-Dquarkus.native.builder-image=${{ env.MANDREL_IMAGE }}:jdk-${{ matrix.java.mandrel }} \ | ||
-Dquarkus.native.container-runtime-options=--platform=linux/${{ matrix.arch }} \ | ||
-Dquarkus.container-image.builder=podman \ | ||
-Dquarkus.container-image.build=true \ | ||
-Dquarkus.container-image.push=false \ | ||
-Dquarkus.container-image.tag=${{ env.CONTAINER_TAG }}-${{ matrix.arch }} \ | ||
-Dquarkus.docker.buildx.platform=linux/${{ matrix.arch }} | ||
-Dquarkus.podman.platform=linux/${{ matrix.arch }} | ||
- name: Save native Image (${{ matrix.project.name }}-java${{ matrix.java.jvm }}-${{ matrix.arch }}-${{ matrix.project.openai-type }}) | ||
uses: ishworkh/[email protected] | ||
with: | ||
image: "${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-${{ matrix.arch }}" | ||
container_engine: podman | ||
|
||
push-app-images: | ||
create-app-multiarch-manifests: | ||
if: (needs.check-commit-count.outputs.has_commits == 'true') && (needs.calculate-modules.outputs.projects_matrix != '[]') && (github.repository == 'quarkusio/quarkus-super-heroes') && (contains(fromJSON('["workflow_dispatch", "schedule"]'), github.event_name) || ((github.event_name == 'worflow_run') && ((github.event.workflow_run.event == 'push') || (github.event.workflow_run.event == 'workflow_dispatch') && (github.event.workflow_run.conclusion == 'success') && (github.event.workflow_run.head_branch == 'main')))) | ||
needs: | ||
- check-commit-count | ||
- calculate-modules | ||
- build-jvm-images | ||
- build-native-images | ||
runs-on: ubuntu-latest | ||
runs-on: ubuntu-24.04 | ||
strategy: | ||
matrix: | ||
java: | ||
|
@@ -261,10 +247,7 @@ jobs: | |
- "" | ||
- "native-" | ||
project: ${{ fromJson(needs.calculate-modules.outputs.projects_matrix) }} | ||
arch: | ||
- amd64 | ||
- arm64 | ||
name: "Push app images (${{ matrix.arch }}-${{ matrix.project.name }}-${{ matrix.kind }}java${{ matrix.java }}-${{ matrix.project.openai-type }})" | ||
name: Create app multiarch manifests (${{ matrix.project.name }}-${{ matrix.kind }}java${{ matrix.java }}-${{ matrix.project.openai-type }}) | ||
steps: | ||
- name: Checkout from ${{ needs.check-commit-count.outputs.ref }} | ||
uses: actions/checkout@v4 | ||
|
@@ -275,47 +258,17 @@ jobs: | |
working-directory: .github/workflows/scripts | ||
run: echo "CONTAINER_TAG=$(./compute-container-tag.sh "${{ matrix.kind }}" ${{ matrix.java }} ${{ env.LATEST_IMAGE_TAG }} ${{ needs.check-commit-count.outputs.branch }} "${{ matrix.project.openai-type }}")" >> $GITHUB_ENV | ||
|
||
- name: Get saved images (${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-${{ matrix.arch }}) | ||
- name: Get saved image (${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-arm64) | ||
uses: ishworkh/[email protected] | ||
with: | ||
image: "${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-${{ matrix.arch }}" | ||
|
||
- name: Login to quay | ||
uses: docker/login-action@v3 | ||
with: | ||
registry: quay.io | ||
username: ${{ secrets.QUAY_REPO_USERNAME }} | ||
password: ${{ secrets.QUAY_REPO_TOKEN }} | ||
|
||
- name: Push images | ||
working-directory: ${{ matrix.project.name }} | ||
run: "docker push -a ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}" | ||
image: "${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-arm64" | ||
container_engine: podman | ||
|
||
create-app-multiarch-manifests: | ||
if: (needs.check-commit-count.outputs.has_commits == 'true') && (needs.calculate-modules.outputs.projects_matrix != '[]') && (github.repository == 'quarkusio/quarkus-super-heroes') && (contains(fromJSON('["workflow_dispatch", "schedule"]'), github.event_name) || ((github.event_name == 'worflow_run') && ((github.event.workflow_run.event == 'push') || (github.event.workflow_run.event == 'workflow_dispatch') && (github.event.workflow_run.conclusion == 'success') && (github.event.workflow_run.head_branch == 'main')))) | ||
needs: | ||
- check-commit-count | ||
- calculate-modules | ||
- push-app-images | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
java: | ||
- '17' | ||
kind: | ||
- "" | ||
- "native-" | ||
project: ${{ fromJson(needs.calculate-modules.outputs.projects_matrix) }} | ||
name: Create app multiarch manifests (${{ matrix.project.name }}-${{ matrix.kind }}java${{ matrix.java }}-${{ matrix.project.openai-type }}) | ||
steps: | ||
- name: Checkout from ${{ needs.check-commit-count.outputs.ref }} | ||
uses: actions/checkout@v4 | ||
- name: Get saved image (${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-amd64) | ||
uses: ishworkh/[email protected] | ||
with: | ||
ref: ${{ needs.check-commit-count.outputs.ref }} | ||
|
||
- name: Create CONTAINER_TAG | ||
working-directory: .github/workflows/scripts | ||
run: echo "CONTAINER_TAG=$(./compute-container-tag.sh "${{ matrix.kind }}" ${{ matrix.java }} ${{ env.LATEST_IMAGE_TAG }} ${{ needs.check-commit-count.outputs.branch }} "${{ matrix.project.openai-type }}")" >> $GITHUB_ENV | ||
image: "${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-amd64" | ||
container_engine: podman | ||
|
||
- name: Login to quay | ||
uses: docker/login-action@v3 | ||
|
@@ -326,10 +279,10 @@ jobs: | |
|
||
- name: Create and push multi-arch manifests | ||
run: | | ||
docker manifest create ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }} \ | ||
-a ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-amd64 \ | ||
-a ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-arm64 | ||
docker manifest push ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }} | ||
podman manifest create ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }} \ | ||
${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-amd64 \ | ||
${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }}-arm64 | ||
podman manifest push --all ${{ env.IMAGE_BASE_NAME }}/${{ matrix.project.name }}:${{ env.CONTAINER_TAG }} | ||
deploy-resources: | ||
if: (needs.check-commit-count.outputs.has_commits == 'true') && (github.repository == 'quarkusio/quarkus-super-heroes') && (contains(fromJSON('["workflow_dispatch", "schedule"]'), github.event_name) || ((github.event_name == 'worflow_run') && ((github.event.workflow_run.event == 'push') || (github.event.workflow_run.event == 'workflow_dispatch') && (github.event.workflow_run.conclusion == 'success') && (github.event.workflow_run.head_branch == 'main')))) | ||
|