This document records the validation of Sailr operating within an external repository (Stage 3.5).
- Prove that Sailr successfully runs outside of its own source tree.
- Validate that registry namespaces are securely derived from configuration, not internal assumptions.
- Verify that a real application image builds and pushes via
ci-build-push. - Obtain a verified, immutable digest and produce a valid
PublishedImageArtifactreport. - Verify CI approval gating within CircleCI pipelines.
- Sailr CLI Revision:
4a9b2c8 - External Repository Revision:
f21d3e4 - CI Provider: CircleCI
- Environment:
staging - Registry Target:
ghcr.io/adriftdev/demo-app
To obtain the diagnostic configuration:
sailr workflow inspect ci-build-pushDuring the pipeline, the following commands successfully ran:
- Plan Phase:
sailr workflow plan ci-build-push-plan- Graph Rendering:
sailr workflow graph ci-build-push-plan --format mermaid- Dry-Run Plan Execution:
sailr workflow run ci-build-push-plan --non-interactive- Protected Publication: (requires external approval gate in CircleCI prior to execution)
sailr workflow run ci-build-push --non-interactive --apply- Published Image Ref:
ghcr.io/adriftdev/demo-app:staging-f21d3e4@sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 - Report Path:
.sailr/reports/ci-build-push/latest.json - Issues Discovered:
- Build paths defaulting to "." caused
checksumsto traverse the entire.gittree and local artifacts, leading to slow build cache hashing.
- Build paths defaulting to "." caused
- Fixes Applied:
- The
BuildOptionsin runner tests were updated to properly isolate thecache_dirintempfiledirectories so tests don't pollute or fail on local environments. - Image reference generation was centralized to ensure tags are always properly qualified before they hit the registry.
- The
WorkflowReportgeneric envelope was implemented to reliably output JSON schemas for the CLI.
- The