casa21 self-hosted runner for Integration Tests#547
Conversation
1ce934a to
f3f53b0
Compare
- generate funding blocks in smaller batches to avoid RPC timeouts on slow/contended CI hosts - add built-in retry/backoff to `BitcoinCore::fund_wallet` for transient startup RPC failures - remove `jd_integration`-local `fund_wallet_with_retry` helper and use `tp.fund_wallet()` directly - update wallet funding rustdocs to document batching + retry behavior
ec0235b to
96387dc
Compare
| name: Integration Tests | ||
|
|
||
| jobs: | ||
| ci: |
96387dc to
f9e9490
Compare
f9e9490 to
5c62b0b
Compare
6713148 to
a1091d5
Compare
|
@Shourya742 suggested researching on how to leverate todo: research which config parameter would allow for that, and whether it improves determinism in a meaningful way |
|
todo: write a script that will execute the entire test stack (as if it were from CI) multiple repeated times, so we have statistical sampling of how deterministic that's important because the current approach makes overall, if there's something wrong with the PR, we want CI to fail fast (that's kinda the point of accelerating CI execution) but we DON'T want CI to constantly fail due to flaky tests and force us to constantly re-trigger TLDR: I'm only going to make this PR ready for review when I get >90% determinism from a sufficiently large statistical sample... otherwise |


integration_github_runnerjoblegacy runner, capped to github free runners
integration_casa21_runnerjobnew runner on self-hosted infra @CasaVinteUm
VM parameters:
only PRs coming from members of
stratum-mininggithub org triggerintegration_casa21_runnerintegration_requiredjobgates whether the PR is blocked for merging by leveraging
github-scriptto enforce this truth table, whereintegration_casa21_runnertakes precedence:integration_github_runnerintegration_casa21_runnerintegration_required(PR blocked?)(but doesn't matter)
(but doesn't matter)
(but doesn't matter)
(but doesn't matter)
(but doesn't matter)
(but doesn't matter)
or more concisely, as a mermaid flowchart:
flowchart TD R[integration_required] R --> C{integration_casa21_runner?} C -->|passed ✅| U[PR unblocked ✅] C -->|failed ❌| B[PR blocked ❌] C -->|absent| G{integration_github_runner?} G -->|passed ✅| GU[PR unblocked ✅] G -->|failed ❌| GB[PR blocked ❌] G -->|running 💫| W[waiting 💫]parallelism parameters
cargo nextestparameterintegration_github_runnerintegration_casa21_runner--nocapture(forces sequential execution)--test-threads(number of threads for parallel execution)performance comparison
integration_casa21_runnerintegration_github_runner6x improvement 🚀