name: Build and push runner images on: push: paths: - 'k8s/infra/forgejo-runner/Dockerfile.golang' - 'k8s/infra/forgejo-runner/Dockerfile.rust' - 'k8s/infra/forgejo-runner/Dockerfile.node' branches: - main jobs: build-runners: runs-on: golang env: REGISTRY: forgejo.riotpiao.com IMAGE_BASE: forgejo.riotpiao.com/rock steps: - name: Checkout code uses: actions/checkout@v4 - name: Get short SHA id: sha run: | SHORT_SHA=$(git rev-parse --short HEAD) echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT - name: Registry login run: | echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" \ --username "${REGISTRY_USER}" --password-stdin env: REGISTRY_USER: ${{ secrets.FORGEJO_REGISTRY_USER }} REGISTRY_TOKEN: ${{ secrets.FORGEJO_REGISTRY_TOKEN }} - name: Build and push golang-runner if: contains(github.event.head_commit.modified, 'Dockerfile.golang') run: | docker build -f k8s/infra/forgejo-runner/Dockerfile.golang \ -t "${IMAGE_BASE}/forgejo-runner-golang:${{ steps.sha.outputs.short_sha }}" \ -t "${IMAGE_BASE}/forgejo-runner-golang:latest" \ . docker push "${IMAGE_BASE}/forgejo-runner-golang:${{ steps.sha.outputs.short_sha }}" docker push "${IMAGE_BASE}/forgejo-runner-golang:latest" echo "✓ Pushed golang-runner" - name: Build and push rust-runner if: contains(github.event.head_commit.modified, 'Dockerfile.rust') run: | docker build -f k8s/infra/forgejo-runner/Dockerfile.rust \ -t "${IMAGE_BASE}/forgejo-runner-rust:${{ steps.sha.outputs.short_sha }}" \ -t "${IMAGE_BASE}/forgejo-runner-rust:latest" \ . docker push "${IMAGE_BASE}/forgejo-runner-rust:${{ steps.sha.outputs.short_sha }}" docker push "${IMAGE_BASE}/forgejo-runner-rust:latest" echo "✓ Pushed rust-runner" - name: Build and push node-runner if: contains(github.event.head_commit.modified, 'Dockerfile.node') run: | docker build -f k8s/infra/forgejo-runner/Dockerfile.node \ -t "${IMAGE_BASE}/forgejo-runner-node:${{ steps.sha.outputs.short_sha }}" \ -t "${IMAGE_BASE}/forgejo-runner-node:latest" \ . docker push "${IMAGE_BASE}/forgejo-runner-node:${{ steps.sha.outputs.short_sha }}" docker push "${IMAGE_BASE}/forgejo-runner-node:latest" echo "✓ Pushed node-runner"