Skip to content

refactor(ci): one reusable changes job replaces sixteen checkout + paths-filter copies, and the migration gate watches the code its tests import (#15360) - #18275

Merged
mrveiss merged 7 commits into
mainfrom
issue-15360-paths-filter-reuse
Oct 11, 2026
Merged

mrveiss merged 7 commits into
mainfrom
issue-15360-paths-filter-reuse

Conversation

@mrveiss

@mrveiss mrveiss commented Oct 11, 2026

Copy link
Copy Markdown
Owner

Thinking Path

#15360: sixteen workflows each carried their own copy of checkout + dorny/paths-filter, so a path rule had sixteen homes and drifted. The owner decided dedup now, with the job-graph merge (one change detection per PR) as the follow-up #18208. This PR is the dedup. It was finished from a local-only branch, rebased onto current main, and checked for reversals of later main work (none).

What Changed

Equivalence: every caller's path filters, before → after

Workflow(s) Filter set Change
api-wiring, security, startup-import-smoke, backend-required-context, ai-security-review backend-python-paths none
code-quality, code-quality-required-context code-quality-paths none
docker-smoke-test, docker-smoke-required-context docker-paths none
npm-package-tests, slm-frontend-check, verify-generated-types their own sets none
frontend-test, frontend-required-context frontend-paths +_changes.yml
python-required-context python-paths +_changes.yml, +migration-gate.yml
migration-gate migrations +11 (#17822)

Every widening is pinned by name in changes_job_equivalence_15360_test.py. Everything else is asserted identical. Runtime equivalence can only be shown by CI itself.

Verification

  • 519 passed: equivalence, one-job guard, migration-gate import guard, job-name, required-context complements, check_workflow_path_filters, symbol-fork ratchet, size ratchet, ceiling parity.
  • Run alone: guard_reach_meta_test 23, reach_scope_claim_17844_test 10.
  • yaml.safe_load passes on every changed workflow. actionlint is not installed, so it was not run.
  • Open-PR overlap: only dependabot chore(deps): bump actions/upload-artifact from 7.0.1 to 7.0.2 in the all-dependencies group #18175 (actions/upload-artifact) touches these workflows, in a different hunk.

Not done, stated rather than implied

Refs #15360
Refs #17822
Refs #18208

Model Used

Claude Opus 5.5 (master session: brief, review of the report, PR). Finished by a Claude Sonnet subagent; the earlier commits came from a subagent earlier this session.

🤖 Generated with Claude Code

…erived onto the reusable changes job (#17822)

The gate's filter listed where its tests live, not the code they import, so #17772 changed services/secrets_coordinator.py, migration-tests was skipped and the run rolled up to success. Re-derived from the preserved branch wip-17822-filter-guard, not cherry-picked, because the filter now lives in the with: filters block of the changes job that calls _changes.yml.

- 3006cacbb8: the eleven secrets/credential entries go into migration-gate.yml's on.push.paths and the changes job's migrations filter; python-paths.yml gains migration-gate.yml so the guard runs when the workflow is edited.
- c88938bd72: the import-derived coverage guard, now parsing the changes job's with: filters (and requiring it to call _changes.yml), with a declared reach, floor, policy entry and scope claim.
- changes_job_equivalence_15360_test: the eleven entries and the python-paths.yml entry are a named, pinned allowed delta citing #17822; the frozen pre-#15360 fixture is untouched.
- 5258acc (the secrets_coordinator fix) already landed on main as 26ecfab (#17824) and is not part of this change.

Refs #17822
… glob constants the 15900 census reads as guard reads (#15360)
@coderabbitai

coderabbitai Bot commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Next included review available in 6 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: mrveiss/AutoBot-AI/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 28f7e16c-8c74-49e8-9324-12e90d2c89e8

📥 Commits

Reviewing files that changed from the base of the PR and between 1349f43 and ecf882f.


📒 Files selected for processing (30)
  • .github/filters/frontend-paths.yml
  • .github/filters/python-paths.yml
  • .github/workflows/_changes.yml
  • .github/workflows/ai-security-review.yml
  • .github/workflows/api-wiring.yml
  • .github/workflows/backend-required-context.yml
  • .github/workflows/code-quality-required-context.yml
  • .github/workflows/code-quality.yml
  • .github/workflows/docker-smoke-required-context.yml
  • .github/workflows/docker-smoke-test.yml
  • .github/workflows/frontend-required-context.yml
  • .github/workflows/frontend-test.yml
  • .github/workflows/migration-gate.yml
  • .github/workflows/npm-package-tests.yml
  • .github/workflows/python-required-context.yml
  • .github/workflows/security.yml
  • .github/workflows/slm-frontend-check.yml
  • .github/workflows/startup-import-smoke.yml
  • .github/workflows/verify-generated-types.yml
  • pipeline-scripts/check_workflow_path_filters.py
  • pipeline-scripts/check_workflow_path_filters_test.py
  • repo_tests/_reach_policy.py
  • repo_tests/changes_job_equivalence_15360_test.py
  • repo_tests/fixtures/issue_17822_migration_gate_entries.json
  • repo_tests/fixtures/pre_15360_changes_jobs.json
  • repo_tests/job_name_names_what_it_runs_test.py
  • repo_tests/migration_gate_filter_covers_what_its_tests_import_test.py
  • repo_tests/one_paths_filter_job_15360_test.py
  • repo_tests/reach_scope_claim_17844_test.py
  • repo_tests/required_context_complements_test.py

  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

✅ SSOT Configuration Compliance: Passing

🎉 No new hardcoded values of either class — ssot and other both block.

Known backlog in pipeline-scripts/hardcoded_values_baseline.txt is suppressed and tracked in #14371.

…ter-reuse

# Conflicts:
#	repo_tests/_reach_policy.py
#	repo_tests/reach_scope_claim_17844_test.py
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.

1 participant