Skip to content

chore(ci): setup GitHub Actions CI for web, api, mobile matrix#9

Open
gracefullight wants to merge 2 commits intomainfrom
symphony/FIR-10
Open

chore(ci): setup GitHub Actions CI for web, api, mobile matrix#9
gracefullight wants to merge 2 commits intomainfrom
symphony/FIR-10

Conversation

@gracefullight
Copy link
Member

Summary

What: Replace scaffold CI with monorepo-aware parallel pipeline for web, api, and mobile.
Why: FIR-10 — enable CI checks for all three project layers before code lands.
Issue: FIR-10


Changes

  • .github/workflows/ci.yml — 4 parallel jobs:
    • changes: path-based change detection via dorny/paths-filter
    • web: Biome lint + tsc --noEmit + vitest (targets dashboard/)
    • api: ruff + mypy + pytest via uv (targets api/)
    • mobile: flutter analyze + flutter test (targets apps/mobile/)
    • validate: harness secret/architecture checks (always runs)
  • .github/PULL_REQUEST_TEMPLATE.md — simplified for monorepo workflow

Design Decisions

  • Jobs only run when their project directories have changes (path filtering)
  • Concurrency control cancels stale CI runs on the same branch
  • validate job runs unconditionally to catch secrets and architecture violations
  • Tool versions match .mise.toml: Node 22 (Bun), Python 3.12, Flutter 3.x

Test plan

  • CI triggers on PR to main
  • Web job runs only when dashboard/** or biome.json changes
  • API job runs only when api/** changes
  • Mobile job runs only when apps/mobile/** changes
  • Validate job runs on every PR
  • Skipped jobs show as "skipped" (not failed) in GitHub checks

🤖 Generated with Claude Code

gracefullight and others added 2 commits March 21, 2026 18:09
Agent type is global config, so multiple active workspaces all use the
same agent. Changed from AgentType-keyed maps to slot-indexed maps so
each workspace gets its own desk character and issue bubble.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the scaffold CI with a monorepo-aware pipeline:
- Web (dashboard): Biome lint + tsc --noEmit + vitest
- API: ruff lint + mypy + pytest via uv
- Mobile: flutter analyze + flutter test
- Path-based change detection via dorny/paths-filter
- Concurrency control to cancel stale runs
- Harness validate job retained for secret/architecture checks
- Simplified PR template for monorepo workflow

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant