Skip to content

ci: skip e2e_test on master pushes, run a daily nightly canary instead - #10639

Merged
davidfirst merged 3 commits into
masterfrom
ci-no-master-e2e
Aug 19, 2026
Merged

ci: skip e2e_test on master pushes, run a daily nightly canary instead#10639
davidfirst merged 3 commits into
masterfrom
ci-no-master-e2e

Conversation

@davidfirst

Copy link
Copy Markdown
Member

Why

The e2e_test run on every master push gates nothing: bit_merge requires only generate_and_check_types, and the merge queue's "settled" check watches bit_merge alone (.github/scripts/merge-queue.js). Every PR already ran the full suite to get merged, so the per-merge master run was a purely informational duplicate at ~5.5k credits per merge (~440k credits/month at current merge volume).

Change

  • e2e_test in build_and_test now ignores the master branch.
  • A daily e2e_test canary runs in the existing nightly workflow (catches merge-order interactions that individual PR runs can't).

Extracted from #10597 (closed) — this is the single highest-value change from that PR, with none of the resource-class/parallelism changes.

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

PR Summary by Qodo

Reduce master E2E runs with a daily nightly canary

⚙️ Configuration changes ✨ Enhancement 🕐 Less than 10 minutes

Grey Divider

AI Description

• Skip redundant E2E runs on master pushes to reduce CircleCI credit consumption.
• Run E2E daily on master to detect merge-order integration regressions.
• Preserve existing PR E2E coverage and master merge gating.
Diagram

graph TD
  A["Code Push"] --> B["Build Workflow"] --> C{"Master Branch?"}
  C -- "No" --> D["E2E Test"]
  C -- "Yes" --> E["Bit Merge"]
  F["Daily Schedule"] --> G["Nightly Workflow"] --> D
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Retain per-push master E2E
  • ➕ Provides immediate feedback after every merge
  • ➕ Maximizes detection frequency for merge-order regressions
  • ➖ Consumes substantial CircleCI credits
  • ➖ Duplicates the full suite already required before merge
  • ➖ Does not participate in master merge gating
2. Use path-filtered master E2E
  • ➕ Runs more frequently when likely relevant files change
  • ➕ Reduces execution compared with unconditional master runs
  • ➖ Adds maintenance complexity to CI configuration
  • ➖ Can miss cross-cutting or merge-order interactions
  • ➖ Requires reliable ownership of E2E-relevant paths

Recommendation: The proposed daily canary is the best balance: it removes an expensive, non-gating duplicate while preserving broad master integration coverage. Retaining per-push execution is unnecessarily costly, and path filtering would be more complex and less reliable for detecting cross-cutting regressions.

Files changed (1) +13 / -0

Other (1) +13 / -0
config.ymlMove master E2E coverage to the nightly workflow +13/-0

Move master E2E coverage to the nightly workflow

• Adds a master branch exclusion to the regular build_and_test E2E job while leaving non-master coverage intact. Adds the same E2E job after setup_harmony in the existing daily master-only nightly workflow, with comments documenting the gating and cost rationale.

.circleci/config.yml

@qodo-free-for-open-source-projects

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can show, collapse, or hide each part of a finding: code, evidence, and all

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@davidfirst
davidfirst enabled auto-merge (squash) August 19, 2026 19:43
@davidfirst
davidfirst merged commit 01e817c into master Aug 19, 2026
14 checks passed
@davidfirst
davidfirst deleted the ci-no-master-e2e branch August 19, 2026 22:05
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.

2 participants