diff --git a/.gitea/workflows/pr-checks.yml b/.gitea/workflows/pr-checks.yml index 47baf13..d802854 100644 --- a/.gitea/workflows/pr-checks.yml +++ b/.gitea/workflows/pr-checks.yml @@ -1,8 +1,15 @@ -# Gate every pull request into `main` on a fast, DB-free check suite so a broken -# build or failing test can't reach the deployable branch. Complements +# Gate every pull request into `main` or `edge` on a fast, DB-free check suite so +# a broken build or failing test can't reach either integration branch. Complements # build-images.yml, which runs only AFTER merge (on push to main) to publish # images — this one runs BEFORE merge. # +# `edge` is listed as well as `main` because long workstreams land phase by phase +# on `edge` and reach `main` as a single cutover (the module system, protocol v3). +# With `branches: [main]` alone, every one of those phase PRs merges with NO checks +# at all and the entire workstream runs blind until the cutover — which is exactly +# what happened to the nine Android M12 phase PRs in that repo. A branch that +# accumulates work for weeks needs the gate more than `main` does, not less. +# # Enforcement (one-time, in the Gitea UI): # Repository Settings → Branches → Branch Protection (rule for `main`) # • Enable Status Check @@ -10,6 +17,10 @@ # Note: Gitea only lists a context in its dropdown after it has reported once, # so let this workflow run on one PR first. The `PR Checks / *` glob matches # without needing the dropdown. +# The workflow now RUNS on PRs into `edge` too, but running is not enforcing: +# blocking a red phase PR needs its own protection rule for `edge`, with the +# same `PR Checks / *` pattern. Without one the checks report and merging stays +# possible anyway. # # Runner: reuses the existing self-hosted `ubuntu-latest` runner. These jobs need # only Node (no Docker socket), and the server tests stub their models + point the @@ -19,7 +30,7 @@ name: PR Checks on: pull_request: - branches: [main] + branches: [main, edge] # A newer push to the same PR cancels the in-flight run. concurrency: