Share base-image discovery, build, scan and protected publication #77

Merged
gitchegumi merged 3 commits from kiyi/shared-base-image-pipeline into main 2026-10-05 22:41:25 -05:00
Member

Base-image candidates need one reusable pipeline rather than per-image scan orchestration. Adds discover-base-images.yml plus base-image.yml: discover all implemented images folders, source-scan each selected folder, build Dockerfile smoke checks, scan the complete image, retain per-image sanitized reports, and optionally sign/publish through the existing protected owner-dispatch guards. Reuses container.py and existing security/evidence contracts. No tool-image pipeline is introduced.

Companion caller changes are in base-images#26, commit 597af6a. They remove the bespoke Ubuntu scanner and duplicated manual publication steps, and pin both uses/library_ref to the planned v1.28.0 release. Review/merge this library change, then publish the next unused minor release through Publish workflow release before adopting those callers. No release has been published or protected workflow dispatched here.

Validation at 038addd: 3 discovery/publication/report-retention contract tests passed; both workflow YAML files parsed and every embedded shell script passed syntax checks; discovery against current base-images returned comfy-python, pytorch-cuda and ubuntu; git diff --check passed. Caller release/matrix/no-publication/no-secrets contracts also passed. Both commit identities and SSH authentication verified as kiyi. Hosted library checks and reusable matrix execution remain pending.

Candidate callers pass no signing/registry-write/deployment secrets. Forgejo 16 ignores permissions; documentation corrects the earlier claim of read-only automatic token enforcement. The disposable ci worker and existing approval/access controls remain the execution boundary.

The earlier Ubuntu candidate run built and passed smoke checks, then correctly blocked CVE-2026-84782 in libssl3t64 and openssl-provider-legacy at 3.5.5-1ubuntu3.5. That finding is not suppressed by this refactor and remains a base-images acceptance blocker.

Base-image candidates need one reusable pipeline rather than per-image scan orchestration. Adds discover-base-images.yml plus base-image.yml: discover all implemented images folders, source-scan each selected folder, build Dockerfile smoke checks, scan the complete image, retain per-image sanitized reports, and optionally sign/publish through the existing protected owner-dispatch guards. Reuses container.py and existing security/evidence contracts. No tool-image pipeline is introduced. Companion caller changes are in [base-images#26](https://git.gitchegumi.com/Homelab/base-images/pulls/26), commit 597af6a. They remove the bespoke Ubuntu scanner and duplicated manual publication steps, and pin both uses/library_ref to the planned v1.28.0 release. Review/merge this library change, then publish the next unused minor release through Publish workflow release before adopting those callers. No release has been published or protected workflow dispatched here. Validation at 038addd: 3 discovery/publication/report-retention contract tests passed; both workflow YAML files parsed and every embedded shell script passed syntax checks; discovery against current base-images returned comfy-python, pytorch-cuda and ubuntu; git diff --check passed. Caller release/matrix/no-publication/no-secrets contracts also passed. Both commit identities and SSH authentication verified as kiyi. Hosted library checks and reusable matrix execution remain pending. Candidate callers pass no signing/registry-write/deployment secrets. Forgejo 16 ignores permissions; documentation corrects the earlier claim of read-only automatic token enforcement. The disposable ci worker and existing approval/access controls remain the execution boundary. The earlier Ubuntu candidate run built and passed smoke checks, then correctly blocked CVE-2026-84782 in libssl3t64 and openssl-provider-legacy at 3.5.5-1ubuntu3.5. That finding is not suppressed by this refactor and remains a base-images acceptance blocker.
feat(images): share base image discovery build scan and publication
Some checks failed
base-image.yml / feat(images): share base image discovery build scan and publication (push) Failing after 0s
base-image.yml / feat(images): share base image discovery build scan and publication (pull_request) Failing after 0s
Workflow acceptance / acceptance (pull_request) Has been cancelled
Repository security / security-1 (pull_request) Has been cancelled
Library checks / tests (pull_request) Has been cancelled
038addd705
fix(images): use Forgejo reusable workflow secret contract
Some checks failed
Workflow acceptance / acceptance (pull_request) Successful in 2m47s
Library checks / tests (pull_request) Failing after 2m44s
Repository security / security-1 (pull_request) Successful in 5m35s
6ea5d2b5af
gitchegumi approved these changes 2026-10-05 22:24:39 -05:00
Dismissed
test(images): include shared base pipeline in report upload contract
All checks were successful
Workflow acceptance / acceptance (pull_request) Successful in 1m34s
Repository security / security-1 (pull_request) Successful in 6m53s
Library checks / tests (pull_request) Successful in 6m52s
06702c9546
gitchegumi dismissed gitchegumi's review 2026-10-05 22:33:35 -05:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

Author
Member

Fixed the failure from Library checks run 493 in 06702c9. The suite ran 256 tests with one failure: the report-upload contract still expected 7 upload steps, while base-image.yml adds the eighth.

The test now checks the exact expected workflow names (including base-image.yml), so a missing, duplicate or unexpected upload is detected. Every upload still must retain summary.md/findings.csv and exclude raw files and recursive wildcards. No scan gate or runtime behavior changed.

Validation: all 7 reporting tests passed locally, including integrated pass/rejection/scanner-error reporting; git diff --check passed. Commit author/committer and SSH authentication verified as kiyi. New hosted checks are queued; their result is pending.

Fixed the failure from [Library checks run 493](https://git.gitchegumi.com/Homelab/workflows/actions/runs/493/jobs/0/attempt/1) in 06702c9. The suite ran 256 tests with one failure: the report-upload contract still expected 7 upload steps, while base-image.yml adds the eighth. The test now checks the exact expected workflow names (including base-image.yml), so a missing, duplicate or unexpected upload is detected. Every upload still must retain summary.md/findings.csv and exclude raw files and recursive wildcards. No scan gate or runtime behavior changed. Validation: all 7 reporting tests passed locally, including integrated pass/rejection/scanner-error reporting; git diff --check passed. Commit author/committer and SSH authentication verified as kiyi. New hosted checks are queued; their result is pending.
gitchegumi approved these changes 2026-10-05 22:34:26 -05:00
gitchegumi deleted branch kiyi/shared-base-image-pipeline 2026-10-05 22:41:26 -05:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Homelab/workflows!77
No description provided.