So far the test suite (272 tests), ruff check and ruff format --check have only been run by hand before each merge. CI makes that automatic and protects every later change.
Proposal
Add a workflow .gitea/workflows/ci.yml that, on push and PR:
installs uv and runs uv sync
runs uv run pytest -q
runs uvx ruff check src tests and uvx ruff format --check src tests
Tests mock cv4pve-cli, so CI needs neither the binary nor cluster access.
Done when
The workflow runs green on a PR.
A deliberate lint error makes it fail.
Optional: a status badge in the README.
Notes
Check which runner and labels the Gitea instance offers.
The repo's ruff config should be explicit in pyproject.toml. Locally a strict global ruff config is used, so CI could otherwise lint differently.
## Why
So far the test suite (272 tests), `ruff check` and `ruff format --check` have only been run by hand before each merge. CI makes that automatic and protects every later change.
## Proposal
Add a workflow `.gitea/workflows/ci.yml` that, on push and PR:
- installs uv and runs `uv sync`
- runs `uv run pytest -q`
- runs `uvx ruff check src tests` and `uvx ruff format --check src tests`
Tests mock `cv4pve-cli`, so CI needs neither the binary nor cluster access.
## Done when
- The workflow runs green on a PR.
- A deliberate lint error makes it fail.
- Optional: a status badge in the README.
## Notes
- Check which runner and labels the Gitea instance offers.
- The repo's ruff config should be explicit in `pyproject.toml`. Locally a strict global ruff config is used, so CI could otherwise lint differently.
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.
Why
So far the test suite (272 tests),
ruff checkandruff format --checkhave only been run by hand before each merge. CI makes that automatic and protects every later change.Proposal
Add a workflow
.gitea/workflows/ci.ymlthat, on push and PR:uv syncuv run pytest -quvx ruff check src testsanduvx ruff format --check src testsTests mock
cv4pve-cli, so CI needs neither the binary nor cluster access.Done when
Notes
pyproject.toml. Locally a strict global ruff config is used, so CI could otherwise lint differently.Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com