Skip to content

ci: heavy CI never runs on a PR whose base is a feature branch — lint.yml / ci.yml pull_request triggers are limited to branches: [main], so six required contexts report nothing on such PRs (item 3 of #16149) #16482

Description

@os-zhuang

Split out of #16149 by director ruling (decision batch #66, 2026-09-07, option C): this item stands on its own — it is true of any PR based on a feature branch, not only of stacked series, which merely exposed it.

Measured (#16149, triage re-verified on origin/main)

# .github/workflows/lint.yml            # .github/workflows/ci.yml
on:
  pull_request:
    branches: [main]                        branches: [main]

A PR whose base is a feature branch triggers neither workflow. Across the six-card #14478 stack every card PR showed 8–11 light checks (Auto Label, Check Changeset, PR Size, docs drift, …) and zero of Lint & Repo Gates, TypeScript Type Check, Test Core, Build Core, Dogfood Regression Gate, Temporal Conformance. The first real signal arrived at the trunk PR, after every card was written, reviewed and merged; correctness rested on local runs quoted into PR bodies — a discipline, not a gate.

Scope

  • Make the required contexts report on PRs regardless of base branch (widen the pull_request trigger, or add a pull_request trigger without a branches filter for the heavy workflows), after reading and honouring the two comment blocks the current triggers carry: ci.yml:12-15 (every workflow producing a required check MUST keep the merge_group trigger or queue builds wait forever) and lint.yml:16 onward (the MEASURED 2026-08-25 / [finding] Merge-queue check-set parity for tree-global ratchets — measure which lint.yml jobs actually run on merge_group, then close the gap the stale-ledger outage rode through #12211 negative result), plus the concurrency cancel policy at ci.yml:17.
  • ⚠️ Runner cost rises: measure and state the expected increase (PRs per week with a non-main base × the heavy matrix) on this card before landing; if it is large, gate the heavy run on a label or on the base branch being an open PR's head rather than running for every feature-branch PR.
  • Pin: a workflow-lint test (or the existing ci-cd-pipeline-doc.test) asserting that every workflow producing a branch-protection-required check runs on pull_request for any base.

Out of scope

Acceptance

  • a PR based on a feature branch shows all six required contexts
  • merge_group behaviour unchanged (queue builds still report)
  • runner-cost delta recorded on this card
  • pin present

Refs #16149, #12211, #12933.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions