-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Add Flatpak build workflows #15935
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: 2.5
Are you sure you want to change the base?
Add Flatpak build workflows #15935
Conversation
|
This looks straight forward. Thank you. We have discussed to pride different streams for our branches and for stable builds like we do on our PPA. How does it relate to: |
|
Indeed, this looking very good already. One thing I would like to see is the flatpak uploaded to the For that reason, it might be easier to merge the new job to the existing Finally, we should look into automating the upload of a flatpak install https://downloads.mixxx.org/snapshots/2.5/mixxx-2.5.4-10-ga161b85ea9-x86_64.flatpakrefOf course, we will also claim the Flathub repo for stable release, but allowing these flatpakref to be easily tested would be really good for user IMO. I'll try to spin a PR to your repo when time allows it, but feel free to get a head start too :) |
|
Yeah, the Flatpak build tools and containers are easy to use. I like them a lot! For hosting a Mixxx Flatpak repo, we could run flat-manager on the download server or just rsync new OSTree repo structures after a daily build or a release. The latter approach is simple, but AFIK only the latest build would then be available on the repo. In this case we could keep an archive of https://github.com/flatpak/flat-manager Gnome likely uses flat-manager since they have multiple releases ( Installs from different branches can be switched using For Flathub we could eventually request direct upload credentials and ask for the flathub/org.mixxx.Mixxx repo to be archived. But that's definitely something for later. π |
I was tinkering with this earlier, but quite a few steps in the matrix needed to be skipped for Flatpak build. So I was having many nested if: statements and my spider-senses started to tingle. Maybe there's a neat way to split things into even more separate jobs? It's always difficult to figure out a clean solution with limited knowledge of what is even possible. Anyway, I'll keep on working with this and add debug extension builds next. And PRs are most welcome! π€ |
We don't have that yet for the other targets. Since it comes with some challenges I think we should go for Is the KDE solution a matter of sharing a directory? Would it be possible to maintain this directly on out download server without any active server component? Lets go in small steps. This is already great because it has the flatpaks as artefacts for PRs. There is only one thing we need to double check. How do they play with RPM/Debian install and future possible release streams. How is signing handled? |
|
Sure thing, let's go with branches. They're quite flexible. π The way Flatpak branches seem to work is that you can have multiple installations with the same app ID, provided they use different branches. And to make things even more flexible (and sometimes confusing), that limitation is separate for system-wide / user installations. Branch name of The KDE nightly Flatpak repos are indeed just directories on a standard web server. I took a peek at the build jobs and they use But yeah, we prolly should take small steps and limit the scope of this PR. Should we just finish up the artifact builds or add anything else? I'll test next how the |
|
That sounds great. I think the only part we need to consider here to have the naming convention correct that it fits to your future plans. |
We have Flatpak manifests in the tree now, so let's put them to good use! ποΈ
Right now this PR has the basics for creating single-file Mixxx bundles and uploading them as build artifacts. It's using the official Flatpak actions and containers from Flathub. The container images have all the necessary tools and SDKs included, saving on download time.
https://github.com/flatpak/flatpak-github-actions
https://github.com/flathub-infra/actions-images
These can be used for many things - verifying manifests and metadata, creating a package on other events, building Mixxx releases, uploading to repositories and even to Flathub.
There's a lot to do and my GitHub workflow experience is limited, so help is very much appreciated. π