Skip to content

Commit 969dab9

Browse files
constkclaude
andcommitted
fix: simplify ci.yml to clear workflow startup error
Drop the test-integration job entirely (no integration tests exist yet; will be re-added with #17+ once a real integration suite ships). Drop the per-step shell/continue-on-error overrides on the run blocks (defaults are correct). Drop the job-level defaults: run: working-directory: frontend on frontend-quality and inline `cd frontend &&` on each step (matches the frontend-build job style; simpler shape that is known-good). Add `-o addopts=` to the pytest unit-tests invocation so pyproject's `addopts` do not pull in coverage by default in this fast-feedback job (the coverage job is the one that enforces the gate). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 9037e10 commit 969dab9

1 file changed

Lines changed: 6 additions & 38 deletions

File tree

.github/workflows/ci.yml

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -41,35 +41,14 @@ jobs:
4141
test-unit:
4242
name: Unit tests
4343
runs-on: ubuntu-latest
44-
# Pure in-process tests — Pydantic models, observability config, mocked
45-
# FastAPI endpoints. Completes fast so PR authors get quick feedback.
4644
steps:
4745
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
4846
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
4947
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
5048
with:
5149
python-version: "3.14"
5250
- run: uv sync --frozen --extra dev
53-
- run: uv run pytest tests/ -v -m "not integration"
54-
55-
test-integration:
56-
name: Integration tests
57-
runs-on: ubuntu-latest
58-
# Tests that touch real external systems (DBs, queues, etc.). The template
59-
# ships none, so this job runs the integration-marked subset and exits 0
60-
# when no tests collect.
61-
steps:
62-
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
63-
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
64-
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
65-
with:
66-
python-version: "3.14"
67-
- run: uv sync --frozen --extra dev
68-
- run: uv run pytest tests/ -v -m integration --no-header
69-
# `pytest` exits 5 when no tests are collected — treat that as success
70-
# while the template has no integration suite.
71-
continue-on-error: false
72-
shell: bash
51+
- run: uv run pytest tests/ -v -m "not integration" -o "addopts="
7352

7453
coverage:
7554
name: Coverage
@@ -78,7 +57,6 @@ jobs:
7857
# under src/, the template has no measurable coverage; pyproject.toml's
7958
# [tool.coverage.report].fail_under stays at 75 (the eventual target),
8059
# while CI uses --cov-fail-under=0 so the empty scaffold doesn't fail.
81-
# When #17 + #18 ship real source + tests, drop the override here.
8260
steps:
8361
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
8462
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
@@ -103,9 +81,6 @@ jobs:
10381
pre-commit:
10482
name: Pre-commit
10583
runs-on: ubuntu-latest
106-
# Runs every hook against all files — ensures a developer who forgot
107-
# `uv run pre-commit install` can't leak unformatted code or a stray
108-
# secret past the first defence layer.
10984
steps:
11085
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
11186
- uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
@@ -118,7 +93,6 @@ jobs:
11893
frontend-build:
11994
name: Frontend Build
12095
runs-on: ubuntu-latest
121-
# Skips cleanly until ticket #21 lands frontend/package.json.
12296
if: hashFiles('frontend/package.json') != ''
12397
steps:
12498
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
@@ -132,22 +106,16 @@ jobs:
132106
frontend-quality:
133107
name: Frontend Quality
134108
runs-on: ubuntu-latest
135-
# Lint + format + tsc + vitest. Mirrors the strict posture the backend
136-
# enjoys (ruff + mypy + pytest); the Frontend Build job above validates
137-
# the bundler output, this one validates source quality.
138109
if: hashFiles('frontend/package.json') != ''
139-
defaults:
140-
run:
141-
working-directory: frontend
142110
steps:
143111
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
144112
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6
145113
with:
146114
node-version: "24"
147115
cache: npm
148116
cache-dependency-path: frontend/package-lock.json
149-
- run: npm ci
150-
- run: npm run lint
151-
- run: npm run format:check
152-
- run: npm run check
153-
- run: npm run test
117+
- run: cd frontend && npm ci
118+
- run: cd frontend && npm run lint
119+
- run: cd frontend && npm run format:check
120+
- run: cd frontend && npm run check
121+
- run: cd frontend && npm run test

0 commit comments

Comments
 (0)