diff --git a/.forgejo/workflows/docker-publish-semantic.yml b/.forgejo/workflows/docker-publish-semantic.yml index cf867bb..2fa2abb 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,9 @@ 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=max + 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 @@ -139,5 +142,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 3faf10b..2e846af 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,9 @@ 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=max + 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 @@ -130,5 +133,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