diff --git a/.gitea/workflows/build-runner-images.yml b/.gitea/workflows/build-runner-images.yml index 26c9b66..1573a72 100644 --- a/.gitea/workflows/build-runner-images.yml +++ b/.gitea/workflows/build-runner-images.yml @@ -1,23 +1,18 @@ -name: Build Runner Images +name: Build & Push Runner Images on: push: branches: [main] - paths: - - k8s/infra/forgejo-runner-images/Dockerfile.* - - .gitea/workflows/build-runner-images.yml - pull_request: - branches: [main] - paths: - - k8s/infra/forgejo-runner-images/Dockerfile.* + workflow_dispatch: # Manual trigger + schedule: + - cron: '0 2 * * 0' # Weekly on Sunday 2 AM UTC (ensure fresh images) env: REGISTRY: forgejo.riotpiao.com jobs: - build: - name: Build and Push Runner Images - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + build-runner-images: + name: Build & Push All Runner Images runs-on: golang steps: - name: Install Node.js and Docker @@ -42,41 +37,57 @@ jobs: REGISTRY_USER: ${{ secrets.FORGEJO_REGISTRY_USER }} REGISTRY_TOKEN: ${{ secrets.FORGEJO_REGISTRY_TOKEN }} - - name: Build and push golang image + - name: Build and push Golang runner image run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-golang:${{ steps.sha.outputs.short_sha }}" + IMAGE="${REGISTRY}/rock/forgejo-runner-golang" + echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker build --no-cache \ -f k8s/infra/forgejo-runner-images/Dockerfile.golang \ - -t "${IMAGE}" \ - -t "${REGISTRY}/rock/forgejo-runner-golang:latest" \ + -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ + -t "${IMAGE}:latest" \ . - docker push "${IMAGE}" - docker push "${REGISTRY}/rock/forgejo-runner-golang:latest" - echo "✓ Pushed golang: ${IMAGE}" + + docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker push "${IMAGE}:latest" + echo "✓ Pushed golang runner" - - name: Build and push node image + - name: Build and push Node runner image run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-node:${{ steps.sha.outputs.short_sha }}" + IMAGE="${REGISTRY}/rock/forgejo-runner-node" + echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker build --no-cache \ -f k8s/infra/forgejo-runner-images/Dockerfile.node \ - -t "${IMAGE}" \ - -t "${REGISTRY}/rock/forgejo-runner-node:latest" \ + -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ + -t "${IMAGE}:latest" \ . - docker push "${IMAGE}" - docker push "${REGISTRY}/rock/forgejo-runner-node:latest" - echo "✓ Pushed node: ${IMAGE}" + + docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker push "${IMAGE}:latest" + echo "✓ Pushed node runner" - - name: Build and push rust image + - name: Build and push Rust runner image run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-rust:${{ steps.sha.outputs.short_sha }}" + IMAGE="${REGISTRY}/rock/forgejo-runner-rust" + echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker build --no-cache \ -f k8s/infra/forgejo-runner-images/Dockerfile.rust \ - -t "${IMAGE}" \ - -t "${REGISTRY}/rock/forgejo-runner-rust:latest" \ + -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ + -t "${IMAGE}:latest" \ . - docker push "${IMAGE}" - docker push "${REGISTRY}/rock/forgejo-runner-rust:latest" - echo "✓ Pushed rust: ${IMAGE}" + + docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" + docker push "${IMAGE}:latest" + echo "✓ Pushed rust runner" - name: Prune unused images run: docker image prune -a --force 2>&1 | tail -3 || true + + - name: Summary + run: | + echo "=== Runner Images Built and Pushed ===" + echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-golang:latest" + echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-node:latest" + echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-rust:latest"