From 0cfe6502fe874c01d85fc5fbf835b55e1b39cb31 Mon Sep 17 00:00:00 2001 From: alpha-nerd-nomyo Date: Sun, 5 Apr 2026 10:13:42 +0200 Subject: [PATCH 1/4] fix: less caching --- .forgejo/workflows/docker-publish-semantic.yml | 2 +- .forgejo/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/docker-publish-semantic.yml b/.forgejo/workflows/docker-publish-semantic.yml index cf867bb..f8fcf2b 100644 --- a/.forgejo/workflows/docker-publish-semantic.yml +++ b/.forgejo/workflows/docker-publish-semantic.yml @@ -85,7 +85,7 @@ jobs: SEMANTIC_CACHE=true tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=max + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=min merge: runs-on: docker-amd64 diff --git a/.forgejo/workflows/docker-publish.yml b/.forgejo/workflows/docker-publish.yml index 3faf10b..f793e1e 100644 --- a/.forgejo/workflows/docker-publish.yml +++ b/.forgejo/workflows/docker-publish.yml @@ -76,7 +76,7 @@ jobs: provenance: false tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=max + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=min merge: runs-on: docker-amd64 From cb464d30d0c7e6a3bdc600dbca33cd70fd0eca6e Mon Sep 17 00:00:00 2001 From: alpha-nerd-nomyo Date: Sun, 5 Apr 2026 10:34:54 +0200 Subject: [PATCH 2/4] fix: label versions with arch --- .forgejo/workflows/docker-publish-semantic.yml | 15 ++++++++++----- .forgejo/workflows/docker-publish.yml | 15 ++++++++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/.forgejo/workflows/docker-publish-semantic.yml b/.forgejo/workflows/docker-publish-semantic.yml index f8fcf2b..5d12183 100644 --- a/.forgejo/workflows/docker-publish-semantic.yml +++ b/.forgejo/workflows/docker-publish-semantic.yml @@ -18,6 +18,7 @@ on: env: REGISTRY: bitfreedom.net IMAGE_NAME: ${{ github.repository }} + CACHE_IMAGE: ${{ github.repository }}-buildcache jobs: build: @@ -34,8 +35,10 @@ jobs: include: - platform: linux/amd64 runner: docker-amd64 + arch: amd64 - platform: linux/arm64 runner: docker-arm64 + arch: arm64 steps: - name: Install Docker @@ -83,9 +86,11 @@ jobs: provenance: false build-args: | SEMANTIC_CACHE=true - tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=min + tags: | + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-semantic-${{ matrix.arch }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }},mode=min merge: runs-on: docker-amd64 @@ -139,5 +144,5 @@ jobs: run: | docker buildx imagetools create \ $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-amd64 \ - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-semantic-arm64 + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-semantic-amd64 \ + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-semantic-arm64 diff --git a/.forgejo/workflows/docker-publish.yml b/.forgejo/workflows/docker-publish.yml index f793e1e..3f187d2 100644 --- a/.forgejo/workflows/docker-publish.yml +++ b/.forgejo/workflows/docker-publish.yml @@ -11,6 +11,7 @@ on: env: REGISTRY: bitfreedom.net IMAGE_NAME: ${{ github.repository }} + CACHE_IMAGE: ${{ github.repository }}-buildcache jobs: build: @@ -27,8 +28,10 @@ jobs: include: - platform: linux/amd64 runner: docker-amd64 + arch: amd64 - platform: linux/arm64 runner: docker-arm64 + arch: arm64 steps: - name: Install Docker @@ -74,9 +77,11 @@ jobs: platforms: ${{ matrix.platform }} push: true provenance: false - tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-${{ matrix.platform == 'linux/amd64' && 'amd64' || 'arm64' }},mode=min + tags: | + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-${{ matrix.arch }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }},mode=min merge: runs-on: docker-amd64 @@ -130,5 +135,5 @@ jobs: run: | docker buildx imagetools create \ $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-amd64 \ - ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:buildcache-arm64 + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-amd64 \ + ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-arm64 From ce8e9c42cf30df2154866073f11dc0943d0f7aea Mon Sep 17 00:00:00 2001 From: alpha-nerd-nomyo Date: Sun, 5 Apr 2026 13:01:50 +0200 Subject: [PATCH 3/4] fix: write cache using standard OCI image manifest format --- .forgejo/workflows/docker-publish-semantic.yml | 2 +- .forgejo/workflows/docker-publish.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.forgejo/workflows/docker-publish-semantic.yml b/.forgejo/workflows/docker-publish-semantic.yml index 5d12183..feaf9e7 100644 --- a/.forgejo/workflows/docker-publish-semantic.yml +++ b/.forgejo/workflows/docker-publish-semantic.yml @@ -90,7 +90,7 @@ jobs: ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-semantic-${{ matrix.arch }} cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }},mode=min + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true merge: runs-on: docker-amd64 diff --git a/.forgejo/workflows/docker-publish.yml b/.forgejo/workflows/docker-publish.yml index 3f187d2..a3d62af 100644 --- a/.forgejo/workflows/docker-publish.yml +++ b/.forgejo/workflows/docker-publish.yml @@ -81,7 +81,7 @@ jobs: ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-${{ matrix.arch }} cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }},mode=min + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true merge: runs-on: docker-amd64 From 3030b7126b18c46530b3f71324ecc7afe6e76e35 Mon Sep 17 00:00:00 2001 From: alpha-nerd-nomyo Date: Sun, 5 Apr 2026 13:13:31 +0200 Subject: [PATCH 4/4] fix: tagging of imgs --- .forgejo/workflows/docker-publish-semantic.yml | 8 +++----- .forgejo/workflows/docker-publish.yml | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/.forgejo/workflows/docker-publish-semantic.yml b/.forgejo/workflows/docker-publish-semantic.yml index feaf9e7..2fa2abb 100644 --- a/.forgejo/workflows/docker-publish-semantic.yml +++ b/.forgejo/workflows/docker-publish-semantic.yml @@ -86,11 +86,9 @@ jobs: provenance: false build-args: | SEMANTIC_CACHE=true - tags: | - ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} - ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-semantic-${{ matrix.arch }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:semantic-${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true + tags: ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:platform-semantic-${{ matrix.arch }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:buildcache-semantic-${{ matrix.arch }} + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:buildcache-semantic-${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true merge: runs-on: docker-amd64 diff --git a/.forgejo/workflows/docker-publish.yml b/.forgejo/workflows/docker-publish.yml index a3d62af..2e846af 100644 --- a/.forgejo/workflows/docker-publish.yml +++ b/.forgejo/workflows/docker-publish.yml @@ -77,11 +77,9 @@ jobs: platforms: ${{ matrix.platform }} push: true provenance: false - tags: | - ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} - ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:run-${{ github.run_id }}-${{ matrix.arch }} - cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }} - cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true + tags: ${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:platform-${{ matrix.arch }} + cache-from: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:buildcache-${{ matrix.arch }} + cache-to: type=registry,ref=${{ env.REGISTRY }}/${{ env.CACHE_IMAGE }}:buildcache-${{ matrix.arch }},mode=min,image-manifest=true,oci-mediatypes=true merge: runs-on: docker-amd64