Skip to content

ci(release): apply #700 boost torn-cache pattern to release.yml (before v0.2.1 re-tag) - #702

Merged
frstrtr merged 1 commit into
masterfrom
ci-steward/release-boost-conan-rootfix
Jul 14, 2026
Merged

ci(release): apply #700 boost torn-cache pattern to release.yml (before v0.2.1 re-tag)#702
frstrtr merged 1 commit into
masterfrom
ci-steward/release-boost-conan-rootfix

Conversation

@frstrtr

@frstrtr frstrtr commented Jul 14, 2026

Copy link
Copy Markdown
Owner

Follow-up to #700 (which landed build.yml-only). master release.yml still had the flaky pattern (conan profile detect --force at Linux ~L120 / Windows ~L490, shared ~/.conan2, no lockfile), so the v0.2.1 all-coin re-tag would re-hit the boost 1.90.0 torn-header flake. This extends the #700 pattern to release.yml.

Linux + Windows package lanes (the two Conan-using lanes)

  • per-job CONAN_HOME=${{ runner.temp }}/conan2 — each concurrent coin cell on the shared c2pool-build host builds Boost into an isolated cache; this is the root-cause fix for the torn ~/.conan2.
  • committed profiles — replace conan profile detect --force + cppstd sed with -pr:a=ci/conan/linux-gcc13.profile (already committed) and new ci/conan/windows-msvc.profile (msvc 194, cppstd=20). Stable package_id, no wrong-config prebuilt fallback.
  • conan.lock — committed (boost/1.90.0 pinned) and passed via --lockfile=conan.lock on every install; cache keys now also hash the profile + lockfile.
  • Boost sentinel — header-integrity gate runs before the coin build (fast fail on a torn/apt-fallback Boost), same gate as build.yml.
  • VM217 Windows shell port (07-14) preserved.

Not changed (by design)

  • macOS lanes build against Homebrew deps, not Conan — they cannot hit the torn-cache flake. ci/conan/macos-clang.profile is committed for provenance / a future macOS→Conan migration only; the macOS lane is untouched.
  • checksums job does no Conan build.

Scope note

build.yml is already green with the #700 pattern; I deliberately did not re-touch it here to keep this PR release-scoped. Wiring build.yml to also consume conan.lock is a clean follow-up if you want lockfile enforcement fleet-wide.

Workflow-scope → your review + operator tap before merge. No self-merge.

…st sentinel on release.yml

Extends the #700 boost torn-cache fix from build.yml to release.yml so the
v0.2.1 all-coin re-tag does not re-hit the 1.90.0 torn-header flake.

Linux and Windows package lanes (the two Conan-using lanes):
- per-job CONAN_HOME=${{ runner.temp }}/conan2 so concurrent coin cells on the
  shared c2pool-build host build Boost into isolated caches (root-cause fix).
- replace `conan profile detect --force`+cppstd sed with committed profiles via
  -pr:a=ci/conan/{linux-gcc13,windows-msvc}.profile (stable package_id).
- commit conan.lock and pass --lockfile=conan.lock on every install (boost 1.90.0
  pinned); cache keys now hash profile + lockfile.
- add the Boost header-integrity sentinel gate before the coin build.

macOS lanes build against Homebrew deps (no Conan), so they cannot hit the
torn-cache flake and are left unchanged; macos-clang.profile is committed for
provenance / a future macOS->Conan migration only. checksums job does no build.
VM217 Windows shell port (07-14) preserved.
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.

1 participant