diff --git a/.woodpecker/ci.yml b/.woodpecker/ci.yml index a20b96d9..5427677a 100644 --- a/.woodpecker/ci.yml +++ b/.woodpecker/ci.yml @@ -21,11 +21,19 @@ variables: - &enable_pnpm 'corepack enable' when: - # PR + manual CI run on any branch — the pull_request pipeline is the merge gate. - # push CI is restricted to protected branches (main) so a feature-branch push no - # longer fires a redundant SECOND pipeline alongside its PR pipeline. This ~halves - # CI load on the storage-constrained runner with zero loss of gating (branch - # protection requires no push/ci status context; main still gets full push CI). + # PR + manual CI run on any branch: the pull_request pipeline is the merge + # gate (next is protected and the default branch since 2026-08-19). + # Push CI runs on main only. next deliberately runs NO push ci: post-merge + # verification on next is carried by publish.yml's `verify` step + # (pnpm verify:release), which mirrors this pipeline's complete mandatory + # set step-for-step, enforced by scripts/verify-release.test.mjs. PR CI + # tests the PR HEAD tree (refs/pull/N/head, measured 2026-08-19), not a + # merge ref, so if next advances before a merge the landed tree differs + # from the tested one; publish verify re-runs the full set on the landed + # tree (PGlite path). Measured 2026-08-19: the 21 most recent push events + # on next each ran exactly one pipeline (publish), zero ci. + # Keeping push ci off next also avoids a redundant second full-suite run + # per merge on the storage-constrained runner. - event: [pull_request, manual] - event: push branch: main