GitHub Actions¶
The workflow files live in .github/workflows/.
Workflows¶
| File | Runs on | What it does |
|---|---|---|
ci.yml |
pushes to main, every pull request |
make check with the Go cache; govulncheck; a strict docs build; dependency review on pull requests. |
docs.yml |
push to main, pull requests, manual |
Builds the docs strictly, as a check. The docs are published at https://client.labmill.org/, not from this workflow yet. |
build.yml |
push to main, tags v*, manual |
Builds every binary and uploads each as a workflow artifact with a .sha256 file (see below). On a v* tag it also creates a draft release with gh release create. |
dependabot.yml opens weekly updates for Go modules and for the actions themselves. Third-party actions are pinned to major versions.
What build.yml produces¶
labmill(TUI) for linux, darwin and windows, each amd64 and arm64,CGO_ENABLED=0.labmill-guifor Windows (cross-compiled on Linux withmake gui-windows), Linux (libgtk-3-devandlibwebkit2gtk-4.1-dev,make gui-linux) and macOS arm64 (macos-latest, cgo,-tags desktop,production).
The GUI self-test also runs: make gui-selftest under xvfb-run on Linux, and the Windows self-test on windows-latest.
Cutting a release¶
- Make sure CI is green on
main. - Tag and push:
git tag v0.1.0 && git push origin v0.1.0. build.ymlbuilds everything and creates a draft release with all artifacts and a combinedSHA256SUMS.- Review the draft and publish it by hand.
Signing is still open: Windows Authenticode and Apple Developer ID signing and notarizing need certificates, so these binaries are unsigned.