Files
sharedinbox/Taskfile.yml
T
Thomas GüttlerandClaude Sonnet 4.6 da38948652 Fix dart→flutter test in integration script; add task build-android
- stalwart-dev/test.sh: dart test → flutter test (project requires Flutter SDK)
- Taskfile: add build-android task (flutter build apk --release)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-16 09:43:24 +02:00

99 lines
2.6 KiB
YAML

version: "3"
tasks:
default:
desc: Run all checks (analyze + unit tests, in parallel)
deps: [check]
_nix-check:
internal: true
run: once
preconditions:
- sh: test "${DIRENV_DIR#-}" = "{{.TASKFILE_DIR}}"
msg: "Not in nix dev shell. Run: nix develop"
codegen:
desc: Generate Drift DB code (run after any schema change)
deps: [_nix-check]
cmds:
- |
START=$(date +%s)
flutter pub run build_runner build --delete-conflicting-outputs
END=$(date +%s)
echo "codegen: $((END - START))s"
analyze:
desc: Static analysis with flutter analyze + analysis_options.yaml rules
deps: [_nix-check]
cmds:
- |
START=$(date +%s)
flutter analyze
END=$(date +%s)
echo "analyze: $((END - START))s"
analyze-fix:
desc: Auto-fix lint issues with dart fix --apply
deps: [_nix-check]
cmds:
- dart fix --apply
test:
desc: Run unit tests (no device needed) and enforce ≥100% line coverage
deps: [_nix-check]
vars:
COVERAGE_THRESHOLD: "100"
cmds:
- |
START=$(date +%s)
flutter test test/unit/ --coverage
END=$(date +%s)
echo "test: $((END - START))s"
- |
COVERED=$(awk '/^DA:/{split($0,a,":");split(a[2],b,",");t++;if(b[2]>0)h++} END{printf "%d", (t>0 ? int(h*100/t) : 0)}' coverage/lcov.info)
echo "coverage: ${COVERED}% (threshold: {{.COVERAGE_THRESHOLD}}%)"
if [ "${COVERED}" -lt "{{.COVERAGE_THRESHOLD}}" ]; then
echo "ERROR: coverage ${COVERED}% is below threshold {{.COVERAGE_THRESHOLD}}%"
exit 1
fi
test-flutter:
desc: Run Flutter widget tests
deps: [_nix-check]
cmds:
- |
START=$(date +%s)
flutter test
END=$(date +%s)
echo "flutter test: $((END - START))s"
integration:
desc: Run integration tests (starts and stops Stalwart automatically)
deps: [_nix-check]
cmds:
- |
START=$(date +%s)
stalwart-dev/test.sh
END=$(date +%s)
echo "integration: $((END - START))s"
build-android:
desc: Build a release APK (output in build/app/outputs/flutter-apk/)
deps: [_nix-check]
cmds:
- |
START=$(date +%s)
flutter build apk --release
END=$(date +%s)
echo "build-android: $((END - START))s"
run:
desc: Run the app on Linux desktop
deps: [_nix-check]
cmds:
- flutter run -d linux
check:
desc: All fast checks — analyze + unit tests in parallel
deps: [analyze, test, integration]