chore: add CI to publish Flatpak to Mixxx repo - #16061
Conversation
c6baeaa to
28d91c0
Compare
|
Hi @djantti, would you be happy to help reviewing this PR? |
|
I have found here a similar solution: |
|
How can we test this? |
| ${SSH_HOST} ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBC/q8hYkss2z4UhT43JRDq+yaUcE3P6VlmfQZWw/49GjwT+VbIuFmej3iLFn1y3YkzPLKYf+BVcXQixZGKNpKrA= | ||
| ${SSH_HOST} ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBJR4dlJQ4NmvJj63YZmxhcUOVkmTITCfCwrCiGRaNe4 | ||
| EOF | ||
| echo "SSH_AUTH_SOCK=${SSH_AUTH_SOCK}" >> "${GITHUB_ENV}" |
There was a problem hiding this comment.
Pinning the host keys is not a bad idea security wise. Can we move them to a GitHub secret to be able to update them easily? There are also other part of the workflow that can use the pinned version.
Contacting the wrong server is probably not a security thread. So we may also consider here the old method and update all workflows in a separate PR.
There was a problem hiding this comment.
Can we move them to a GitHub secret to be able to update them easily?
Generally, I would recommend to non-sensitive information visible and transparent. I could move it to a repo variable though.
So we may also consider here the old method and update all workflows in a separate PR.
Fair. I would argue that in the case of shared runner, DNS cache poisoning is something we should protect ourself against, but agreed it can be approved in future PRs and doesn't need to delay the release any further.
djantti
left a comment
There was a problem hiding this comment.
Ooo, really nice! It's a bit complicated, but less so than I feared it would be without flat-manager. 😅
I'd prolly change all references of channel to branch, since that's what they're called in Flatpak documentation. But it's just a naming thing and doesn't really matter.
| Homepage=https://mixxx.org/ | ||
| Comment=Flatpak repo for Mixxx releases and snapshots | ||
| Description=Flatpak repo for Mixxx releases and snapshots | ||
| Icon=https://mixxx.org/theme/images/mixxx-logo.svg |
There was a problem hiding this comment.
We could add the repo public GPG key at the end here with GPGKey=<key>, base64-encoded and everything in a single line.
There was a problem hiding this comment.
Ah good should. Do you know if there is an easy way to extra the public key from the signed flatpak that are already pushed?
There was a problem hiding this comment.
Hmm, looks like there are binary .sig files inside a Flatpak repo, but I couldn't find a match to my testing public key. But I guess the public key should be the same as the Ubuntu PPA public key?
There's also a DefaultBranch=<branch> option we could add (and prolly set to stable), but I haven't tested that. I think it should allow installing without specifying a branch. And we're not using the default master branch, so that actually might be important. 🤔
There was a problem hiding this comment.
@rryan 's key can be found on the Ubuntu keyserver:
https://keyserver.ubuntu.com/pks/lookup?search=6F709194D92C4947&fingerprint=on&op=index
This was previously tested as PR command, using the same action via
Sounds like a great call. Could you share your recommendation? |
I was just thinking of a quick |
30014a3 to
70561a3
Compare
4cf9193 to
094c300
Compare
|
Apologies for the mess - I though I was amending my test commit but realised to I was messing up with the fixup too late. I have run further tests, added all signing and confirm it was working. Added some edge case (snapshot) and fixed a bug with metadata. Run ID for evidence: https://github.com/mixxxdj/mixxx/actions/runs/22932552442/job/66557059929 Testing: |
|
I can confirm it works, however we need to have a look to the branch naming. And on our PPA: We probably want to have similar four streams like in our PPA?
Here we have now
Which implements a different strategy. Can we remove the snapshot feature here, that links to any branch? This has been only added for testing, right? |
|
Working great here too! 🚀 Commit signing works, the repo log looks good and installing works even without specifying the branch. There's only one branch on the repo, so it prolly selects that automatically. |
|
Happy to remove snapshot. When it comes to Are you happy with keeping |
|
Our PPA also builds every single merge. At least it should. The "nightly" label is used because it is a widely established term for the bleeding edge build form the main branch in the flatpak ecosystem: For my feeling "nightly" seems to be still a very common term more common than "alpha". I think So we need a name for the |
|
I've always thought nightlies as scheduled daily builds from the main dev branch. But I guess it could also be from another branch, like a nightly beta. And Gimp for example has nightly Flatpaks, but they're actually weeklies built using a Gitlab cron job. 😁 If I'm understanding correctly, our Flatpak repo would mainly be like a continuously rolling development repo for stable, beta and alpha branch builds. It's a really cool approach, especially for testing purposes. From that perspective the branch names do make sense to me. But things might indeed get confusing if the repo will also have tagged stable / beta release branches. |
|
@djantti, my idea is to offer the same updates our PPAs do. The issue here is that a new user sees the branch options with the branch-ls option and shall instantly know from its learned knowledge what he can expect by following one or another branch. Copying the branch names from the PPA would be one option. But for my understanding they are foreign in the Flatpak world. What are the best names for our four branches (streams). Can you draft a proposal? |
Yes, this was the idea!
So do I, thus my confusion!
Not sure I understand. My thought was to have
And Only one not included would be push to stable branch (e.g So are we happy to move forward with 3 branches - |
Yes, this is the equivalent for Mixxx Releases
Yes, this is the equivalent for Mixxx Beta Releases
Yes, this is the equivalent for Nightly Builds
Ah yes you are right, we have introduced it on our PPA, because we don't have Github builds for every 3.5 commit for every Ubuntu version. In case of Flatpak testers can pick the Workflow artifact.
Interesting thought. We don't have a stable build anyway right now. So do we probably don't want to introduce it at all and go with two branches only? |
Same - Leaving the choice to @djantti :D
Sounds good. I tried and you just have to download it and
The reason for introducing it is to offer a workaround to the abandoned Flathub distribution, which is stuck to 2.5.2. This would have offered a way to our Flathub user to install the latest versions (2.5.5, but also 2.6.0 coming soon with STEM) I know a few persons that have been desperate for a solution, and looking at the listing, we have 180k installs so this isn't an isolated platform. |
|
Nooo, I was going to suggest stable, prettystable and omgdefinitelynotstable. 😆 Flatpak users are indeed most familiar with stable, beta and nightly repositories / branches. Unstable is also quite common for the latter. Alpha is a traditional choice, but perhaps more rare in Flatpak world. Personally I've always thought nightlies as scheduled builds. But if Gimp can have weekly nightlies, then we can definitely have an awesome rolling nightly branch. And hey, it's always night somewhere. So stable, beta and nightly sounds good. They're commonly used, very distinct and easy to remember. |
|
OK, what situation we may face with this mirroring issue? Such a repository is for automatically distributing updates. Will users than have the Flathub version and our version side by side? Will they face conflicts or will Flatpak be smart enough to use the most recent version form either source? |
|
Updated the branch to stable/beta/nightly and removed the snapshot usecase! |
eb2d3d1 to
e570ae1
Compare
Yeah, this is why I'm glad we're going with the branches approach. You can have all three branch versions installed at the same time and run them with something like And since we use the default |
| chmod +x rsync-repos | ||
|
|
||
| if [[ "$REF" =~ ^refs/tags/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then | ||
| echo "commit_summary=Stable build for 2.5" >> $GITHUB_OUTPUT |
There was a problem hiding this comment.
This is just the latest release version. Can we remove or set the version number automatically?
There was a problem hiding this comment.
Ah, scratch that. We need to edit the branches anyway..
There was a problem hiding this comment.
Yeah, I think we can improve this so the version gets inferred in the future. Not quite sure how yet tho, so let's keep that as a later improvement
daschuer
left a comment
There was a problem hiding this comment.
Ready for merge after rebase. Thank you for this nice effort.
e570ae1 to
4e37e00
Compare
|
Rebased and ready to go! |
|
Thank you! This is going to be a really awesome feature! 🚀 |

This is a follow up to @djantti 's work.
As discussed before, we could consider dropping the PR command, since one could download the Flatpak build asset manually and install it, like for the other targetsRemoved now to allow quick merge ahead of 2.5 final release