ci: fail on stale generated files
run build_runner in both ci.yml (push to main) and pr-check.yml (PRs), then fail if git status is dirty. catches forgetting to regenerate a .g.dart after editing a MobX store or @JsonSerializable model, which analyze/test/build all miss (as #576 did). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
64c748d0b6
commit
03e4198fdd
2 changed files with 24 additions and 0 deletions
12
.github/workflows/ci.yml
vendored
12
.github/workflows/ci.yml
vendored
|
|
@ -23,6 +23,18 @@ jobs:
|
|||
cache: true
|
||||
- run: flutter doctor -v
|
||||
- run: flutter pub get
|
||||
# Fail if committed generated files (*.g.dart) are stale — CI never runs
|
||||
# build_runner otherwise, so forgetting to regenerate after editing a MobX
|
||||
# store or @JsonSerializable model slips past analyze/test/build.
|
||||
- run: dart run build_runner build --delete-conflicting-outputs
|
||||
- name: Verify generated files are up to date
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo '::error::Generated files are out of date. Run `dart run build_runner build --delete-conflicting-outputs` and commit the result.'
|
||||
git status --porcelain
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
- run: flutter analyze
|
||||
- run: flutter test
|
||||
- run: flutter build apk --release
|
||||
|
|
|
|||
12
.github/workflows/pr-check.yml
vendored
12
.github/workflows/pr-check.yml
vendored
|
|
@ -20,6 +20,18 @@ jobs:
|
|||
cache: true
|
||||
- run: flutter doctor -v
|
||||
- run: flutter pub get
|
||||
# Fail if committed generated files (*.g.dart) are stale — CI never runs
|
||||
# build_runner otherwise, so forgetting to regenerate after editing a MobX
|
||||
# store or @JsonSerializable model slips past analyze/test/build.
|
||||
- run: dart run build_runner build --delete-conflicting-outputs
|
||||
- name: Verify generated files are up to date
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo '::error::Generated files are out of date. Run `dart run build_runner build --delete-conflicting-outputs` and commit the result.'
|
||||
git status --porcelain
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
- run: flutter analyze
|
||||
- run: flutter test
|
||||
# Release-mode compile check (no signing secrets needed — Android falls back
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue