actions icon indicating copy to clipboard operation
actions copied to clipboard

Rust Releaser

Open bltavares opened this issue 5 years ago • 0 comments

The goal is to provide cross compilation as Github Action, allowing to create executable and external libs.

It is based on cross to provide the environment with the cross-compilation tools on Linux. At first, the idea is to start with musl, gnu and windows cross compilation, but extend that for WASM and ARM binaries and libs.

This uses pre-compiled updated cross docker images as the base, hosted under the name of rustreleaser on the registry. It them adds the rustup and entrypoints. This allow to use the images with cross, and provides a general idea for adding actions for new triplets.

It should be possible to add MacOS cross-compilation, but that is more complicated, from what I've researched, with a risk of not being allowed by Apple. It would be better to provide Windows and Mac actions using the new GitHub Actions platform, but that requires more investigation (#25)

TODO:

  • [ ] Documentation of the action
  • [ ] Provide updated Rust
  • [ ] Add cccacher
  • [ ] Change cache config to allow multiple-builds on the sametime
  • [ ] Add more common build libs (openssl) as we go testing

This action is taking 20 minutes to run all 3 of them, which is the limit of GH Actions Alpha. Now with GH Actions Beta, we could have parallel builds without conflicts as they don't share workspaces and cargo won't lock the build folder. With pre-compiled docker images, it should be faster.

bltavares avatar Aug 25 '19 22:08 bltavares