[GithubActions] Change to use buildx everywhere

This commit is contained in:
Aaro Koivukangas
2026-07-23 11:17:16 +03:00
parent bb6e9d3317
commit 1f83e06dee
8 changed files with 127 additions and 131 deletions
+27 -15
View File
@@ -10,32 +10,44 @@ inputs:
required: false
description: 'Release version added to production builds'
default: ${{ github.sha }}
outputs:
image:
description: 'Image name provided by buildah action'
value: ${{ steps.build-image-action.outputs.image }}
tags:
description: 'Tag names provided by buildah action'
value: ${{ steps.build-image-action.outputs.tags }}
push:
required: false
description: Also push built image to toska registry
default: false
registry_password:
required: false
description: Password to quay.io registry
default: ''
runs:
using: composite
steps:
- uses: actions/checkout@v7
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build backend image
- name: Login to quay.io
if: ${{ inputs.push }}
uses: docker/login-action@v4
with:
registry: quay.io/toska
username: toska+github
password: ${{ inputs.registry_password }}
- name: 'Build image and export it'
id: build-image-action
uses: redhat-actions/buildah-build@v2
uses: docker/build-push-action@v7
with:
image: oodikone-backend
tags: ${{ inputs.environment }} ${{ github.sha }}
context: services
containerfiles: |
services/backend/Dockerfile
file: services/backend/Dockerfile
build-args: |
GIT_SHA=${{ github.sha }}
STAGING=${{ case(inputs.environment == 'staging', 'true', 'false') }}
BASE_PATH=${{ case(inputs.environment == 'staging', '/oodikone', '') }}
SENTRY_ENVIRONMENT=${{ inputs.environment }}
SENTRY_RELEASE=${{ inputs.release_version }}
push: ${{ inputs.push }}
tags: |
${{ inputs.environment }}
${{ github.sha }}
env:
DOCKER_BUILD_SUMMARY: false
+28 -14
View File
@@ -14,32 +14,40 @@ inputs:
required: false
description: 'Sentry url to send error logs to (only production, enforced)'
default: ''
outputs:
image:
description: 'Image name provided by buildah action'
value: ${{ steps.build-image-action.outputs.image }}
tags:
description: 'Tag names provided by buildah action'
value: ${{ steps.build-image-action.outputs.tags }}
push:
required: false
description: Also push built image to toska registry
default: false
registry_password:
required: false
description: Password to quay.io registry
default: ''
runs:
using: composite
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Login to quay.io
if: ${{ inputs.push }}
uses: docker/login-action@v4
with:
registry: quay.io/toska
username: toska+github
password: ${{ inputs.registry_password }}
- name: Get current time
id: get_current_time
shell: bash
run: echo "NOW=$(date --iso-8601=seconds)" >> $GITHUB_OUTPUT
- name: Build frontend image
- name: 'Build image and export it'
id: build-image-action
uses: redhat-actions/buildah-build@v2
uses: docker/build-push-action@v7
with:
image: oodikone-frontend
tags: ${{ inputs.environment }} ${{ github.sha }}
context: services
containerfiles: |
services/frontend/Dockerfile
file: services/frontend/Dockerfile
build-args: |
GIT_SHA=${{ github.sha }}
STAGING=${{ case(inputs.environment == 'staging', 'true', 'false') }}
@@ -48,3 +56,9 @@ runs:
SENTRY_RELEASE=${{ inputs.release_version }}
BUILT_AT=${{ steps.get_current_time.outputs.NOW }}
SENTRY_DSN=${{ case(inputs.environment == 'production', inputs.sentry_dns, '') }}
push: ${{ inputs.push }}
tags: |
${{ inputs.environment }}
${{ github.sha }}
env:
DOCKER_BUILD_SUMMARY: false
+27 -15
View File
@@ -10,31 +10,43 @@ inputs:
required: false
description: 'Release version added to production builds'
default: ${{ github.sha }}
outputs:
image:
description: 'Image name provided by buildah action'
value: ${{ steps.build-image-action.outputs.image }}
tags:
description: 'Tag names provided by buildah action'
value: ${{ steps.build-image-action.outputs.tags }}
push:
required: false
description: Also push built image to toska registry
default: false
registry_password:
required: false
description: Password to quay.io registry
default: ''
runs:
using: composite
steps:
- uses: actions/checkout@v7
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build scheduler image
- name: Login to quay.io
if: ${{ inputs.push }}
uses: docker/login-action@v4
with:
registry: quay.io/toska
username: toska+github
password: ${{ inputs.registry_password }}
- name: 'Build image and export it'
id: build-image-action
uses: redhat-actions/buildah-build@v2
uses: docker/build-push-action@v7
with:
image: updater-scheduler
tags: ${{ inputs.environment }} ${{ github.sha }}
context: updater/sis-updater-scheduler
containerfiles: |
updater/sis-updater-scheduler/Dockerfile
file: updater/sis-updater-scheduler/Dockerfile
build-args: |
GIT_SHA=${{ github.sha }}
STAGING=${{ case(inputs.environment == 'staging', 'true', 'false') }}
SENTRY_ENVIRONMENT=${{ inputs.environment }}
SENTRY_RELEASE=${{ inputs.release_version }}
push: ${{ inputs.push }}
tags: |
${{ inputs.environment }}
${{ github.sha }}
env:
DOCKER_BUILD_SUMMARY: false
+27 -15
View File
@@ -10,31 +10,43 @@ inputs:
required: false
description: 'Release version added to production builds'
default: ${{ github.sha }}
outputs:
image:
description: 'Image name provided by buildah action'
value: ${{ steps.build-image-action.outputs.image }}
tags:
description: 'Tag names provided by buildah action'
value: ${{ steps.build-image-action.outputs.tags }}
push:
required: false
description: Also push built image to toska registry
default: false
registry_password:
required: false
description: Password to quay.io registry
default: ''
runs:
using: composite
steps:
- uses: actions/checkout@v7
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v4
- name: Build worker image
- name: Login to quay.io
if: ${{ inputs.push }}
uses: docker/login-action@v4
with:
registry: quay.io/toska
username: toska+github
password: ${{ inputs.registry_password }}
- name: 'Build image and export it'
id: build-image-action
uses: redhat-actions/buildah-build@v2
uses: docker/build-push-action@v7
with:
image: updater-worker
tags: ${{ inputs.environment }} ${{ github.sha }}
context: updater/sis-updater-worker
containerfiles: |
updater/sis-updater-worker/Dockerfile
file: updater/sis-updater-worker/Dockerfile
build-args: |
GIT_SHA=${{ github.sha }}
STAGING=${{ case(inputs.environment == 'staging', 'true', 'false') }}
SENTRY_ENVIRONMENT=${{ inputs.environment }}
SENTRY_RELEASE=${{ inputs.release_version }}
push: ${{ inputs.push }}
tags: |
${{ inputs.environment }}
${{ github.sha }}
env:
DOCKER_BUILD_SUMMARY: false
+4 -18
View File
@@ -22,15 +22,8 @@ jobs:
with:
environment: 'production'
release_version: ${{ steps.extract_version.outputs.VERSION }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
release_frontend:
name: 'Build and release frontend'
@@ -50,15 +43,8 @@ jobs:
environment: 'production'
release_version: ${{ steps.extract_version.outputs.VERSION }}
sentry_dns: ${{ secrets.OODIKONE_FRONTEND_SENTRY_DSN }} # Used only in production
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
sentry_release_frontend:
name: 'Create Sentry release for frontend'
+8 -36
View File
@@ -37,15 +37,8 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
release_frontend:
name: 'Build and release frontend'
@@ -61,15 +54,8 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
release_updater_worker:
name: 'Build and release updater worker'
@@ -85,15 +71,8 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
release_updater_scheduler:
name: 'Build and release updater scheduler'
@@ -109,15 +88,8 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
report_success:
name: 'Report deployment success to the "oodikone_notifications" channel'
+2
View File
@@ -31,6 +31,7 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
push: false
build_frontend:
name: 'Build frontend'
@@ -42,6 +43,7 @@ jobs:
with:
environment: 'staging'
release_version: ${{ github.sha }}
push: false
# === Cache docker images ===
pull_docker_images:
+4 -18
View File
@@ -138,15 +138,8 @@ jobs:
with:
environment: 'production'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}
release_scheduler:
name: 'Build and release Updater scheduler'
@@ -161,12 +154,5 @@ jobs:
with:
environment: 'production'
release_version: ${{ github.sha }}
- name: Push to quay.io
uses: redhat-actions/push-to-registry@v2
with:
image: ${{ steps.build-image.outputs.image }}
tags: ${{ steps.build-image.outputs.tags }}
registry: quay.io/toska
username: toska+github
password: ${{ secrets.QUAY_IO_TOKEN }}
push: true
registry_password: ${{ secrets.QUAY_IO_TOKEN }}