ci(release): full coin x platform release matrix (release.yml)#75
Merged
Conversation
One workflow packages all five coin binaries (btc, ltc[+doge aux], dgb, dash, bch) on Linux x86_64, macOS arm64 and Windows x86_64 at tag time, emitting per-coin archives plus a single SHA256SUMS, matching the v0.1.x-alpha release asset shape. Each cell gates on entrypoint presence (src/c2pool/main_<coin>.cpp + src/impl/<coin>, same gate as coin-matrix.yml) and all matrices are fail-fast:false, so a red coin (e.g. btc pending the web_server retype) never blocks the other coins from packaging. Tags + workflow_dispatch only — PR-time coverage stays in coin-matrix.yml. On tags the checksums job creates a DRAFT release; publishing remains a manual operator action. macOS universal (arm64+x86_64 lipo) is a flagged follow-up on this workflow; v1 ships the proven brew arm64 path.
c083e80 to
f798abb
Compare
Operator decision 2026-06-11: ship universal macOS binaries instead of arm64-only. Build each arch natively on its own runner (macos-14 -> arm64, macos-13 -> x86_64) — no cross-compile, no dual Conan profile. A new macos-universal job lipo-merges the per-arch binary and every bundled dylib into a single universal package. Per-arch packages are intermediate artifacts (intermediate-macos-*); only the universal pkg-macos-* ships and feeds SHA256SUMS.
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.
Implements the V36 ship packaging matrix per integrator dispatch 2026-06-10.
What
New
.github/workflows/release.yml: 5 coins (btc, ltc[+doge merged-mining aux], dgb, dash, bch) x 3 platforms (Linux x86_64, macOS arm64, Windows x86_64), per-coin archives + singleSHA256SUMS, matching the v0.1.x-alpha asset shape.Design
src/c2pool/main_<coin>.cpp+src/impl/<coin>, same corrected gate as coin-matrix.yml / PR ci(coin-matrix): fix BTC entrypoint gate (src/c2pool/main_<coin>.cpp) #66) and all matrices arefail-fast: false— a red btc never blocks ltc/dash/doge/dgb/bch packaging (the 3-of-4-ships decouple). On current master all cells no-op until each coin's main_.cpp split lands; they then activate automatically with no YAML change.v*tags +workflow_dispatch(full-matrix dry run from any ref). Intentionally NOT on pull_request — PR-time coverage stays in build.yml/coin-matrix.yml; this is 15 cells.if: always(), downloads whatever packages were produced, emits one SHA256SUMS; on tags creates a DRAFT release. CI never publishes — operator publishes manually.Known follow-ups (flagged, not in this PR)
start.sh/start.batinvoke the legacyc2poolbinary name; per-coin launcher args are a packaging follow-up.Validation
Merge is gated on operator push-approval — do not merge.