From a760a4db7a849efb79950a91708776a4146aa4f1 Mon Sep 17 00:00:00 2001 From: Ludy Date: Wed, 12 Nov 2025 07:42:06 +0100 Subject: [PATCH] Refactor GitHub Actions workflow for Docker builds --- .github/workflows/build.yml | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 024936cc9..c1566d99f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -272,7 +272,17 @@ jobs: strategy: fail-fast: false matrix: - docker-rev: ["Dockerfile", "Dockerfile.ultra-lite", "Dockerfile.fat"] + docker-rev: + # - name: regular + # file: ./Dockerfile + # additional_tags: "" + # - name: ultra-lite + # file: ./Dockerfile.ultra-lite + # additional_tags: "" + - name: fat + file: ./Dockerfile.fat + additional_tags: | + type=raw,value=alpha,enable=${{ github.ref == 'refs/heads/main' }} steps: - name: Harden Runner uses: step-security/harden-runner@95d9a5deda9de15063e7595e9719c11c38c90ae2 # v2.13.2 @@ -306,19 +316,36 @@ jobs: - name: Set up QEMU uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0 + - name: Convert repository owner to lowercase + id: repoowner + run: echo "lowercase=$(echo ${{ github.repository_owner }} | awk '{print tolower($0)}')" >> $GITHUB_OUTPUT + + - name: Generate tags (${{ matrix.docker-rev.name }}) + id: meta + uses: docker/metadata-action@318604b99e75e41977312d83839a89be02ca4893 # v5.9.0 + with: + images: | + ${{ secrets.DOCKER_HUB_USERNAME }}/s-pdf + ghcr.io/${{ steps.repoowner.outputs.lowercase }}/s-pdf + ghcr.io/${{ steps.repoowner.outputs.lowercase }}/stirling-pdf + ${{ secrets.DOCKER_HUB_ORG_USERNAME }}/stirling-pdf + tags: | + ${{ matrix.docker-rev.additional_tags }} + - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1 - - name: Build ${{ matrix.docker-rev }} + - name: Build ${{ matrix.docker-rev.name }} uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0 with: builder: ${{ steps.buildx.outputs.name }} context: . - file: ./${{ matrix.docker-rev }} + file: ${{ matrix.docker-rev.file }} push: false cache-from: type=gha cache-to: type=gha,mode=max + tags: ${{ steps.meta.outputs.tags }} build-args: VERSION_TAG=${{ steps.versionNumber.outputs.versionNumber }} platforms: linux/amd64,linux/arm64/v8 provenance: true