ci: run the lean zakura test suite on fork branches#62
Closed
evan-forbes wants to merge 5 commits into
Closed
Conversation
The upstream Zebra CI test workflows trigger only on `branches: [main]`, so none of them ran on this fork's `ironwood-main` baseline or the `feat/p2p-v2` stack (a push to `feat/p2p-v2` or a PR targeting `ironwood-main` never matched the filter). Add the fork branches (`ironwood-main`, `evan/ironwood-qol`, `feat/p2p-v2`) to the push and pull_request filters of unit/crate/docker/lint and coverage. Adopt zakura's lean tuning so the fork doesn't pay upstream's full cost: - unit tests run on ubuntu-latest + stable only (was ubuntu/macOS/Windows x stable/beta), with a debug build on PRs and a release build off the PR path - add merge_group, a nightly schedule, and workflow_dispatch triggers - gate the heavy release unit run, the Docker image build, and the config tests behind the `A-release` label / non-PR events Keep the newer ironwood-only job content: the `zebra-rollback-state` rollback-tool Docker check, the MSRV rollback-state build, and the taiki-e cargo-deny install that avoids cargo-deny-action registry timeouts. Also restore the status-checks patch's paths-ignore to an exact inverse of the test workflows (adds `supply-chain/**` and `.config/nextest.toml`).
Enabling the lint suite on fork branches surfaced pre-existing lint failures already present on feat/p2p-v2: - zebra-rpc cookie.rs: drop needless `Ok(_?)` (clippy::needless_question_mark) - zebrad datadir.rs: drop a needless `&` borrow (clippy::needless_borrow) - zebra-network zakura testkit node.rs: gate the test-only `endpoint()` with `#[cfg(test)]` so the non-test lib build no longer flags it as dead code - zebrad reorg.rs test: rustfmt
These tests fail deterministically on feat/p2p-v2 (in both debug and release) but were hidden behind nextest fail-fast, which cancelled the run at the first failure: - local_genesis: NU7 inherits the post-Blossom 75s consensus target spacing, not 25s; the old assertion conflated it with the harness block-timestamp spacing option - chain_tip_sender_is_updated: ChainTipChange now resets one block before an activation height (commit 4434a6c, matching the mempool's next-height verification), so the BeforeOverwinter reset moved from height 1 to height 0 - mempool_cancel_downloads_after_network_upgrade / mempool_reverifies_after_tip_change: build on a configured testnet that activates NU5 at a reachable height, so the committed block crosses a real network-upgrade reset boundary under the new next-height semantics - ensure_timeouts_consistent: update the stale upstream invariants for this fork's deliberate SYNC_RESTART_DELAY (operation timeout) / SYNC_RESTART_SLEEP (inter-round idle) split
- deny.toml: ignore RUSTSEC-2026-0173 (proc-macro-error2 unmaintained, pulled in transitively via getset) - supply-chain: regenerate cargo-vet exemptions for bumped dependency versions (orchard 0.14, zcash_* 0.x, halo2_gadgets 0.5, filetime, tar)
- test-crates.yml: skip the MSRV build for zebra-watchdog, like zebrad it is a binary rather than a library and depends on sentry, which requires a newer rustc than the workspace library MSRV (1.85.1) - tests-unit.yml: add a Zakura regtest dual-stack e2e job (ZAKURA_REGTEST_E2E=1, host-networked docker compose) and require it through the `test success` gate
Author
|
Closing: this branch targets the stale |
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.
Motivation
Zebra's CI test workflows trigger only on
branches: [main], so none of themran on this fork's
ironwood-mainbaseline or thefeat/p2p-v2stack — pushesand PRs there silently skipped unit tests, crate builds, lint, and coverage.
What this does
Adds the fork branches (
ironwood-main,evan/ironwood-qol,feat/p2p-v2) tothe
push/pull_requestfilters of tests-unit, test-crates, test-docker,lint, and coverage, and adopts the lean tuning from the zakura fork:
ubuntu-latest+stableonly (debug on PRs, release off thePR path) instead of upstream's ubuntu/macOS/Windows × stable/beta matrix
merge_group+ nightlyschedule+workflow_dispatchtriggersA-releaselabel / non-PR eventsNewer ironwood-only job content is kept: the
zebra-rollback-staterollback-tool Docker check, the MSRV rollback-state build, and the taiki-e
cargo-deny install (avoids cargo-deny-action registry timeouts). The
status-checks patch's
paths-ignoreis restored to an exact inverse of thetest workflows (
supply-chain/**,.config/nextest.toml).Test evidence
This PR is the test evidence: it targets
feat/p2p-v2precisely so the newlean suite runs against the p2p stack for the first time. On a non-release PR
this exercises debug unit tests, the full crate-build matrix, and lint —
Docker/coverage stay gated off. Triaging the resulting check failures here.
AI disclosure
Used Claude Code to author these workflow changes.