Gap 9: ci --quick reads git's -z output, tests the crates that embed changed files; CI keeps main's runs

- ci.yml: cancel-in-progress only for pull requests, so a push to main never cancels the run of
  the push before it.
- ci --quick: `git diff --name-status -z -M` and `git ls-files -z`, parsed as NUL-separated
  fields (a rename or copy takes two paths), so a non-ASCII path, which git otherwise quotes and
  escapes, still maps to its package.
- ci --quick: files outside a package that it compiles in (include_str!/include_bytes!, a build
  script's rerun-if-changed: fonts, camera profiles and the app icon under assets/,
  docs/whats-new.md, docs/raw/coverage-sweep.tsv, docs/raf-corpus.sha256, contributors/) count
  as a change to that package. A test scans the workspace and fails when one is not mapped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Matthew James Sivak
2026-10-20 13:10:53 +02:00
co-authored by Claude Opus 5.5
parent c3c4cf16ab
commit 960e1f14e8
2 changed files with 162 additions and 16 deletions
+2 -1
View File
@@ -15,7 +15,8 @@ on:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
# superseded PR pushes only: every push to main keeps its own full run
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read