Skip to content

feat: content-addressable build skipping#22

Open
dylanmtaylor wants to merge 1 commit intoOpenGamingCollective:mainfrom
dylanmtaylor:feat/content-addressable-skip
Open

feat: content-addressable build skipping#22
dylanmtaylor wants to merge 1 commit intoOpenGamingCollective:mainfrom
dylanmtaylor:feat/content-addressable-skip

Conversation

@dylanmtaylor
Copy link
Copy Markdown
Contributor

Compute a SHA-256 hash of all build-relevant inputs (version, distro configs, spec/PKGBUILD, workflow file) and check the OCI registry for an existing artifact tagged with that hash before building.

If a matching artifact already exists, the entire build, push, sign, and attestation pipeline is skipped, saving CI time when inputs have not changed.

Hash inputs per workflow:

  • fedora: kernel.spec, config, kvm_stat.logrotate, config/*.set/unset, workflow file, OGC version, fedora matrix version
  • arch: PKGBUILD, config, config/*.set/unset, workflow file, OGC version
  • ubuntu: config, config/*.set/unset, workflow file, OGC version

After a successful push, the artifact is additionally tagged with sha-[-fc] so future runs can detect it.

Compute a SHA-256 hash of all build-relevant inputs (version, distro
configs, spec/PKGBUILD, workflow file) and check the OCI registry for
an existing artifact tagged with that hash before building.

If a matching artifact already exists, the entire build, push, sign,
and attestation pipeline is skipped, saving CI time when inputs
have not changed.

Hash inputs per workflow:
- fedora: kernel.spec, config, kvm_stat.logrotate, config/*.set/unset,
  workflow file, OGC version, fedora matrix version
- arch: PKGBUILD, config, config/*.set/unset, workflow file, OGC version
- ubuntu: config, config/*.set/unset, workflow file, OGC version

After a successful push, the artifact is additionally tagged with
sha-<hash>[-fc<ver>] so future runs can detect it.
@KyleGospo KyleGospo enabled auto-merge April 4, 2026 06:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants