From 7486f29351030cda0d40abfbdf33e53c72e7ec4e Mon Sep 17 00:00:00 2001 From: Adel Saoud Date: Sat, 23 May 2026 21:48:58 +0200 Subject: [PATCH] fix: move CI workflow to run alongside source code The workflow was on feat/docs which has no pyproject.toml or uv.lock, causing uv sync to fail on that PR. CI belongs with the code it tests. Also pins cache-dependency-glob to uv.lock explicitly so setup-uv does not emit a warning when scanning for lockfiles. --- .github/workflows/ci.yml | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..5967aa7 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: CI + +on: + push: + branches: [main] + pull_request: + branches: [main] + +concurrency: + group: ci-${{ github.ref }} + cancel-in-progress: true + +jobs: + quality: + name: Lint · type-check · test + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Install uv + uses: astral-sh/setup-uv@v4 + with: + enable-cache: true + cache-dependency-glob: uv.lock + + - name: Set up Python + run: uv python install 3.11 + + - name: Install dependencies + run: uv sync --all-extras + + - name: Lint + run: uv run ruff check . + + - name: Format check + run: uv run ruff format --check . + + - name: Type-check + run: uv run pyright + + - name: Test (with coverage) + run: uv run pytest + + - name: Upload coverage + uses: actions/upload-artifact@v4 + with: + name: coverage-xml + path: coverage.xml