Skip to content

ci: compile-gate all features + nightly stress-tests - #578

Merged
nh13 merged 2 commits into
mainfrom
nh/ci-feature-check
Jul 20, 2026
Merged

nh13 merged 2 commits into
mainfrom
nh/ci-feature-check

Conversation

@nh13

@nh13 nh13 commented Jul 12, 2026 •

Copy link
Copy Markdown
Member

Closes two "feature declared but never exercised in CI" gaps (task-list T3 + T4).

T3 — compile-gate every feature (all-features-check job)

CI only built a fixed feature set (default + compare,simulate,profile-adjacency); no-default-features-check built the all-off end. Between them, several declared features were never compiled — memory-debug (dozens of instrumentation sites), dhat-heap, stress-tests — free to bit-rot.

New all-features-check job runs cargo check --workspace --all-features --all-targets — every feature at once, lib + tests + benches, so any feature that stops compiling fails at PR time (and future features are covered automatically). Verified green locally. (I first tried cargo hack --each-feature, but this workspace's integration tests are #[cfg(feature)]-gated to the default set, so per-feature-in-isolation checks are noisy; --all-features is the clean, future-proof gate here.)

T4 — run the concurrency stress suite nightly (stress.yml)

test_pipeline_concurrency::stress_tests (behind stress-tests) exercises the BAM pipeline under adversarial thread counts, tiny queues, injected failures, and deadlock detection. No CI job enabled the feature, so it never ran.

New scheduled stress.yml (nightly + workflow_dispatch) runs it via a ci-test-stress alias. Scheduled rather than per-PR because the tests are timing-sensitive and a flake shouldn't block unrelated PRs (they pass in ~6s locally — trivially promotable to per-PR later if they prove stable).

Note

Both edit CI config; like the other in-flight CI PRs (#573/#574/#575/#577) each appends its own job/workflow, so merge conflicts are trivial (append-only).

Summary by CodeRabbit

  • CI Improvements
    • Added an all-features-check job to run cargo check across the full workspace with all features enabled for all targets, using the committed lockfile.
    • Introduced a “Nightly Stress Tests” workflow scheduled daily (and runnable manually) to execute timing/concurrency-sensitive stress tests.
    • Added a dedicated Cargo alias for running the stress-test suite with the required feature set and locked dependencies.

@nh13
nh13 temporarily deployed to github-actions July 12, 2026 00:29 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Jul 12, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e570a9b5-3f4c-4007-8442-b917ae67fb44

📥 Commits

Reviewing files that changed from the base of the PR and between 18f70f9 and b90771d.

📒 Files selected for processing (3)
  • .cargo/config.toml
  • .github/workflows/check.yml
  • .github/workflows/stress.yml

Walkthrough

CI adds a locked all-features workspace check and a scheduled or manually triggered stress-test workflow using a dedicated Cargo alias and nextest.

Changes

CI validation

Layer / File(s) Summary
All-features workspace check
.github/workflows/check.yml
Adds an all-features-check job running locked, all-target workspace compilation.
Scheduled stress-test execution
.cargo/config.toml, .github/workflows/stress.yml
Defines ci-test-stress with the stress-tests feature and runs it through serialized scheduled or manual GitHub Actions execution.

Estimated code review effort: 2 (Simple) | ~10 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Scheduler
  participant GitHubActions
  participant Cargo
  participant Nextest
  Scheduler->>GitHubActions: Trigger scheduled or manual workflow
  GitHubActions->>Cargo: Run cargo ci-test-stress
  Cargo->>Nextest: Run workspace tests with stress-tests feature
Loading

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the two main CI additions: an all-features compile gate and nightly stress tests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch nh/ci-feature-check

Comment @coderabbitai help to get the list of available commands.

@codecov

codecov Bot commented Jul 12, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.41%. Comparing base (3e5fb0c) to head (b90771d).

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #578      +/-   ##
==========================================
+ Coverage   93.38%   93.41%   +0.02%     
==========================================
  Files         175      175              
  Lines      104361   104361              
==========================================
+ Hits        97456    97485      +29     
+ Misses       6905     6876      -29     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nh13
nh13 force-pushed the nh/ci-feature-check branch from 908a217 to 4aa18e8 Compare July 16, 2026 20:26
@nh13
nh13 temporarily deployed to github-actions July 16, 2026 20:26 — with GitHub Actions Inactive
@nh13

nh13 commented Jul 18, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/check.yml:
- Around line 159-160: Disable checkout credential persistence by adding
persist-credentials: false to the actions/checkout steps in
.github/workflows/check.yml lines 159-160 and .github/workflows/stress.yml lines
24-25; update both workflow checkout sites consistently.

In @.github/workflows/stress.yml:
- Around line 21-22: Add a job-level timeout-minutes setting under the
stress-tests job, near runs-on, using a value comfortably above the suite’s
normal runtime so deadlocks and timing regressions terminate before the runner’s
hard limit.
- Around line 20-22: Add a permissions declaration for the stress-tests
workflow, at workflow or job scope, granting only contents: read. Place it
alongside the existing workflow or stress-tests job configuration and preserve
the current runner and test behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5f514c0c-26c1-4306-b2c3-6ae20d25aa57

📥 Commits

Reviewing files that changed from the base of the PR and between f55ac4b and 4aa18e8.

📒 Files selected for processing (3)
  • .cargo/config.toml
  • .github/workflows/check.yml
  • .github/workflows/stress.yml

Comment thread .github/workflows/check.yml
Comment thread .github/workflows/stress.yml
Comment thread .github/workflows/stress.yml
@nh13
nh13 force-pushed the nh/ci-feature-check branch from 4aa18e8 to 33a287c Compare July 18, 2026 15:35
@nh13
nh13 temporarily deployed to github-actions July 18, 2026 15:35 — with GitHub Actions Inactive
@nh13
nh13 force-pushed the nh/ci-feature-check branch from 33a287c to fd0c994 Compare July 18, 2026 16:54
@nh13
nh13 temporarily deployed to github-actions July 18, 2026 16:54 — with GitHub Actions Inactive
@nh13

nh13 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 19, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13

nh13 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 19, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13

nh13 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 19, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13

nh13 commented Jul 19, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 19, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13

nh13 commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/check.yml:
- Line 242: Update the Cargo check command in the all-features CI step to
include the --locked flag, ensuring it uses Cargo.lock without re-resolving
dependencies while preserving the existing workspace, feature, and target
checks.

In @.github/workflows/stress.yml:
- Around line 3-8: Update the introductory comment in the stress workflow to
remove the inaccurate claim that no other CI job enables the stress-tests
feature. Clarify that check.yml enables the feature only to compile the suite,
while this scheduled/on-demand workflow executes the stress tests.
- Around line 9-17: Add a stable concurrency group to the stress workflow so
scheduled and manually dispatched runs share the same group and cannot overlap.
Configure the workflow-level concurrency settings near the existing permissions
block, preserving the current trigger and cancellation behavior unless
explicitly required.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 11b54064-75aa-4b0e-9589-19e0561e7221

📥 Commits

Reviewing files that changed from the base of the PR and between 4aa18e8 and fd0c994.

📒 Files selected for processing (3)
  • .cargo/config.toml
  • .github/workflows/check.yml
  • .github/workflows/stress.yml

Comment thread .github/workflows/check.yml Outdated
Comment thread .github/workflows/stress.yml Outdated
Comment thread .github/workflows/stress.yml
@nh13
nh13 force-pushed the nh/ci-feature-check branch from fd0c994 to 18f70f9 Compare July 20, 2026 02:37
@nh13
nh13 temporarily deployed to github-actions July 20, 2026 02:37 — with GitHub Actions Inactive
@nh13

nh13 commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13

nh13 commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

The regular jobs build only a fixed feature set (default +
compare,simulate,profile-adjacency), and no-default-features-check builds the
all-off end. That left several declared features never compiled in CI --
`memory-debug` (dozens of instrumentation sites), `dhat-heap`, and `stress-tests`
-- free to bit-rot silently.

Add an `all-features-check` job (`cargo check --workspace --all-features
--all-targets`) that compiles every feature at once, across lib + tests + benches,
so any feature that stops compiling fails at PR time. Enabling everything also
covers future features automatically.
The `test_pipeline_concurrency::stress_tests` module (behind the `stress-tests`
feature) exercises the BAM pipeline under adversarial thread counts, tiny queues,
injected failures, and deadlock detection. The `all-features-check` job added in
the previous commit compiles it, but no CI job ever ran it.

Add a scheduled `stress.yml` workflow (nightly + workflow_dispatch) that runs it
via a new `ci-test-stress` alias. Run on a schedule rather than per-PR because the
tests are timing-sensitive and an occasional flake should not block unrelated
changes; they pass in ~6s locally. A `nightly-stress-tests` concurrency group
serializes scheduled and manual runs so they cannot contend for runner capacity.
@nh13
nh13 force-pushed the nh/ci-feature-check branch from 18f70f9 to b90771d Compare July 20, 2026 04:42
@nh13
nh13 temporarily deployed to github-actions July 20, 2026 04:42 — with GitHub Actions Inactive
@nh13

nh13 commented Jul 20, 2026

Copy link
Copy Markdown
Member Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Jul 20, 2026 •

Copy link
Copy Markdown
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@nh13
nh13 merged commit 8bb2271 into main Jul 20, 2026
14 checks passed
@nh13
nh13 deleted the nh/ci-feature-check branch July 20, 2026 15:24
@nh13 nh13 mentioned this pull request Jul 20, 2026

This branch was previously deployed

1 inactive deployment
github-actions — b90771dc Deployed Jul 20, 2026 by nh13 via coverage #2771
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