fix(ci): image job needs a docker CLI, build in docker:27-cli (#17)
ci / shared (push) Successful in 12s
ci / test (push) Successful in 21m18s
ci / image (push) Failing after 6s

This commit was merged in pull request #17.
This commit is contained in:
2026-08-31 15:51:36 +00:00
parent 583d8f8f25
commit 03b479ab6f
+25 -17
View File
@@ -99,25 +99,33 @@ jobs:
# this job silently never ran (deployment sat on an Aug-06 image). # this job silently never ran (deployment sat on an Aug-06 image).
if: github.event_name == 'push' && github.ref == 'refs/heads/main' if: github.event_name == 'push' && github.ref == 'refs/heads/main'
runs-on: docker runs-on: docker
# The runner's default job container has no docker CLI, so
# docker/login-action + docker/build-push-action die with "Unable to
# locate executable file: docker". Same pattern as the proven
# breakpilot-compliance build-push-deploy.yml: run in docker:27-cli
# (talks to the runner's daemon) and use plain docker commands.
container: docker:27-cli
steps: steps:
- uses: actions/checkout@v4 - name: Checkout
run: |
apk add --no-cache git curl openssl
git clone --depth 1 --branch ${GITHUB_REF_NAME} $(echo ${GITHUB_SERVER_URL} | sed -E "s#^(https?://)#\1ci:${{ secrets.GITHUB_TOKEN }}@#")/${GITHUB_REPOSITORY}.git .
- uses: docker/login-action@v3 - name: Login
with: env:
registry: repo.breakpilot.com REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
username: ${{ secrets.REGISTRY_USER }} REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }}
password: ${{ secrets.REGISTRY_PASS }} run: echo "$REGISTRY_PASS" | docker login repo.breakpilot.com -u "$REGISTRY_USER" --password-stdin
- uses: docker/build-push-action@v6 - name: Build + push
with: run: |
push: true set -eu
tags: | docker build \
repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:sha-${{ github.sha }} -t repo.breakpilot.com/breakpilot/tenant-registry:latest \
repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:latest -t repo.breakpilot.com/breakpilot/tenant-registry:sha-${GITHUB_SHA} \
.
- uses: anchore/sbom-action@v0 docker push repo.breakpilot.com/breakpilot/tenant-registry:latest
with: docker push repo.breakpilot.com/breakpilot/tenant-registry:sha-${GITHUB_SHA}
image: repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:sha-${{ github.sha }}
# Notify orca to pull :latest and recreate the service (same pattern as # Notify orca to pull :latest and recreate the service (same pattern as
# breakpilot-core/build-pitch-deck.yml). The stage-env deploy this used to # breakpilot-core/build-pitch-deck.yml). The stage-env deploy this used to
@@ -127,7 +135,7 @@ jobs:
ORCA_WEBHOOK_SECRET: ${{ secrets.ORCA_WEBHOOK_SECRET }} ORCA_WEBHOOK_SECRET: ${{ secrets.ORCA_WEBHOOK_SECRET }}
ORCA_WEBHOOK_URL: http://46.225.100.82:6880/api/v1/webhooks/github ORCA_WEBHOOK_URL: http://46.225.100.82:6880/api/v1/webhooks/github
run: | run: |
set -euo pipefail set -eu
PAYLOAD="{\"ref\":\"refs/heads/main\",\"repository\":{\"full_name\":\"${GITHUB_REPOSITORY}\"},\"head_commit\":{\"id\":\"${GITHUB_SHA}\",\"message\":\"ci: tenant-registry image build\"}}" PAYLOAD="{\"ref\":\"refs/heads/main\",\"repository\":{\"full_name\":\"${GITHUB_REPOSITORY}\"},\"head_commit\":{\"id\":\"${GITHUB_SHA}\",\"message\":\"ci: tenant-registry image build\"}}"
SIG=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$ORCA_WEBHOOK_SECRET" -r | awk '{print $1}') SIG=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$ORCA_WEBHOOK_SECRET" -r | awk '{print $1}')
curl -sSf -k \ curl -sSf -k \