diff --git a/.forgejo/workflows/docker.yaml b/.forgejo/workflows/docker.yaml index 1ba89c0..9a354d9 100644 --- a/.forgejo/workflows/docker.yaml +++ b/.forgejo/workflows/docker.yaml @@ -24,19 +24,40 @@ jobs: id: env run: | echo "DOCKER_TAG=$DOCKER_REPOSITORY/$(echo "$GITHUB_REPOSITORY" | tr '[:upper:]' '[:lower:]'):latest" >> "$GITHUB_ENV" - apk add --no-cache git nodejs - - - name: "Login to Docker repository" - id: login - run: docker login -u "$GITHUB_ACTOR" -p "${{ secrets.PACKAGE_TOKEN }}" "$DOCKER_REPOSITORY" + apk add --no-cache git nodejs zstd - name: "Get repo" - uses: https://code.forgejo.org/actions/checkout@v4 + uses: actions/checkout@v4 - - name: "Build Docker image" - id: build - run: docker buildx build --pull --platform linux/amd64 -t "$DOCKER_TAG" . + - name: "Restore cache" + id: cache-restore + uses: actions/cache/restore@v4 + with: + path: "${{ env.GITHUB_WORKSPACE }}/.docker_cache" + key: "docker" - - name: "Publish Docker image" - id: push - run: docker push "$DOCKER_TAG" + - name: Set up Docker Buildx + uses: https://github.com/docker/setup-buildx-action@v3 + + - name: "Login to Docker repository" + uses: https://github.com/docker/login-action@v3 + with: + registry: "${{ env.DOCKER_REPOSITORY }}" + username: "${{ env.GITHUB_ACTOR }}" + password: "${{ secrets.PACKAGE_TOKEN }}" + + - name: "Build and push" + uses: https://github.com/docker/build-push-action@v5 + with: + context: . + push: true + tags: "${{ env.DOCKER_TAG }}" + cache-from: "type=local,src=${{ env.GITHUB_WORKSPACE }}/.docker_cache" + cache-to: "type=local,dest=${{ env.GITHUB_WORKSPACE }}/.docker_cache" + + - name: "Save cache" + id: cache-save + uses: actions/cache/save@v4 + with: + path: "${{ env.GITHUB_WORKSPACE }}/.docker_cache" + key: "${{ steps.cache-restore.outputs.cache-primary-key }}"