Skip to content

[Devops] Stabilize schema CI check names for required-status-check pinning #647

Description

@lowlydba

Context

Split off #646 while wiring up the omf-github-terraform side (omf-github-terraform#96). Two check-name stability problems surfaced that need fixing in this repo before more of #646's checks can be safely pinned as required:

  1. check-python-code.yaml has no aggregator job. Its matrix (Check (default, py3.10)py3.14, Check (lowest-direct, py3.10)) produces one status per cell with no combined gate. Adding or dropping a Python version silently drops that cell out of the required-check list until the ruleset is updated to match, and there's no single stable name to pin.
  2. test-schema.yaml's Build job name collides with schema-pr-preview.yml's Build job. [FEATURE] Branching strategy Phase 3 - PyPI and CodeArtifact publish workflows #638 adds a pull_request trigger to test-schema.yaml so it can post a status on PRs (it's push-only today, which means pinning it as required right now would deadlock every merge). But both workflows name their job Build, so once [FEATURE] Branching strategy Phase 3 - PyPI and CodeArtifact publish workflows #638 merges, a required check on that name is ambiguous about which workflow it's watching.

Scope

  • Add an all-checks-pass gate job to check-python-code.yaml (needs: [check], if: always(), fails if any matrix cell failed), so the required-check list only ever needs this one stable name instead of six per-cell contexts.
  • Rename one side of the Build/Build collision, either test-schema.yaml's job or schema-pr-preview.yml's, so each produces a distinct check-run name. Coordinate with whichever of [FEATURE] Branching strategy Phase 3 - PyPI and CodeArtifact publish workflows #638 or this lands second.
  • Once both are in, verify against a real fork PR (not just a same-repo branch) that all-checks-pass and the renamed Build check both trigger and report correctly, push-only workflows don't fire for fork PRs and would deadlock a required check depending on them.
  • Report the final stable names back to omf-github-terraform#96 (or a follow-up PR there) so they get added to schema's required-check list.

Out of scope

  • check-python-package-versions.yaml's reusable-workflow-derived context (check / Check Python package versions), vnext-compat.yaml's Check vnext compatibility, require-changelog-fragment.yaml's Require changelog on package change, and enforce-change-type-label.yaml's Check label: already stable single-job names, already wired into the ruleset in omf-github-terraform#96.
  • The ruleset change itself, that's omf-github-terraform#96, not this repo.

Acceptance

  • check-python-code.yaml has an all-checks-pass job that fails whenever any matrix cell fails.
  • test-schema.yaml and schema-pr-preview.yml no longer share a job name.
  • A fork PR is confirmed to trigger and report both checks correctly.

Parent: #646

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions