소스 검색

update Github Action to cache docker to different locations for each platform (#4051)

Since the docker caching in the GitHub actions still isn't working
properly, this attempts to fix it. As described in [this
PR](https://github.com/zauberzeug/rosys/pull/232) in RoSys the issue is
the multi platform setup in our docker build and push action. This PR
attempts to fix this by using different build caches for each platform.
Paula Kammler 5 달 전
부모
커밋
5d4a09aa9a
1개의 변경된 파일12개의 추가작업 그리고 3개의 파일을 삭제
  1. 12 3
      .github/workflows/publish.yml

+ 12 - 3
.github/workflows/publish.yml

@@ -41,6 +41,10 @@ jobs:
   docker:
     needs: pypi
     runs-on: ubuntu-latest
+    strategy:
+      fail-fast: false
+      matrix:
+        build: [{ platform: linux/amd64, cache: buildcache-amd64 }, { platform: linux/arm64, cache: buildcache-arm64 }]
     steps:
       - uses: actions/checkout@v4
       - name: Prepare
@@ -82,13 +86,18 @@ jobs:
         with:
           context: .
           file: ./release.dockerfile
-          platforms: linux/amd64,linux/arm64
+          platforms: ${{ matrix.build.platform }}
           push: true
           tags: ${{ steps.prep.outputs.tags }}
           build-args: VERSION=${{ steps.prep.outputs.version }}
-          cache-from: type=registry,ref=${{ steps.prep.outputs.docker_image }}:buildcache
-          cache-to: type=registry,ref=${{ steps.prep.outputs.docker_image }}:buildcache,mode=max
+          cache-from: type=registry,ref=${{ steps.prep.outputs.docker_image }}:${{ matrix.build.cache }}
+          cache-to: type=registry,ref=${{ steps.prep.outputs.docker_image }}:${{ matrix.build.cache }},mode=max
 
+  readme:
+    runs-on: ubuntu-latest
+    needs: docker
+    steps:
+      - uses: actions/checkout@v4
       # Uploading the README.md is not a core feature of docker/build-push-action yet
       - name: Update README
         uses: christian-korneck/update-container-description-action@v1