Replies: 3 comments 16 replies
-
Great idea! Actually I also thought about this, but failed due to the lack of knowledge in the automated setup.
I'm unsure if it's possible to link two repositories with GitHub actions. I think you could probably push from the main repo to the PPA repo by using a bash script. So the workflow would look like that:
Concerning the signing, someone who is deeper into this topic should have a look at it (@hoffie)? |
Beta Was this translation helpful? Give feedback.
-
Just found reprepro: https://salsa.debian.org/brlink/reprepro/-/blob/debian/docs/short-howto the package seems to be quite interesting (and not too difficult to implement). I mean at first, we could provide a beta, un-signed PPA. |
Beta Was this translation helpful? Give feedback.
-
Hoffie did some work on https://github.com/hoffie/jamulus-repos and I've imported + changed his repo and pushed it to https://github.com/jamulussoftware/repos/ There's also a slightly different approach I'm thinking of in jamulussoftware/repos#2 In short: Change the autobuild process to upload the metadata files directly to the latest release after they are finished and rely on GitHub redirects. The Repo URL would be e.g. https://github.com/jamulussoftware/jamulus/releases/latest/download/ |
Beta Was this translation helpful? Give feedback.
-
Background
x64 Linux users with distributions based on Debian currently need to download and install the
.deb
file manually from each Release of Jamulus if they want to keep up to date. This is because most of the Debian-based distributions are falling behind the Release version, as they're only maintained on a best-endevours basis.The usual mechanism used in cases such as this is a Personal Package Archive (PPA) referencing the software. This allows the user to keep the software update using the built in tools for their distribution.
Proposal
It is possibly to maintain a PPA directly on Github. The process is explained by Assaf Morami here. It assumes that a single Github user account would maintain the PPA but I am proposing that the PPA for Jamulus be "owned" by the Jamulussoftware organisational account. The release workflow would take place as is, ending up with a new tagged release. This would then need to trigger (ideally automatically) a workflow in the PPA repository to pick up the release
.deb
file(s) and add them to the PPA.This would require a GPG key to be created on behalf of the account by a "trusted party" and then secured such that only the Jamulussoftware account and any Github accounts trusted to manage that account had access to the private (signing) key. Any existing Jamulussoftware account Admin could create the GPG keypair for Jamulussoftware. Each Admin would also need provide their GPG public key to the key creator so that they could received an encrypted copy of the keypair that only they could import.
(There's also fluff around key-signing keys and key revokation that would need thinking about.)
Github has provision for such secrets. We could use a repository-level secret that is recognised only as the signer for the PPA repo.
https://docs.github.com/en/actions/security-guides/encrypted-secrets
There is a market place action to bring the secrets into the workflow.
https://github.com/marketplace/actions/import-gpg
Beta Was this translation helpful? Give feedback.
All reactions