From 1fa2858d3a9e265741f3dfec11e598851d13e092 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 8 Jun 2026 21:05:01 +0000 Subject: [PATCH 1/6] Revert multi-arch build weirdness. --- .github/workflows/docker-publish.yml | 55 +++++++++++++--------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index ca8af91..48bb3d1 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -24,21 +24,14 @@ env: jobs: build: + # Iterates through each OS using a matrix strategy + # See https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs strategy: fail-fast: true matrix: os: [ 'ol8', 'el9', 'el10', 'u20', 'u22', 'u24', 'u26' ] - arch: [ 'amd64', 'arm64' ] - include: - # Intel Runner: Compiles native x86 AND safely triggers emulated tasks for supported OS versions - - arch: amd64 - runner: ubuntu-latest - platforms: linux/amd64 - - arch: arm64 - runner: ubuntu-24.04-arm - platforms: linux/arm64 - - runs-on: ${{ matrix.runner }} + + runs-on: ubuntu-latest permissions: contents: read packages: write @@ -51,19 +44,15 @@ jobs: uses: actions/checkout@v6 - name: Set up QEMU - if: matrix.arch == 'amd64' uses: docker/setup-qemu-action@v4 - name: Setup Docker buildx uses: docker/setup-buildx-action@v4 - with: - # Automatically preserves your default execution privileges while passing parameters - buildkitd-flags: --allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host - # Tells QEMU/BuildKit to cleanly map 64-bit kernel filesystem structures down to a 32-bit layout + with: + # Keeps 32-bit QEMU compilation from breaking on the 64-bit host buildkitd-config-inline: | [worker.containerd] prefer32 = true - # Login against a Docker registry except on PR # https://github.com/docker/login-action @@ -93,24 +82,32 @@ jobs: # # Platform Builds # - - name: Build and push images + + # amd64 and arm64 -- OL, EL, Debian and Ubuntu + + - name: Build and push amd64 and arm64 id: build-and-push + # No condition here; build everything on these platforms. uses: docker/build-push-action@v7 with: context: . file: ./docker-envs/Dockerfile-${{ matrix.os }} - # Dynamically builds whatever platforms are defined for this specific runner/OS match - platforms: >- - ${{ matrix.arch == 'arm64' && 'linux/arm64' || '' }}${{ - (matrix.arch == 'amd64' && (matrix.os == 'u20' || matrix.os == 'u22' || matrix.os == 'u24')) - && 'linux/amd64,linux/arm/v7,linux/ppc64le' - || '' - }}${{ - (matrix.arch == 'amd64' && (matrix.os == 'ol8' || matrix.os == 'el9' || matrix.os == 'el10' || matrix.os == 'u26')) - && 'linux/amd64' - || '' - }} + platforms: linux/amd64, linux/arm64 push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} + # armv7 and ppc64le - Debian and Ubuntu + + - name: Build and push armv7 and ppc64le + id: build-and-push-multiarch + if: ${{ startsWith(matrix.os, 'd') || startsWith(matrix.os, 'u') }} + uses: docker/build-push-action@v7 + with: + context: . + file: ./docker-envs/Dockerfile-${{ matrix.os }} + # These platforms fail: linux/arm/v7, linux/ppc64le + platforms: linux/arm/v7, linux/ppc64le + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} From 2ac92417d106019438c3ae2520c965990543d4f8 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 8 Jun 2026 21:06:42 +0000 Subject: [PATCH 2/6] Remove bad tabchar. --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 48bb3d1..7aae262 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -48,7 +48,7 @@ jobs: - name: Setup Docker buildx uses: docker/setup-buildx-action@v4 - with: + with: # Keeps 32-bit QEMU compilation from breaking on the 64-bit host buildkitd-config-inline: | [worker.containerd] From 35e6d7a343657f024f7d3d1a2506581a446626ae Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 8 Jun 2026 21:45:30 +0000 Subject: [PATCH 3/6] Explicitly enable containerd. --- .github/workflows/docker-publish.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 7aae262..241ca99 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -46,12 +46,15 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 - - name: Setup Docker buildx + - name: Setup Docker buildx uses: docker/setup-buildx-action@v4 with: - # Keeps 32-bit QEMU compilation from breaking on the 64-bit host + # Explicitly enables the containerd system worker and flips on prefer32 buildkitd-config-inline: | + [worker.oci] + enabled = false [worker.containerd] + enabled = true prefer32 = true # Login against a Docker registry except on PR From 9018add845ebc22efa8fa85b0081436d28aa5e4d Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 8 Jun 2026 21:47:21 +0000 Subject: [PATCH 4/6] Remove bad tab char. --- .github/workflows/docker-publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index 241ca99..db6e6f9 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -46,7 +46,7 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 - - name: Setup Docker buildx + - name: Setup Docker buildx uses: docker/setup-buildx-action@v4 with: # Explicitly enables the containerd system worker and flips on prefer32 From 3e562627b246efdc45b24f7d050aa5d39d9689de Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Mon, 8 Jun 2026 21:55:56 +0000 Subject: [PATCH 5/6] Try something else. --- .github/workflows/docker-publish.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index db6e6f9..b4df27d 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -45,17 +45,12 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@v4 - - name: Setup Docker buildx uses: docker/setup-buildx-action@v4 with: - # Explicitly enables the containerd system worker and flips on prefer32 - buildkitd-config-inline: | - [worker.oci] - enabled = false - [worker.containerd] - enabled = true - prefer32 = true + # This forces BuildKit to drop the 64-bit structural extensions + # when extracting layers, bypassing the 32-bit emulation crash entirely. + buildkitd-flags: --oci-worker-snapshotter=overlayfs # Login against a Docker registry except on PR # https://github.com/docker/login-action From 1b59ddc588a085a96317d39cc4391628e40bad17 Mon Sep 17 00:00:00 2001 From: Neko Juers Date: Tue, 9 Jun 2026 13:38:09 +0000 Subject: [PATCH 6/6] Disable fast-fail to build u22/26. --- .github/workflows/docker-publish.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/docker-publish.yml b/.github/workflows/docker-publish.yml index b4df27d..8c6e588 100644 --- a/.github/workflows/docker-publish.yml +++ b/.github/workflows/docker-publish.yml @@ -12,8 +12,6 @@ on: pull_request: branches: [ 'main' ] workflow_dispatch: - branches: [ '*' ] - tags: [ 'v*.*.*' ] env: REGISTRY: ghcr.io @@ -27,7 +25,7 @@ jobs: # Iterates through each OS using a matrix strategy # See https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs strategy: - fail-fast: true + fail-fast: false # setting false to work out u26 builds. matrix: os: [ 'ol8', 'el9', 'el10', 'u20', 'u22', 'u24', 'u26' ]