Releasing
Releases are built by GitHub Actions (.github/workflows/release.yml) when a tag v* is pushed.
-
Set
versioninCargo.tomland updateCargo.lock(cargo build). -
Commit, then tag and push. The tag must be
vplus the version fromCargo.toml; the workflow fails otherwise.git tag v0.2.0 git push origin main v0.2.0
The workflow:
- builds and tests the CLI for
aarch64-apple-darwin,x86_64-unknown-linux-muslandaarch64-unknown-linux-muslon native runners, and packs each intocapycal-v<version>-<target>.tar.gz(binary,README.md,LICENSE,CONTRIBUTORS.md,THIRD-PARTY-NOTICES.txt,capycal.example.toml); - builds
Capycal.appandcapycal-v<version>-macos.dmg; - writes a
.sha256file per archive; - publishes a GitHub release with generated notes.
A manual run (workflow_dispatch) builds and uploads the artifacts without publishing a release.
Other workflows
| Workflow | Trigger | Does |
|---|---|---|
ci.yml | push to main, pull requests | fmt, clippy and tests on Linux and macOS, with and without ui |
docs.yml | push to main or pull request changing docs/, manual | builds this book; on main it asks twiebe/capycal-web to publish it on capycal.app/docs |