Release pipeline: cargo-release config + Gitea Actions workflows
ci / quality (push) Failing after 1m43s

- release.toml: one shared workspace version, single vX.Y.Z tag,
  full test suite as the pre-release gate, no crates.io publishing.
- .gitea/workflows/ci.yml: the Woodpecker quality bar (fmt, clippy
  -D warnings, tests) for repos served by act_runner.
- .gitea/workflows/release.yml: on a version tag, build stripped
  release binaries for x86_64 and aarch64 Linux, bundle them with the
  systemd units, rendered man pages and example config, and attach the
  tarballs (+ sha256) to a Gitea release via the API.
- dist/PKGBUILD: point at the repo's new home on project.uhhm.no.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-16 14:54:17 +02:00
parent 4033c0ffab
commit c52c3b1238
5 changed files with 141 additions and 1 deletions
+23
View File
@@ -0,0 +1,23 @@
# cargo-release configuration (https://github.com/crate-ci/cargo-release).
#
# Usage, from a clean main checkout:
#
# cargo release patch # or minor / major / an explicit x.y.z
#
# This bumps every workspace crate in lockstep, commits, tags `vX.Y.Z`,
# and pushes commit + tag. The tag push triggers the release workflow
# (.gitea/workflows/release.yml), which builds and attaches the
# distribution tarballs. Nothing is published to crates.io.
# One version for the whole workspace; a single `vX.Y.Z` tag.
shared-version = true
tag-name = "v{{version}}"
consolidate-commits = true
pre-release-commit-message = "release v{{version}}"
# Distribution is tarballs + PKGBUILD, not crates.io.
publish = false
push = true
# The full quality bar must pass before anything is committed.
pre-release-hook = ["cargo", "test", "--workspace"]