Do you want to build and test your Rust project virtually anywhere? Do you want automatic deployments? Do you want parallelisation that's almost too much ? Then check out Ferris' Mean Bean CI Machine! A CI template for GitHub Actions I made to replace japaric/trust
on projects such as my own tokei
.
Nice!
I just went through this process myself for snap
, so I took a peek at this to see if we did anything differently. I really like this trick:
# We're using using a fork of `actions/create-release` that detects
# whether a release is already available or not first.
- uses: XAMPPRocky/create-release@v1.0.2
If you don't have idempotency, then you wind up needing to do some shenanigans with GitHub Actions artifacts. The rust-analyzer repo actually stores the executable for each target as an artifact and then combines them all together in a separate job to create the release. The approach I took was to create the release first and store the release upload URL as an artifact. Then each job would run to build the release for each target, which can just upload the release directly as a release asset.
But your approach is quite a bit more elegant! I wish the official actions were better maintained by GitHub. :-/
But your approach is quite a bit more elegant! I wish the official actions were better maintained by GitHub. :-/
Writing this made really wish releases as whole was more put to together. This solution doesn't work with draft releases because GitHub provides no way to get a draft release if you weren't the client who created the draft. So if you enable that feature it will generate a seperate draft release for each target with the same name and ref.
Though I would say GitHub Actions overall is very powerful. I think having it entirely git based makes very easy to extend in the ways you want. As maybe a sub announcement. I have also released get-github-release
which allows you to download any tool released on GitHub through GitHub releases. I used it here for downloading cross
, and I plan to build a github action for mdbook deployments that uses it.
This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.