Phase 5: scaffold Crucible (sow-tools) — dispatcher + builder shims, container, PR-first CI, fail-closed (D11, D19).

This commit is contained in:
2026-06-11 20:36:13 +02:00
parent ff264f0d7c
commit 97f8427c4b
154 changed files with 948 additions and 76902 deletions
+40
View File
@@ -0,0 +1,40 @@
# Build the Crucible image. PR-first (D7): PRs build only; push to main also
# publishes registry.westgate.pw/sow/crucible:<git-sha>. Never a mutable tag.
name: build-image
on:
push:
branches: [main]
pull_request:
env:
REGISTRY: registry.westgate.pw
IMAGE: sow/crucible
jobs:
build-image:
runs-on: docker
steps:
- uses: actions/checkout@v4
with: { fetch-depth: 0 }
- name: Resolve tag
id: tag
run: echo "sha=$(git rev-parse --short=12 HEAD)" >> "$GITHUB_OUTPUT"
- name: Build image
run: |
docker build \
--build-arg GIT_SHA=${{ steps.tag.outputs.sha }} \
-f docker/Dockerfile \
-t ${REGISTRY}/${IMAGE}:${{ steps.tag.outputs.sha }} .
# Publish only on main (post-merge). PRs verify the build but never push.
- name: Publish image
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
env:
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
run: |
echo "${REGISTRY_PASSWORD}" | docker login "${REGISTRY}" -u "${REGISTRY_USER}" --password-stdin
docker push ${REGISTRY}/${IMAGE}:${{ steps.tag.outputs.sha }}