diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 90cb61e..b7aecc6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -38,28 +38,22 @@ jobs: run: | cp -lr $GITHUB_WORKSPACE/src/ $GITHUB_WORKSPACE/docker/src/ - - name: Build and push Docker image (Release) - if: "!github.event.release.prerelease" - uses: docker/build-push-action@v6 + - name: Create tag list for docker image + id: tags + run: | + if [ "${{ github.event.release.prerelease }}" = true ]; then + echo "docker=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + else + echo "docker=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:latest, ${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + fi + cache-to: type=registry,ref=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ env.DOCKER_REPO_TAG_CACHE_NAME }},mode=max + + - name: Build and push Docker image + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: context: ./docker push: true platforms: ${{ env.DOCKER_PLATFORMS }} - tags: | - ${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:latest - ${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ github.event.release.tag_name }} + tags: ${{ steps.tags.outputs.docker }} cache-from: type=registry,ref=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ env.DOCKER_REPO_TAG_CACHE_NAME }} cache-to: type=registry,ref=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ env.DOCKER_REPO_TAG_CACHE_NAME }},mode=max - - - name: Build and push Docker image (Prerelease) - if: "github.event.release.prerelease" - uses: docker/build-push-action@v6 - with: - context: ./docker - push: true - platforms: ${{ env.DOCKER_PLATFORMS }} - tags: | - ${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ github.event.release.tag_name }} - cache-from: type=registry,ref=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ env.DOCKER_REPO_TAG_CACHE_NAME }} - cache-to: type=registry,ref=${{ env.DOCKER_ACCOUNT }}/${{ env.DOCKER_REPO }}:${{ env.DOCKER_REPO_TAG_CACHE_NAME }},mode=max -