ci(I1): dedicated fast-fail ruff lint lane
ruff is pre-installed in the ci-python image, so a new `lint` job runs it with no dependency install and fails in seconds — surfacing the common lint bounce class without waiting on the backend job's ~30-60s wheel install. Dropped the now-redundant ruff step from backend-lint-and-test (same job name, required-checks unchanged). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,8 @@
|
|||||||
name: CI
|
name: CI
|
||||||
|
|
||||||
# CI lanes per FabledRulebook/forgejo.md "CI philosophy":
|
# CI lanes per FabledRulebook/forgejo.md "CI philosophy":
|
||||||
# - backend-lint-and-test: ruff + `pytest -m "not integration"`, no service containers.
|
# - lint: ruff only, no dep install — fast-fail for the common lint bounce.
|
||||||
|
# - backend-lint-and-test: `pytest -m "not integration"`, no service containers.
|
||||||
# - frontend-build: vitest unit + vite build.
|
# - frontend-build: vitest unit + vite build.
|
||||||
# - integration: pgvector + redis service containers; alembic + `pytest -m integration`.
|
# - integration: pgvector + redis service containers; alembic + `pytest -m integration`.
|
||||||
|
|
||||||
@@ -14,6 +15,20 @@ on:
|
|||||||
# (single-operator Forgejo repo) so push coverage is complete.
|
# (single-operator Forgejo repo) so push coverage is complete.
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
# Fast-fail lint lane. ruff is pre-installed in the ci-python image, so
|
||||||
|
# this runs with NO dependency install and surfaces the most common bounce
|
||||||
|
# class (lint: I001 / UP037 / ASYNC109 / W293 …) in seconds — instead of
|
||||||
|
# after the backend job's ~30-60s wheel install. ruff is static analysis,
|
||||||
|
# so no DB/secret env is needed.
|
||||||
|
lint:
|
||||||
|
runs-on: python-ci
|
||||||
|
container:
|
||||||
|
image: git.fabledsword.com/bvandeusen/ci-python:3.14
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- name: Ruff lint
|
||||||
|
run: ruff check backend/ tests/ alembic/
|
||||||
|
|
||||||
backend-lint-and-test:
|
backend-lint-and-test:
|
||||||
runs-on: python-ci
|
runs-on: python-ci
|
||||||
container:
|
container:
|
||||||
@@ -51,9 +66,8 @@ jobs:
|
|||||||
pip install -r requirements.txt pytest pytest-asyncio
|
pip install -r requirements.txt pytest pytest-asyncio
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Ruff lint
|
# Ruff moved to the dedicated fast `lint` job above (fails in seconds,
|
||||||
run: ruff check backend/ tests/ alembic/
|
# no dep install). This job is now unit tests only.
|
||||||
|
|
||||||
- name: Pytest (unit only — integration runs in the integration job)
|
- name: Pytest (unit only — integration runs in the integration job)
|
||||||
run: pytest tests/ -v -m "not integration"
|
run: pytest tests/ -v -m "not integration"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user