fix: skip CI jobs when unrelated files change (#144) #207

Merged
guettlibot merged 2 commits from issue-144-fix into main 2026-05-24 06:30:14 +00:00
guettlibot commented 2026-05-24 06:25:15 +00:00 (Migrated from codeberg.org)

Summary

  • ci.yml: Add paths filters to both push and pull_request triggers so the full Dagger check only runs when source-relevant files change (lib/, test/, android/, linux/, scripts/, ci/, Taskfile.yml, drift_schemas/, etc.). Pure website, docs, and assets/changelog.txt commits no longer trigger ci.yml.
  • deploy.yml: Add a lightweight check-changes job that diffs HEAD~1..HEAD and outputs android/linux booleans. test-android-firebase, deploy-playstore, and deploy-apk are now conditional on android==true; build-linux is conditional on linux==true. label-deploy-health only fires when at least one build job actually ran (not all skipped) and treats skipped as acceptable in ALL_SUCCEEDED. On workflow_dispatch both flags are always true so manual runs are unaffected.
  • ci/main.go Graph(): Update the Mermaid diagram to reflect the new two-workflow structure.

Test plan

  • Push a commit that only changes website/ or assets/changelog.txtci.yml check job should NOT trigger
  • Push a commit that changes lib/ci.yml check job SHOULD trigger
  • Open a PR that changes only android/ci.yml check job SHOULD trigger; deploy.yml test-android-firebase should trigger on next hourly run
  • Open a PR that changes only linux/deploy.yml Android jobs should be skipped, build-linux should run
  • workflow_dispatch on deploy.yml — all jobs should run regardless of changed files

Closes #144

🤖 Generated with Claude Code

## Summary - **ci.yml**: Add `paths` filters to both `push` and `pull_request` triggers so the full Dagger check only runs when source-relevant files change (`lib/`, `test/`, `android/`, `linux/`, `scripts/`, `ci/`, `Taskfile.yml`, `drift_schemas/`, etc.). Pure website, docs, and `assets/changelog.txt` commits no longer trigger `ci.yml`. - **deploy.yml**: Add a lightweight `check-changes` job that diffs `HEAD~1..HEAD` and outputs `android`/`linux` booleans. `test-android-firebase`, `deploy-playstore`, and `deploy-apk` are now conditional on `android==true`; `build-linux` is conditional on `linux==true`. `label-deploy-health` only fires when at least one build job actually ran (not all skipped) and treats `skipped` as acceptable in `ALL_SUCCEEDED`. On `workflow_dispatch` both flags are always `true` so manual runs are unaffected. - **ci/main.go Graph()**: Update the Mermaid diagram to reflect the new two-workflow structure. ## Test plan - [ ] Push a commit that only changes `website/` or `assets/changelog.txt` — `ci.yml` check job should NOT trigger - [ ] Push a commit that changes `lib/` — `ci.yml` check job SHOULD trigger - [ ] Open a PR that changes only `android/` — `ci.yml` check job SHOULD trigger; `deploy.yml` `test-android-firebase` should trigger on next hourly run - [ ] Open a PR that changes only `linux/` — `deploy.yml` Android jobs should be skipped, `build-linux` should run - [ ] `workflow_dispatch` on `deploy.yml` — all jobs should run regardless of changed files Closes #144 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.