perf(ci): persist Linux compiler caches - #98
Merged
Conversation
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
zoeyrose
force-pushed
the
perf/ci-linux-cache
branch
from
August 10, 2026 21:44
1cac101 to
b71319d
Compare
zoeyrose
added a commit
to atrinik/devcontainer
that referenced
this pull request
Aug 10, 2026
Closes #24. ## Scope - add an amd64-only `classic-final` Linux target with exact Ubuntu snapshot/package locks, a non-root ccache contract, pinned Classic validation, codec smoke coverage, and nested SPDX validation - publish `classic-build` stable/platform/SHA/version tags with provenance and SBOM, plus an isolated `candidate_only` pre-merge tag that cannot move release aliases - preserve the current general and task-focused Windows image contracts while combining all four variants under the stable `Required checks` gate - keep pull-request validation private-package-free and fail closed on missing/malformed selectors or any selected/unselected job mismatch - document local and hosted size, pull, startup, job-time, and compiler-cache evidence ## Immutable coordinates - base: `main` at `38658e57b2c23b2dcf740cf8c1f1df0e017e0144` - head: `332fa210bb438c29bdfa916120b8092080aa5168` - candidate publication: [run 31427897129](https://github.com/atrinik/devcontainer/actions/runs/31427897129) - candidate index: `sha256:e117b858d5aecdb8eb39dc56451378b6e6bd72dd5e042ab96fee5b6154000043` - amd64 manifest: `sha256:cdba4bfd40f288e577842b3308e88ccfb7252623ac7b13d08074fc45cc305b8e` - linked consumer: [atrinik/classic#98](atrinik/classic#98) - read-only package governance: [atrinik/github-settings#59](atrinik/github-settings#59) ## Validation - Docker `--check` for both Dockerfiles, actionlint, ShellCheck, Bash syntax, JSON and combined toolchain inventory validation, helper regression tests, and `git diff --check` - full Linux Classic validation image plus final image against pinned Classic client/server configure-build-test-coverage workloads as the runner UID - candidate consumer cold and warm hosted runs, including successful rerun of the transient server timeout - three independent whole-diff exit reviews on the final head - latest-head PR workflows and stable `Required checks` aggregate ## Hosted evidence The durable raw ledger is [`classic-benchmark.md`](classic-benchmark.md). On the same GitHub-hosted runner image, warm candidate jobs improved over the apt-based sample by 59.2% for core (206 s to 84 s), 52.4% for client (84 s to 40 s), and 30.2% for server (202 s to 141 s). The amd64 registry layers total 401,282,166 B. Immediate repeated pulls with local layers took 210 ms and 176 ms. Warm runners restored 1,276 direct ccache hits with zero misses across the three isolated component caches. The candidate digest is review evidence, not the final consumer coordinate. After this PR is merged and semantic-release publishes the versioned image, the Classic consumer must verify the released inventories and source inputs, pin the released digest, and pass Check again before becoming ready.
zoeyrose
force-pushed
the
perf/ci-linux-cache
branch
from
August 10, 2026 23:48
e7466ba to
1d0e802
Compare
zoeyrose
force-pushed
the
perf/ci-linux-cache
branch
from
August 11, 2026 00:04
baf4688 to
4fd2311
Compare
zoeyrose
marked this pull request as ready for review
August 11, 2026 00:09
zoeyrose
added a commit
to atrinik/atrinik
that referenced
this pull request
Aug 11, 2026
## Summary - catalog the public `classic-build:1.2.3` release and its immutable index digest - record anonymous acquisition, ownership, update, validation, and EOL contracts - remove obsolete Classic Ubuntu and registry-login evidence after PR validation moved to public reusable images - refresh the libpcpnatpmp evidence string for the current shared integrated graph ## Validation - `python3 -m unittest discover -v` - `python3 -m compileall -q atrinik atrinik_workspace tests` - `python3 -m atrinik_workspace.guidance_inventory --check` - `./atrinik manifest validate` - `./atrinik supply-chain validate` - `./atrinik supply-chain audit --profile classic` with explicit repositories for the complete profile - `git diff --check` The audit covered 74 root, 88 Classic-root, 1,244 Classic component, and all selected content/devcontainer/governance/resource version-controlled inputs, plus their immutable Actions references. This is the inventory prerequisite for [atrinik/classic#98](atrinik/classic#98) and the completed `atrinik/devcontainer#24` image delivery.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #85.
Summary
packages: readpermission is used for either reusable build imageImmutable release coordinates
7ad4acc27c222db7ce3e74d7db5ac93e9464cd284fd2311f1a7b7af9280949099ae39c861bfa2bb9ghcr.io/atrinik/classic-build:1.2.3sha256:d0ec0a31f97fa1d699f62b81bbe697d95b335f44f1c99fde8704dfc528e2102fsha256:3c6fb2cefc907776cc4ea2f544d2d0756321b2b83bd44da3fe25b29cec837f0ecfd1afd4088f76f6cd327159b0d58b20a6a6b0ddcbeb59d410f138631e1b997d68df98c24c881d13f2a99fea3cd64711185b82c0classic-buildandwindows-buildare public and linked toatrinik/devcontainerValidation
git diff --checkpassThe final documentation-only evidence head passed every latest-head check. Merge the supply-chain prerequisite atrinik/atrinik#339 before merging this PR. Full raw candidate history, released-image coordinates and results, samples, commands, ccache statistics, invalidation coverage, and reproduction steps are in
docs/CI-LINUX-IMAGE.md.Refs atrinik/devcontainer#24.