ci: auto-upload to Launchpad PPA on tag - #547
Conversation
On a semver tag, build the Debian source package (version from the tag), sign with the release subkey (GPG_PRIVATE_KEY/GPG_PASSPHRASE secrets via agent passphrase preset) and dput to ppa:sapd/headsetcontrol. Targets noble only (needs GCC 13+ for C++20).
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 2545a42c2a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - name: Install packaging tools | ||
| run: | | ||
| sudo apt-get update -qq | ||
| sudo apt-get install -y -qq devscripts debhelper dput |
There was a problem hiding this comment.
Install the package's declared build dependencies
debuild -S still invokes dpkg-buildpackage's default build-dependency check (-D, --check-builddeps ... default), but this install list omits the source package's required libhidapi-dev from debian/control. The existing Linux build workflows install that dependency explicitly. Consequently, a tag-triggered PPA job on a standard hosted runner will stop at dpkg-checkbuilddeps before producing the signed .changes file; install libhidapi-dev (and preferably all declared Build-Depends) before invoking debuild.
Useful? React with 👍 / 👎.
Code reviewNo issues found. Checked for bugs and CLAUDE.md compliance. |
Codifies the manual
debuild -S→debsign→dputflow into CI.On a semver tag it builds the Debian source package (version derived from the tag,
~<series>1suffix), signs with the release subkey, anddputs toppa:sapd/headsetcontrol. Launchpad then builds the .deb.Reuses existing secrets
GPG_PRIVATE_KEY/GPG_PASSPHRASE(no new secret needed) — imported and preset into gpg-agent by keygrip sodebsignruns non-interactively.Notes:
debian/(merged after 4.0.0), so it applies from the next release onward. First validation is the next tag (orworkflow_dispatch).