Skip to content

feat(ghcr-cleanup): bump to v1.2.1, add delete-orphaned-images - #39

Closed
castrojo wants to merge 8 commits into
mainfrom
feat/ghcr-cleanup-orphaned-images
Closed

castrojo wants to merge 8 commits into
mainfrom
feat/ghcr-cleanup-orphaned-images

Conversation

@castrojo

@castrojo castrojo commented Jun 2, 2026

Copy link
Copy Markdown
Contributor

Summary

Aligns bootc-build/ghcr-cleanup with the design deployed in projectbluefin/bluefin clean.yml.

Changes

  • Bump dataaxiom/ghcr-cleanup-action SHA to v1.2.1 (f092b48ba3b604b2a83690dc4b2bbb3392e1045f)
  • Expose delete-orphaned-images input (default: true)

Motivation

Deploying this action to projectbluefin/dakota (fixes projectbluefin/dakota#664). The v1.2.1 bump and orphaned-image pruning match what bluefin already runs in production.

Consumer validation

Draft PR in dakota: pending (will link once created).

castrojo and others added 7 commits June 2, 2026 18:02
Adds .github/workflows/upgrade-test.yml — a reusable workflow that any
bootc image project can call to gate releases on a live upgrade-and-rollback
cycle. It delegates to projectbluefin/testsuite e2e.yml (pinned SHA)
running the lifecycle suite, which covers:

  - bootc status (image reference + digest validation)
  - upgrade: stage new deployment via bootc upgrade
  - reboot into upgraded deployment
  - rollback: revert via bootc rollback + reboot
  - /etc merge: customizations survive upgrade
  - idempotency: bootc upgrade is a no-op when already at latest
  - auto-update timer presence

Hello-world consumers documented in consumer-guide.md:
  - projectbluefin/bluefin  → ghcr.io/ublue-os/bluefin:latest
  - projectbluefin/bluefin-lts → ghcr.io/ublue-os/bluefin-lts:latest

Updates:
  - docs/SKILL.md: add routing entry for upgrade test
  - docs/skills/consumer-guide.md: new "Upgrade test" section with
    full inputs reference, suite table, and hello-world examples

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace image+stream split with two full OCI refs:
  - image: the FROM image (what to boot / currently deployed)
  - target-image: the TO image (new build being validated, optional)

This is generic for any bootc project regardless of tag convention —
full refs including tags, digests, or PR build tags all work.

Add outputs.result so downstream promote/release jobs can gate on
the upgrade test passing:

  promote:
    needs: upgrade-test
    if: needs.upgrade-test.outputs.result == 'success'

Update consumer-guide.md:
  - New inputs model table
  - Downstream gating example (build → upgrade-test → promote)
  - Hello-world for bluefin and bluefin-lts with explicit from/to

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…llo-worlds

- Remove 'mutable tag only' constraint — digest refs are the primary use
  case (pass the freshly built digest from build job to gate promotion)
- Remove target-image from consumer-guide examples (deferred to testsuite
  issues #222 and #223); simplify to single-input build→gate→promote pattern
- Update header comment in workflow to show the canonical gating snippet
- Clean up consumer-guide hello-worlds: single image input, no from/to confusion

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- upgrade-test.yml: actionlint can't model .result on reusable-workflow
  jobs in workflow_call outputs context; add if:always() report job that
  outputs needs.upgrade-test.result and expose jobs.report.outputs.result
  instead — semantically identical, lint-clean
- reusable-build.yml: remove unused PUSH_END variable (SC2034)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
v1.9.0 bundles an actionlint version that does not support workflow_call
events, causing false positives on all reusable workflows. v1.72.0
bundles a current actionlint binary with full workflow_call support.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…-paths

composite-actions.md Known workarounds:
- reviewdog/action-actionlint must be >= v1.72.0 (v1.9.0 bundles a
  pre-workflow_call actionlint; filter_mode:added hides it on existing
  files, surfaces on new reusable workflows)
- report job pattern: expose reusable-workflow job result in workflow_call
  outputs via an if:always() report job with needs.<job>.result output;
  actionlint cannot model jobs.<job>.result in workflow_call outputs directly

factory-operations.md + skill-drift.yml:
- Widen actions code-paths glob to include upgrade-*.yml so upgrade-test
  workflow changes trigger skill-drift alongside reusable-*.yml

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Align with the design deployed in projectbluefin/bluefin clean.yml:
- Bump dataaxiom/ghcr-cleanup-action SHA to v1.2.1
  (f092b48ba3b604b2a83690dc4b2bbb3392e1045f)
- Expose delete-orphaned-images input (default: true)

Fixes dakota issue #664 prerequisites.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@castrojo

castrojo commented Jun 2, 2026

Copy link
Copy Markdown
Contributor Author

Consumer validation draft PR: projectbluefin/dakota#672 (pinned to fb75840)

- AGENTS.md: remove 'deferred' from dakota (ghcr-cleanup now deployed);
  clarify consumer validation — use affected consumer repo for
  maintenance-only actions not consumed by bluefin
- docs/skills/composite-actions.md: expand ghcr-cleanup section with
  standard usage example, delete-orphaned-images input, deployment list
- docs/SKILL.md: add routing row for ghcr-cleanup

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@castrojo
castrojo enabled auto-merge (squash) June 4, 2026 12:56
@castrojo

castrojo commented Jun 4, 2026

Copy link
Copy Markdown
Contributor Author

Action changes (v1.2.1 + delete-orphaned-images) already landed via #41. Closing to avoid conflicts.

@castrojo castrojo closed this Jun 4, 2026
auto-merge was automatically disabled June 4, 2026 13:03

Pull request was closed

@castrojo castrojo added the 4-review A pull request is awaiting review. label Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

4-review A pull request is awaiting review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Proposal: Auto-delete GHCR image tags older than 90 days

1 participant