Skip to content

ci: add path-based change detection to skip irrelevant jobs#209

Merged
steilerDev merged 1 commit into
betafrom
ci/path-based-ci-filtering
Feb 23, 2026
Merged

ci: add path-based change detection to skip irrelevant jobs#209
steilerDev merged 1 commit into
betafrom
ci/path-based-ci-filtering

Conversation

@steilerDev
Copy link
Copy Markdown
Owner

Summary

  • Adds a detect-changes job that uses git diff to classify changed files into three groups: app (shared/server/client + root config files), e2e, and ci (.github/workflows/)
  • Each downstream job now has an if: guard so irrelevant jobs are skipped:
    • quality-gates: runs when app or ci changed
    • docker: runs when app, e2e, or ci changed
    • e2e: runs when targeting main AND app, e2e, or ci changed
  • PRs that only touch docs, README, or wiki files will have all three jobs skipped — GitHub branch protection treats skipped jobs as passing for required status checks

Optimization scenarios

Changed files quality-gates docker e2e
App code → beta run run skip (beta PR)
App code → main run run run
e2e/** only → beta skip run skip (beta PR)
e2e/** only → main skip run run
Docs / README / wiki only skip skip skip
.github/workflows/ change run run skip (beta PR)

Test plan

  • Open a PR that only modifies a .md file → all 3 CI jobs show as skipped
  • Open a PR that only modifies e2e/**quality-gates skipped, docker runs, e2e runs (if targeting main) or skipped (if targeting beta)
  • Open a PR that modifies server/** → all 3 jobs run normally
  • Open a PR that modifies .github/workflows/ci.yml → all 3 jobs run
  • Confirm branch protection (Quality Gates, Docker) is satisfied on skipped PRs

🤖 Generated with Claude Code

@steilerDev steilerDev force-pushed the ci/path-based-ci-filtering branch from c43810a to 6727076 Compare February 23, 2026 11:15
Adds a detect-changes job that classifies changed files into app, e2e,
and ci groups using git diff. Each job now has an if: guard so docs/README/
wiki-only PRs skip all three jobs, e2e-only changes skip quality-gates,
and CI workflow changes trigger all jobs.

Co-Authored-By: Claude orchestrator (Sonnet 4.6) <noreply@anthropic.com>
@steilerDev steilerDev force-pushed the ci/path-based-ci-filtering branch 2 times, most recently from a1b98e0 to f760aec Compare February 23, 2026 11:39
@steilerDev steilerDev merged commit 4bdcdba into beta Feb 23, 2026
7 checks passed
@github-actions
Copy link
Copy Markdown
Contributor

🎉 This PR is included in version 1.9.0-beta.50 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

steilerDev pushed a commit that referenced this pull request Feb 23, 2026
…hook

CI pipeline improvements: path-based change detection to skip unnecessary
jobs, E2E smoke tests in PR quality gates, post-merge full E2E workflow,
and husky + lint-staged pre-commit hook for local quality gates.
(#191, #194, #209)
@steilerDev steilerDev deleted the ci/path-based-ci-filtering branch March 7, 2026 07:44
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