.gitea/workflows/ci.yaml runs on every PR into main and on every push to main. It:
installs uv (0.13.6, the same as local development)
runs uv sync --locked --python 3.12; 3.12 is the lowest version requires-python allows
runs pytest, ruff check and ruff format --check
ruff is pinned in the dev group (0.17.3). The repo has no ruff config, so the rules are ruff's defaults for that version. Pinning it means CI and local runs check the same rules.
The setup copies the workflow that already runs green on this Gitea instance: ubuntu-latest, a pinned actions/checkout SHA, and uv installed with the official script.
The README gets a CI badge and the lint commands.
Verification
A clean clone running the CI steps locally passed: 374 tests, lint and format.
This PR's own run is the check on the server.
A temporary branch with a deliberate lint error shows that CI fails. That branch is deleted afterwards.
This is the first PR in a stack for the medium-priority issues (#11, #12, #10, #13). The stack is merged at the end.
## What
`.gitea/workflows/ci.yaml` runs on every PR into `main` and on every push to `main`. It:
1. installs uv (0.13.6, the same as local development)
2. runs `uv sync --locked --python 3.12`; 3.12 is the lowest version `requires-python` allows
3. runs `pytest`, `ruff check` and `ruff format --check`
ruff is pinned in the dev group (0.17.3). The repo has no ruff config, so the rules are ruff's defaults for that version. Pinning it means CI and local runs check the same rules.
The setup copies the workflow that already runs green on this Gitea instance: `ubuntu-latest`, a pinned `actions/checkout` SHA, and uv installed with the official script.
The README gets a CI badge and the lint commands.
## Verification
- A clean clone running the CI steps locally passed: 374 tests, lint and format.
- This PR's own run is the check on the server.
- A temporary branch with a deliberate lint error shows that CI fails. That branch is deleted afterwards.
This is the first PR in a stack for the medium-priority issues (#11, #12, #10, #13). The stack is merged at the end.
Closes #11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
.gitea/workflows/ci.yaml runs on PRs into main and on pushes to main.
It installs uv, runs `uv sync --locked` with Python 3.12 (the lowest
version requires-python allows), then pytest, `ruff check` and
`ruff format --check`.
ruff is pinned in the dev group (0.17.3). The repo has no ruff config,
so the rules are ruff's defaults for that version; pinning makes CI
and local runs check the same rules. The setup follows the workflow
that already runs green on this Gitea instance (ubuntu-latest, pinned
checkout SHA, uv via the official script). The README gets a CI badge
and the lint commands.
Closes#11
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
.gitea/workflows/ci.yamlruns on every PR intomainand on every push tomain. It:uv sync --locked --python 3.12; 3.12 is the lowest versionrequires-pythonallowspytest,ruff checkandruff format --checkruff is pinned in the dev group (0.17.3). The repo has no ruff config, so the rules are ruff's defaults for that version. Pinning it means CI and local runs check the same rules.
The setup copies the workflow that already runs green on this Gitea instance:
ubuntu-latest, a pinnedactions/checkoutSHA, and uv installed with the official script.The README gets a CI badge and the lint commands.
Verification
This is the first PR in a stack for the medium-priority issues (#11, #12, #10, #13). The stack is merged at the end.
Closes #11
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com