bupstash
bupstash copied to clipboard
Added x86_64-unknown-linux-musl builds on release
I added a basic CI job to make x86_64-unknown-linux-musl builds.
It's based on ripgrep's CI (https://github.com/BurntSushi/ripgrep/blob/master/.github/workflows/release.yml). I've marked it as a draft since it doesn't trigger on releases yet and doesn't upload the artifact to the correct location. I mostly want to gather feedback on the approach for now.
This partially solves #175 and #152.
nice, why do we need to build our own libsodium btw? Oh, Its on ubuntu, I understand now.
Technically libsodium already exists inside the container, but since we're making a statically linked binary we need the archive file (that I think doesn't exist) and we need that archive file to be built with musl as well.
If you're happy with the methodology I'll add the bits that makes trigger on releases rather than push. I think it can be extended later on to include other architectures.
I'm happy, its better than what there is currently by far haha. The only thing i wonder about is running the CLI test on the release binaries.
I'll see what I can do, but it'll probably involve duplicating parts of the existing CI.
Don't worry too much about that btw, it's not a blocker.
Just checking in to say this is something I am still thinking about, it is definitely not forgotten.
Things are on my end, though I appreciate that you got back here :smile:. I'll mark it as ready when I've added the trigger on release thing.
So, it has been a while. I've finally gotten around to fix it up.
- It should run for any tag that matches
v*.*.*
(which all current versions seems to do). - Binaries are automatically added to the tag.
- It builds musl binaries for x64_64 and aarch64 (adding more should be simple)
- Binaries are named after the version and architecture. I'm a bit torn on this one since you can't just point it at the latest release and download it then (https://github.com/bupstash/bupstash/releases/latest/download/bupstash-v1.2.3-linux-aarch64) but I kept it that way since that what current releases seems to do (though they are zipped).
On an unrelated note it seems like CI is broken on master due to a clippy update?
I'm currently on holiday so won't be able to merge anything for a few days.
The clippy lints breaking things is entirely out of our control so isn't the best - but it is useful to know about it when it happens.
No rush! I've let it marinate for 6 months so what's a few more days :laughing:
Just rebased it on top of latest master so the CI issue is fixed.
EDIT: macOS is broken (but not because of this PR)
It's unfortunate but we keep hitting the time limits haha.
@runfalk I am looking at doing a 1.0 release soon so merging this is now a high priority, I will take a look and hopefully add more platforms.
This can be easily achieved using the setup-alpine action, see example.