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.ymltest-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
## 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)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
pathsfilters to bothpushandpull_requesttriggers 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, andassets/changelog.txtcommits no longer triggerci.yml.check-changesjob that diffsHEAD~1..HEADand outputsandroid/linuxbooleans.test-android-firebase,deploy-playstore, anddeploy-apkare now conditional onandroid==true;build-linuxis conditional onlinux==true.label-deploy-healthonly fires when at least one build job actually ran (not all skipped) and treatsskippedas acceptable inALL_SUCCEEDED. Onworkflow_dispatchboth flags are alwaystrueso manual runs are unaffected.Test plan
website/orassets/changelog.txt—ci.ymlcheck job should NOT triggerlib/—ci.ymlcheck job SHOULD triggerandroid/—ci.ymlcheck job SHOULD trigger;deploy.ymltest-android-firebaseshould trigger on next hourly runlinux/—deploy.ymlAndroid jobs should be skipped,build-linuxshould runworkflow_dispatchondeploy.yml— all jobs should run regardless of changed filesCloses #144
🤖 Generated with Claude Code