mirror of
https://github.com/kuhyx/steam-backlog-enforcer.git
synced 2026-11-11 21:33:49 +01:00
web/ has only pnpm-lock.yaml, so setup-node's npm cache step failed the job before any test ran. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
70 lines
2.0 KiB
YAML
70 lines
2.0 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.x"
|
|
|
|
# uv with a cached wheel store installs requirements.txt in seconds;
|
|
# plain pip took ~20 s of a ~70 s run.
|
|
- uses: astral-sh/setup-uv@v10.2.0
|
|
with:
|
|
enable-cache: true
|
|
cache-dependency-glob: requirements.txt
|
|
|
|
- name: Install dependencies
|
|
run: uv pip install --system -r requirements.txt
|
|
|
|
# -n auto spreads the suite over every runner core (pytest-xdist is in
|
|
# requirements.txt); pytest-cov merges the workers' coverage.
|
|
- name: Run tests with coverage
|
|
run: |
|
|
python -m pytest steam_backlog_enforcer/tests/ \
|
|
-n auto \
|
|
-p no:sugar \
|
|
--cov=steam_backlog_enforcer \
|
|
--cov-branch \
|
|
--cov-fail-under=100 \
|
|
-q
|
|
|
|
# vitest's 100% bar used to run only in the local pre-push hook, which
|
|
# became a 1-second stamp check on 2026-09-20 (pre-commit's manual stage
|
|
# holds it now). Nothing else in CI runs the web suite, so this job is the
|
|
# only place that bar is enforced on every push.
|
|
web-coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
# web/ is a pnpm project (no package-lock.json since the Astro move), so
|
|
# npm's cache step had no lockfile to key on and failed the job. No
|
|
# `version:`: pnpm/action-setup reads web/package.json's packageManager
|
|
# and errors if given both.
|
|
- uses: pnpm/action-setup@v4
|
|
with:
|
|
package_json_file: web/package.json
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 26.13.0
|
|
cache: pnpm
|
|
cache-dependency-path: web/pnpm-lock.yaml
|
|
|
|
- name: vitest --coverage, 100% (web UI)
|
|
run: |
|
|
pnpm --dir web install --frozen-lockfile
|
|
pnpm --dir web run coverage
|