fix(ci): image job needs a docker CLI, build in docker:27-cli
ci / shared (pull_request) Successful in 12s
ci / test (pull_request) Successful in 21m19s
ci / image (pull_request) Skipped

The runner's default job container has no docker binary, so
docker/login-action@v3 failed with 'Unable to locate executable file:
docker' (run 5441) and the image never built. Rebuilt the job on the
proven breakpilot-compliance pattern: container docker:27-cli, plain
docker login/build/push, then the signed orca webhook. The node-based
sbom/login/build actions cannot run in that container and are dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CNdLL9BdsWm7MCyui5ffPD
This commit is contained in:
Sharang Parnerkar
2026-08-31 17:42:45 +02:00
co-authored by Claude Fable 5
parent 583d8f8f25
commit 0df8249dd0
+25 -17
View File
@@ -99,25 +99,33 @@ jobs:
# this job silently never ran (deployment sat on an Aug-06 image).
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
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:
- 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
with:
registry: repo.breakpilot.com
username: ${{ secrets.REGISTRY_USER }}
password: ${{ secrets.REGISTRY_PASS }}
- name: Login
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASS: ${{ secrets.REGISTRY_PASS }}
run: echo "$REGISTRY_PASS" | docker login repo.breakpilot.com -u "$REGISTRY_USER" --password-stdin
- uses: docker/build-push-action@v6
with:
push: true
tags: |
repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:sha-${{ github.sha }}
repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:latest
- uses: anchore/sbom-action@v0
with:
image: repo.breakpilot.com/breakpilot/${{ github.event.repository.name }}:sha-${{ github.sha }}
- name: Build + push
run: |
set -eu
docker build \
-t repo.breakpilot.com/breakpilot/tenant-registry:latest \
-t repo.breakpilot.com/breakpilot/tenant-registry:sha-${GITHUB_SHA} \
.
docker push repo.breakpilot.com/breakpilot/tenant-registry:latest
docker push repo.breakpilot.com/breakpilot/tenant-registry:sha-${GITHUB_SHA}
# 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
@@ -127,7 +135,7 @@ jobs:
ORCA_WEBHOOK_SECRET: ${{ secrets.ORCA_WEBHOOK_SECRET }}
ORCA_WEBHOOK_URL: http://46.225.100.82:6880/api/v1/webhooks/github
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\"}}"
SIG=$(printf '%s' "$PAYLOAD" | openssl dgst -sha256 -hmac "$ORCA_WEBHOOK_SECRET" -r | awk '{print $1}')
curl -sSf -k \