Files
greptimedb/.github/heavy-ci.md
Weny Xu e87766d7ef ci: reduce repeated Windows and fuzz tests on pull requests (#10043)
* ci: reduce repeated Windows and fuzz tests on pull requests

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: use the nightly merge label as the enqueue opt-in

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: log nightly merge decisions for dry-run verification

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: gate expensive jobs on GitHub script tests

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: grant pull request write permission for nightly label sync

Signed-off-by: WenyXu <wenymedia@gmail.com>

* ci: run platform checks on schedule or manual dispatch

Signed-off-by: WenyXu <wenymedia@gmail.com>

* test(ci): update PR gate count for scheduled platform checks

Signed-off-by: WenyXu <wenymedia@gmail.com>

---------

Signed-off-by: WenyXu <wenymedia@gmail.com>
2026-10-29 00:00:07 +00:00

1.7 KiB

Heavy CI scheduling

Checks, Rust CI, and Integration CI each run the shared GitHub script test action before expensive builds and tests. A failed, skipped, or cancelled script-test job blocks those jobs, including manually dispatched runs. Each workflow runs its own preflight so it does not wait on another workflow run.

Rust CI keeps the Windows compilation check on PRs and merge groups. Windows nextest and Windows SQLness run in the existing Nightly CI workflow, which also supports manual dispatch. Its existing schedule is Tuesday through Friday at 07:00 Asia/Shanghai, not every day. No new Windows test job is added.

Integration CI admits fuzz when a non-draft PR is opened or marked ready for review, selecting suites with the existing diff-scope classifier. Its weekday schedule (23:00 Asia/Shanghai, Monday through Friday) runs all fuzz suites. Ordinary pushes and reopening do not run fuzz; core integration checks still run. Merge groups continue to skip fuzz.

Re-running an ordinary push-triggered Integration CI run does not enable fuzz. A new push can cancel an earlier ready-for-review run. Use an explicit fuzz profile through the CI entry points below when later changes need fuzz coverage.

For a same-repository branch, use Run workflow and select fuzz_profile (standalone, distributed, chaos, or all). The default none runs core integration without fuzz. The existing /ci fuzz ... commands remain available for same-repository draft PRs with their existing authorization rules.

Validate job admission with node --test .github/scripts/heavy-ci-policy.test.cjs. These tests verify triggering decisions, not runner availability or performance.