Skip to content

ci: cover btc-embedded + dash-spv-embedded, un-gate qt build, add BTC smoke - #45

Merged
frstrtr merged 2 commits into
masterfrom
ci/extension-multi-branch
May 27, 2026
Merged

ci: cover btc-embedded + dash-spv-embedded, un-gate qt build, add BTC smoke#45
frstrtr merged 2 commits into
masterfrom
ci/extension-multi-branch

Conversation

@frstrtr

@frstrtr frstrtr commented May 24, 2026

Copy link
Copy Markdown
Owner

Summary

CI extension to plug three coverage gaps flagged in the ci-steward reassignment:

  • Triggerspush and pull_request now include btc-embedded and dash-spv-embedded alongside master/windows-build/service-update. Direct pushes to those feature branches previously ran no CI; only PRs targeting master triggered (and PR Dash mainnet readiness: embedded GBT + Phase C complete + interop fixes #43 had been open 30+ days under that limitation).
  • qt-webengine — drops the blanket if: false. Configure + Build steps now run on every CI invocation, so any API breakage in PageEmbedded::destroyView or its Qt deps fails compile and gates the merge. The mount/destroy×100 runtime step keeps the known QtWebEngine 6.4.2 + GPU-less-runner SIGSEGV from blocking by marking it continue-on-error: true — when Ubuntu PPA eventually ships Qt 6.6+ or a self-hosted runner lands, drop that flag to re-promote it to gating.
  • btc-linux — new job that builds the c2pool-btc target as a smoke. Gated to refs where btc-embedded is involved (push ref, PR head, or PR base), so it's a no-op on master itself (the BTC sources don't exist there yet) and activates as soon as this workflow lands on btc-embedded via merge. Until now, BTC had zero automated coverage on any commit.

Deferred (out of scope, follow-up PR on btc-embedded)

  • src/impl/btc/test/share_test.cppadd_subdirectory(test) is commented out in src/impl/btc/CMakeLists.txt because the test still references LTC types; revival is owned by the btc-heap-opt arc.
  • src/impl/btc/test/template_parity_test.cpp — the file header claims a standalone g++ build works, but transitive includes pull in nlohmann_json / leveldb_store / core/log. Needs a proper CMake target rather than ad-hoc compile flags in CI.

Test plan

  • CI runs on this PR — Linux / macOS / Windows / web-static / qt-webengine all green (qt-webengine build gating, runtime continue-on-error). btc-linux skipped (gate off, since PR base is master, head is ci/extension-multi-branch).
  • After merge, integrator decides whether to back-port the build.yml changes onto btc-embedded and dash-spv-embedded so direct pushes to those branches start triggering CI immediately, or wait for the next master-merge flow.
  • Once on btc-embedded: the btc-linux gate flips active and cmake --build --target c2pool-btc runs on every push/PR there.

Coordination

Do not merge without integrator sign-off (per [handoff] policy).

frstrtr added 2 commits May 24, 2026 19:34
- push/PR triggers now cover btc-embedded and dash-spv-embedded.
  Previously only PRs to master triggered CI on those branches; direct
  pushes to either branch had no coverage at all.

- qt-webengine job no longer gated by `if: false`. Configure + Build
  steps run unconditionally (catches PageEmbedded API breakage). The
  runtime mount/destroy x100 step is marked continue-on-error so the
  known QtWebEngine 6.4.2 + GPU-less-runner SIGSEGV doesn't block
  merges while still surfacing if a future Qt bump fixes it.

- New btc-linux job builds c2pool-btc target as smoke coverage for the
  embedded BTC SPV binary. Gated to runs where btc-embedded is the
  push ref, PR head, or PR base — no-op on master itself (where the
  BTC sources don't exist). Activates when this workflow flows into
  btc-embedded via merge. BTC previously had zero automated coverage.

share_test.cpp and template_parity_test.cpp under src/impl/btc/test/
are deferred to a follow-up on btc-embedded that re-enables
add_subdirectory(test) and gives template_parity proper CMake plumbing.
Per the 2026-05-24 multi-coin landing strategy: every PR builds and
smoke-tests every coin binary that exists on the branch. Forward-
compatible — each coin's job activates when src/c2pool/main_<coin>.cpp
and src/impl/<coin>/ are both present. On master today all four
entries skip with a notice; the matrix activates per coin as their
splits land (btc via the embedded branch; dash via Bucket-B; ltc/doge
once main_<coin>.cpp is split out from the legacy c2pool binary).

Triggers and tooling versions match build.yml for consistency. The
existing btc-linux: job in build.yml becomes redundant once this
covers btc on the btc-embedded branch; delete in a follow-up.
@frstrtr
frstrtr merged commit 5c9d916 into master May 27, 2026
13 checks passed
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