feat: implement CI

This commit is contained in:
2026-08-07 15:23:58 -04:00
parent fc63991c39
commit 3df06a9992
11 changed files with 1126 additions and 38 deletions
+15 -2
View File
@@ -26,11 +26,14 @@ coursebank builds with Rust 1.85 or newer (edition 2024).
The repository uses [pixi](https://pixi.sh) to pin the toolchain and wrap the common tasks:
```sh
pixi run build # release binary at target/release/coursebank
pixi run build # release binary at target/release/coursebank
pixi run install # install the binary onto your PATH
pixi run tests
pixi run check # format, lint, test, and doc build
pixi run check # verify: formatting, lint, tests, and doc build
```
`pixi task list` prints every task with a one-line description.
Plain cargo works too with a recent toolchain:
```sh
@@ -50,6 +53,16 @@ coursebank export typst exam-4 --form A
Run `coursebank --help` for the full command set.
## Versioning
Releases use calendar versioning in `YY.MM.PATCH` form.
The first release of August 2026 is `26.8.0`; a second that month is `26.8.1`; the first in September is `26.9.0`.
Neither the year nor the month is zero-padded, because the version also has to parse as SemVer and SemVer forbids leading zeros.
The number carries no compatibility promise, so treat any release as one that can change behavior and read [`CHANGELOG.md`](CHANGELOG.md) before upgrading a live course.
`pixi run bump` cuts the next version and tags it; pushing that tag publishes a release, and every push to `main` refreshes a rolling `nightly` prerelease.
The workflows live in `.gitea/workflows/`; [RELEASING.md](RELEASING.md) explains the release flow and what to configure on the Gitea side.
## License
coursebank is source-available under the [Prosperity Public License 3.0.0](LICENSE.md).