Skip to content

fix(ci): gate required schema-parity & verify-non-root via changes job (#1222) — main#1236

Merged
dolho merged 1 commit into
mainfrom
fix/1222-ci-required-check-shim-main
Jun 16, 2026
Merged

fix(ci): gate required schema-parity & verify-non-root via changes job (#1222) — main#1236
dolho merged 1 commit into
mainfrom
fix/1222-ci-required-check-shim-main

Conversation

@vybe

@vybe vybe commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Problem

The CI required-check shim from #1223 landed on dev but not on main. main still path-filters schema-parity and verify-non-root at the workflow trigger, so any PR to main (including dev → main release PRs) that doesn't touch DB or docker/** paths freezes BLOCKED — the required context stays "expected" forever and enforce_admins blocks the override.

Fix

Promote the #1223 change to main verbatim (cherry-pick of 9e4882d4): move path filtering from the workflow trigger to a cheap changes detector job (dorny/paths-filter) + a job-level if: on the heavy job.

  • A job skipped via if: still posts a check run (conclusion: skipped), which branch protection counts as passing → the required context is always present.
  • The heavy job runs only when the relevant surface changes → intent preserved:
    • schema-parity still runs (and can block) on src/backend/db/**, database.py, utils/helpers.py, …
    • verify-non-root still boots the stack (and can block) on docker/**, docker-compose*.yml, scripts/deploy/start.sh, src/mcp-server/Dockerfile.

This brings main fully in sync with dev on both workflow files (the cherry-pick closes the entire main..dev gap: 77 insertions / 36 deletions across the two files).

Self-merging — no branch-protection change needed

This PR edits both workflow files, and each filter includes its own path, so both real jobs run here and post all four required contexts.

Relates to #1222 (the dev-side fix shipped as #1223).

🤖 Generated with Claude Code

#1222)

Both checks were required on `dev` but path-filtered via
`on.pull_request.paths`, so they never posted a status on PRs that don't
touch DB/docker paths — leaving the required context "expected" forever and
freezing the entire dev merge queue (admin override blocked too via
enforce_admins).

Move the path filter from the workflow trigger to a cheap `changes` detector
(dorny/paths-filter) + job-level `if:`. A job skipped via `if:` still posts a
check run (conclusion: skipped), which branch protection counts as passing —
so the required context is always present, while the heavy job runs only when
the relevant surface changes. Intent preserved: schema-parity still blocks real
schema drift on `src/backend/db/**`; verify-non-root still blocks root/socket
regressions on `docker/**`.

Self-merging: this PR edits both workflow files (each filter includes its own
path), so both real jobs run here and post all four required contexts — no
branch-protection change or admin override needed.

Fixes #1222

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vybe vybe requested a review from AndriiPasternak31 as a code owner June 16, 2026 13:49
@dolho dolho merged commit b6ba516 into main Jun 16, 2026
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants