Fix dart→flutter in CI; add pre-commit hook and install-hooks task

- ci.yml: dart run/dart test → flutter pub run/flutter test (all 3 jobs)
- hooks/pre-commit: runs flutter analyze + flutter test before every commit
- Taskfile: add install-hooks task (copies hooks/pre-commit → .git/hooks/)
- LATER.md: remove resolved items (enough_mail fork, pre-commit, GH CI)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Thomas Güttler
2026-04-16 09:55:15 +02:00
co-authored by Claude Sonnet 4.6
parent da38948652
commit 818f66c738
4 changed files with 36 additions and 7 deletions
+4 -4
View File
@@ -23,13 +23,13 @@ jobs:
run: flutter pub get run: flutter pub get
- name: Generate Drift code - name: Generate Drift code
run: dart run build_runner build --delete-conflicting-outputs run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Analyze - name: Analyze
run: flutter analyze --fatal-infos run: flutter analyze --fatal-infos
- name: Unit tests - name: Unit tests
run: dart test test/unit/ run: flutter test test/unit/ --coverage
integration: integration:
name: Integration tests (Stalwart) name: Integration tests (Stalwart)
@@ -55,7 +55,7 @@ jobs:
run: | run: |
nix develop --command bash -c " nix develop --command bash -c "
flutter pub get && flutter pub get &&
dart run build_runner build --delete-conflicting-outputs && flutter pub run build_runner build --delete-conflicting-outputs &&
stalwart-dev/test.sh stalwart-dev/test.sh
" "
@@ -83,7 +83,7 @@ jobs:
run: flutter pub get run: flutter pub get
- name: Generate Drift code - name: Generate Drift code
run: dart run build_runner build --delete-conflicting-outputs run: flutter pub run build_runner build --delete-conflicting-outputs
- name: Build Linux release - name: Build Linux release
run: flutter build linux --release run: flutter build linux --release
+7 -3
View File
@@ -1,5 +1,9 @@
Can I publish my enough mail changes somehow. Maybe do a repo fork ? # Later
Add pre-commit Thread view (group by References / In-Reply-To)
Add GH CI Search (IMAP SEARCH command)
Attachment download + open
Draft auto-save
+7
View File
@@ -12,6 +12,13 @@ tasks:
- sh: test "${DIRENV_DIR#-}" = "{{.TASKFILE_DIR}}" - sh: test "${DIRENV_DIR#-}" = "{{.TASKFILE_DIR}}"
msg: "Not in nix dev shell. Run: nix develop" msg: "Not in nix dev shell. Run: nix develop"
install-hooks:
desc: Install git hooks from hooks/ into .git/hooks/
cmds:
- cp hooks/pre-commit .git/hooks/pre-commit
- chmod +x .git/hooks/pre-commit
- echo "Installed hooks/pre-commit → .git/hooks/pre-commit"
codegen: codegen:
desc: Generate Drift DB code (run after any schema change) desc: Generate Drift DB code (run after any schema change)
deps: [_nix-check] deps: [_nix-check]
+18
View File
@@ -0,0 +1,18 @@
#!/usr/bin/env bash
# Runs fast checks before every commit.
# Install with: task install-hooks
set -euo pipefail
# Only run if flutter is in PATH (i.e. inside the nix dev shell).
if ! command -v flutter >/dev/null 2>&1; then
echo "pre-commit: flutter not in PATH — skipping (run inside nix develop)"
exit 0
fi
echo "pre-commit: flutter analyze..."
flutter analyze --fatal-infos
echo "pre-commit: unit tests..."
flutter test test/unit/ --coverage
echo "pre-commit: all checks passed."