Skip to content

Split MSan depends CI job#67

Open
kiwidream wants to merge 1 commit into
mainfrom
split-msan-depends-main
Open

Split MSan depends CI job#67
kiwidream wants to merge 1 commit into
mainfrom
split-msan-depends-main

Conversation

@kiwidream

@kiwidream kiwidream commented Jul 2, 2026

Copy link
Copy Markdown
Member

Summary

Split the existing MSan, depends CI matrix entry into two smaller jobs targeting the same MSan environment:

  • MSan, depends, unit tests
  • MSan, depends, functional tests

The split is selected with MSAN_CI_PART in the MSan env file. The default unset behavior remains unchanged for local/manual use. The unit job skips functional tests and non-test executables, while the functional job skips BUILD_TESTS but keeps the functional-test tools enabled so tool-dependent functional coverage is not silently skipped.

Testing

  • Built locally.
  • Ran focused unit or functional tests for the changed area.
  • Ran lint or formatting checks relevant to this change.
  • Not run. Reason:

Checks run:

  • bash -n ci/test/00_setup_env_native_msan.sh ci/test/03_test_script.sh ci/test/00_setup_env.sh
  • Parsed .github/workflows/ci.yml with Ruby YAML and PyYAML.
  • git diff --check origin/main...HEAD
  • Verified the MSAN_CI_PART env resolution for default, unit, and functional paths through ci/test/00_setup_env.sh.
  • Docker repo lint image build and lint runner passed.
  • Dockerized actionlint was also run; it reports existing workflow findings already present on the base workflow, so those broader workflow cleanups are left out of scope for this PR.

Target Branch

  • This PR targets main or a maintainer-requested release branch such as 0.1.x.

Risk / Review Notes

  • Consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.
  • No consensus, script, crypto, wallet, P2P, release, CI, or security-sensitive behavior changed.

Notes: CI behavior changes only. Runtime consensus, wallet, P2P, script, crypto, and release code are unchanged.

Docs / Process Impact

Choose exactly one:

  • I updated public docs because this PR changes user-visible behavior, integration guidance, release/process guidance, or expected validation.
  • No public docs update needed. Reason: CI-only job scheduling change.

libbitcoinpqc Subtree Checklist (if src/libbitcoinpqc changed)

N/A; src/libbitcoinpqc is unchanged.


View with Codesmith Autofix with Codesmith
Need help on this PR? Tag /codesmith with what you need. Autofix is disabled.


Note

Low Risk
CI scheduling and build flags only; no runtime product code changes. Slightly higher operational risk if one split job misconfigures test toggles and silently drops coverage.

Overview
Splits the single MSan depends CI job into two parallel matrix jobs so unit and functional MSan coverage run separately with smaller, targeted builds.

The workflow passes MSAN_CI timeout-minutes from the matrix into the job env. 00_setup_env_native_msan.sh branches on MSAN_CI_PART: the unit job sets ci_native_msan_unit, runs unit tests only, uses GOAL=all, and turns off GUI/daemon/CLI and other non-test binaries; the functional job sets ci_native_msan_functional, skips unit tests, disables BUILD_TESTS, and keeps qbit-tx, qbit-util, and qbit-wallet for functional coverage. Unset MSAN_CI_PART keeps the prior combined behavior for local runs.

The Set mmap_rnd_bits step now applies to any container whose name starts with ci_native_msan, not only the legacy single name.

Reviewed by Cursor Bugbot for commit 9a78714. Bugbot is set up for automated code reviews on this repo. Configure here.

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