Skip to content

feat(plan_v2): implement D7 plan state machine and revise/finish tools #249

feat(plan_v2): implement D7 plan state machine and revise/finish tools

feat(plan_v2): implement D7 plan state machine and revise/finish tools #249

Workflow file for this run

name: ci-gate
on:
pull_request:
branches: [main]
merge_group:
branches: [main]
push:
branches: [main]
concurrency:
# Keep one active run per ref/workflow so fast follow-up pushes cancel stale checks.
group: ci-gate-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install lint tooling
run: python -m pip install --upgrade pip ruff
- name: Run lint gate (phase-1 syntax/parser safety)
run: ruff check dare_framework client tests _local_backend.py --select E9,F63,F7
build:
name: build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Build gate (phase-1 compile check)
run: python -m compileall -q dare_framework client tests _local_backend.py
smoke-tests:
name: smoke-tests
runs-on: ubuntu-latest
needs: [lint, build]
# Phase-1 rollout: publish smoke signal without blocking merges yet.
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install smoke-test dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-asyncio langchain-openai langchain-core httpx starlette uvicorn
- name: Install project editable package
run: python -m pip install -e . --no-deps
- name: Verify console entrypoint
run: |
dare --help
dare --workspace /tmp/dare-cli-ws --user-dir /tmp/dare-cli-user --adapter openrouter --api-key dummy --output json doctor || test $? -eq 3
- name: Run smoke tests
run: pytest -q tests/smoke -m smoke
risk-matrix:
name: risk-matrix
runs-on: ubuntu-latest
needs: [lint, build]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install risk-matrix dependencies
run: |
python -m pip install --upgrade pip
python -m pip install pytest pytest-asyncio langchain-openai langchain-core httpx starlette uvicorn
- name: Run risk matrix
run: ./scripts/ci/run_risk_matrix.sh
test-skip-guard:
name: test-skip-guard
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check new skip/only markers
run: ./scripts/ci/check_test_skip_markers.sh
lockfile-policy:
name: lockfile-policy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check lockfile update policy
run: ./scripts/ci/check_lockfile_policy.sh
design-doc-drift:
name: design-doc-drift
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check design documentation drift
run: ./scripts/ci/check_design_doc_drift.sh
governance-evidence-truth:
name: governance-evidence-truth
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check governance evidence truth contract
run: ./scripts/ci/check_governance_evidence_truth.sh