kell_creations/kell_creations_apps/tools
Mike Kell b00072474b feat(ci): add Flutter CI/CD pipeline for Forgejo Actions (Stage 4C)
Add Forgejo Actions workflows for automated Flutter validation on PRs:

- flutter-analyze.yml: runs dart analyze --fatal-infos on all 8 packages/apps

- flutter-test.yml: runs flutter test per package with pass/fail reporting

- Aggregate test result summary table in workflow output

- Workflows trigger on PRs to main and all non-main branch pushes

- Uses ghcr.io/cirruslabs/flutter:stable container image

Populate tools/ directory with CI helper scripts:

- run_all_tests.sh: local test runner with optional --analyze flag

- README.md: documents scripts and CI workflow inventory

Validated locally:

- dart analyze: all 8 packages/apps clean (no issues)

- core: 20/20 tests passed

- design_system: 41/41 tests passed

- feature_wordpress: 294/294 tests passed

- kell_web: 24/24 tests passed

- Total: 379/379 tests passed
2026-05-22 10:09:42 -04:00
..
README.md feat(ci): add Flutter CI/CD pipeline for Forgejo Actions (Stage 4C) 2026-05-22 10:09:42 -04:00
run_all_tests.sh feat(ci): add Flutter CI/CD pipeline for Forgejo Actions (Stage 4C) 2026-05-22 10:09:42 -04:00

README.md

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:

# 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

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