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 all runner images run: | set -e for RUNNER in golang rust node; do echo "šŸ“¦ Building ${RUNNER}-runner..." docker build -f "k8s/infra/forgejo-runner/Dockerfile.${RUNNER}" \ -t "${IMAGE_BASE}/forgejo-runner-${RUNNER}:${{ steps.sha.outputs.short_sha }}" \ -t "${IMAGE_BASE}/forgejo-runner-${RUNNER}:latest" \ . docker push "${IMAGE_BASE}/forgejo-runner-${RUNNER}:${{ steps.sha.outputs.short_sha }}" docker push "${IMAGE_BASE}/forgejo-runner-${RUNNER}:latest" echo "āœ… Pushed ${RUNNER}-runner" done echo "\nāœ… All runner images built and pushed"