ci(flow-next): expand smoke matrix — 7 suites on ubuntu/macos/windows #281
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: flow-next | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - "plugins/flow-next/**" | |
| - ".github/workflows/test-flow-next.yml" | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - "plugins/flow-next/**" | |
| - ".github/workflows/test-flow-next.yml" | |
| workflow_dispatch: | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| shell: bash # Git Bash on Windows; bash on Linux/macOS — unifies the matrix. | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.11" | |
| - name: Configure git identity (smoke tests create commits) | |
| run: | | |
| git config --global user.email "ci@flow-next.test" | |
| git config --global user.name "flow-next CI" | |
| git config --global init.defaultBranch main | |
| # ──────────── Static checks (cheap, fail fast) ──────────── | |
| - name: Syntax check — flowctl.py | |
| run: python -m py_compile plugins/flow-next/scripts/flowctl.py | |
| - name: Syntax check — ralph.sh | |
| run: bash -n plugins/flow-next/skills/flow-next-ralph-init/templates/ralph.sh | |
| # ──────────── Functional smokes (ordered cheap-first) ──────────── | |
| # All smokes refuse to run from the main plugin repo, so cd into the | |
| # runner's temp dir before invoking. $RUNNER_TEMP is set on every | |
| # GitHub-hosted runner (ubuntu/macos/windows). | |
| - name: ci_test.sh (flowctl integration, 57 cases) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/ci_test.sh" | |
| - name: resolve-pr_smoke_test.sh (58 cases, ~1s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/resolve-pr_smoke_test.sh" | |
| - name: strategy_smoke_test.sh (62 cases, ~5s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/strategy_smoke_test.sh" | |
| - name: audit_smoke_test.sh (41 cases, ~6s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/audit_smoke_test.sh" | |
| - name: glossary_smoke_test.sh (80 cases, ~7s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/glossary_smoke_test.sh" | |
| - name: prospect_smoke_test.sh (94 cases, ~60s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/prospect_smoke_test.sh" | |
| - name: impl-review_smoke_test.sh (74 cases, ~70s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/impl-review_smoke_test.sh" | |
| - name: smoke_test.sh (130 cases, ~100s) | |
| run: | | |
| cd "$RUNNER_TEMP" | |
| bash "$GITHUB_WORKSPACE/plugins/flow-next/scripts/smoke_test.sh" | |
| # Smokes intentionally skipped (require external CLIs not on GitHub runners): | |
| # - ralph_smoke_test.sh / ralph_smoke_rp.sh — need claude / codex / rp-cli | |
| # - plan_review_prompt_smoke.sh — needs rp-cli |