Add release machinery: version bump, nfpm RPM, release-on-tag #2

Merged
benvin merged 1 commits from benvin/release-machinery into main 2026-07-20 22:39:21 +10:00
Owner

Why

The tomswall repo had no release path — no version-bump targets, no packaging, no release pipeline. This adds them, matching the node-lookup conventions, so tagged releases produce an installable RPM.

Changes

  • Makefile: add make patch|minor|major (compute next semver tag, tag + push), plus dist-build, completions, and rpm/rpm-package targets.
  • packaging/nfpm.yaml + scripts/build-rpm.sh: package the tomswall binary with bash/zsh completions, the example config, and a systemd agent unit into an RPM.
  • packaging/tomswall-agent.service + agent.env: run tomswall agent as a systemd service (CAP_NET_ADMIN/CAP_NET_RAW), configured via /etc/tomswall/agent.env.
  • .woodpecker/release.yaml: on a v* tag, test → build → package the RPM → PUT it to the artifactapi rpm-internal repo (a real yum repo).
## Why The tomswall repo had no release path — no version-bump targets, no packaging, no release pipeline. This adds them, matching the node-lookup conventions, so tagged releases produce an installable RPM. ## Changes - Makefile: add `make patch|minor|major` (compute next semver tag, tag + push), plus `dist-build`, `completions`, and `rpm`/`rpm-package` targets. - packaging/nfpm.yaml + scripts/build-rpm.sh: package the tomswall binary with bash/zsh completions, the example config, and a systemd agent unit into an RPM. - packaging/tomswall-agent.service + agent.env: run `tomswall agent` as a systemd service (CAP_NET_ADMIN/CAP_NET_RAW), configured via /etc/tomswall/agent.env. - .woodpecker/release.yaml: on a v* tag, test → build → package the RPM → PUT it to the artifactapi rpm-internal repo (a real yum repo).
unkinben added 1 commit 2026-07-20 22:31:23 +10:00
Add release machinery: version bump, nfpm RPM, release-on-tag pipeline
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
a3b51018a9
- Makefile: add make patch|minor|major (tag + push), dist-build, completions,
  and rpm/rpm-package targets.
- packaging/nfpm.yaml + scripts/build-rpm.sh: package the tomswall binary with
  bash/zsh completions, the example config, and a systemd agent unit into an RPM.
- packaging/tomswall-agent.service + agent.env: run `tomswall agent` as a
  systemd service (CAP_NET_ADMIN/CAP_NET_RAW), configured via /etc/tomswall/agent.env.
- .woodpecker/release.yaml: on v* tag, test -> build -> package RPM -> PUT to the
  artifactapi rpm-internal repo. Matches node-lookup conventions.
benvin merged commit a739d87597 into main 2026-07-20 22:39:21 +10:00
benvin deleted branch benvin/release-machinery 2026-07-20 22:39:21 +10:00
Sign in to join this conversation.