# Tools CI/CD helper scripts for the Kell Creations Flutter monorepo. ## Scripts ### `run_all_tests.sh` Runs `flutter test` across all testable packages and apps, producing a per-package pass/fail summary. **Usage:** ```bash # From kell_creations_apps/ directory ./tools/run_all_tests.sh # Run tests only ./tools/run_all_tests.sh --analyze # Run dart analyze + tests ``` **What it does:** 1. Installs dependencies (`flutter pub get`) for all packages and apps. 2. Optionally runs `dart analyze --fatal-infos` on each package/app. 3. Runs `flutter test --reporter expanded` for packages with tests. 4. Prints an aggregate pass/fail summary table. **Adding new packages:** When a new package gains tests, add its path to the `TESTABLE` array in the script. For packages that should be analyzed but have no tests yet, add to the `ANALYZABLE` array only. **Exit codes:** - `0` — all tests passed (and analyze clean, if `--analyze` was used) - `1` — one or more failures detected ### `collect_coverage.sh` Runs `flutter test --coverage` across all testable packages and apps, parses the generated `lcov.info` files, and produces a combined summary table with test counts and line coverage percentages. **Usage:** ```bash # From kell_creations_apps/ directory ./tools/collect_coverage.sh ``` **What it does:** 1. Installs dependencies (`flutter pub get`) for testable packages. 2. Runs `flutter test --coverage --reporter expanded` for each package. 3. Parses `coverage/lcov.info` to extract lines hit / lines found per package. 4. Prints an aggregate summary table with pass/fail counts and coverage percentages. **Output example:** ``` ╔═══════════════════════════════════════════════════════════╗ ║ Flutter Test & Coverage Summary ║ ╠═══════════════════════════════════════════════════════════╣ ║ Package Pass Fail Lines Coverage ║ ╠═══════════════════════════════════════════════════════════╣ ║ core 20 0 120/150 80.0% ║ ║ design_system 41 0 95/110 86.4% ║ ║ ... ║ ╠═══════════════════════════════════════════════════════════╣ ║ TOTAL 379 0 500/600 83.3% ║ ╚═══════════════════════════════════════════════════════════╝ ``` **Exit codes:** - `0` — all tests passed - `1` — one or more failures detected ## CI Workflows The corresponding Forgejo Actions workflows live in `.forgejo/workflows/`: | Workflow | Trigger | Purpose | | --------------------- | ----------------- | -------------------------------------------- | | `flutter-analyze.yml` | PRs and branches | Runs `dart analyze` on all packages and apps | | `flutter-test.yml` | PRs and branches | Runs `flutter test` with result reporting | | `validate-docs.yml` | Non-main branches | Validates MkDocs documentation build | | `publish-docs.yml` | Push to main | Publishes documentation to docs host |