From 7f4627d010f107d68880ed5377f915d362703dc0 Mon Sep 17 00:00:00 2001 From: rock Date: Wed, 2 Sep 2026 20:14:57 -0700 Subject: [PATCH] ci: use DinD pattern matching other repos Replace docker/build-push-action with raw docker commands that work reliably with Forgejo runners' DinD sidecar setup. --- .gitea/workflows/build-prod.yaml | 80 +++++++++++++++++--------------- 1 file changed, 42 insertions(+), 38 deletions(-) diff --git a/.gitea/workflows/build-prod.yaml b/.gitea/workflows/build-prod.yaml index 5daec9a..5d53b41 100644 --- a/.gitea/workflows/build-prod.yaml +++ b/.gitea/workflows/build-prod.yaml @@ -4,50 +4,54 @@ on: push: branches: [main] +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true + +env: + REGISTRY: forgejo.riotpiao.com + IMAGE: forgejo.riotpiao.com/rock/kmsvc-manage + jobs: - build-push: + push: + name: Build and push image runs-on: golang - permissions: - packages: write - contents: read + container: + image: docker:27-cli + volumes: + - /docker-certs/client:/docker-certs/client:ro env: - REGISTRY: forgejo.riotpiao.com - IMAGE_NAME: rock/kmsvc-manage - REGISTRY_PAT: ${{ secrets.REGISTRY_PAT }} + DOCKER_HOST: tcp://localhost:2376 + DOCKER_TLS_VERIFY: "1" + DOCKER_CERT_PATH: /docker-certs/client steps: - - name: Checkout code - uses: actions/checkout@v4 + - name: install node (required by JS-based actions) + run: apk add --no-cache nodejs git - - name: Get commit short SHA - id: short_sha - run: echo "sha=${GITHUB_SHA:0:7}" >> $GITHUB_OUTPUT + - uses: actions/checkout@v4 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Get short SHA + id: sha + run: | + SHORT_SHA=$(git rev-parse --short HEAD) + echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT - - name: Log in to Forgejo Container Registry - uses: docker/login-action@v3 - with: - registry: ${{ env.REGISTRY }} - username: rock - password: ${{ env.REGISTRY_PAT }} + - name: Registry login + run: | + echo "${REGISTRY_PAT}" | docker login "${REGISTRY}" \ + --username rock --password-stdin + env: + REGISTRY_PAT: ${{ secrets.REGISTRY_PAT }} - - name: Extract metadata (tags, labels) - id: meta - uses: docker/metadata-action@v5 - with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - tags: | - type=raw,value=${{ steps.short_sha.outputs.sha }} - type=raw,value=latest,enable={{is_default_branch}} + - name: Build image + run: | + docker build \ + --build-arg "VERSION=${{ steps.sha.outputs.short_sha }}" \ + -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ + -t "${IMAGE}:latest" \ + . - - name: Build and push image - uses: docker/build-push-action@v6 - with: - context: . - platforms: linux/amd64,linux/arm64 - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=gha - cache-to: type=gha,mode=max + - name: Push image + run: | + docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker push "${IMAGE}:latest"