mean-bean-ci-template

Build and Test Your Rust Projects with Zero Configuration

Stars
100

🦀 Ferris' Mean Bean CI Machine

This is a template for GitHub Actions meant as a successor to japaric/trust for handling XAMPPRocky/tokei's CI and deployment. I decided to make it a template to be able share it across projects and with the community.

Features

⚒️ Test Everywhere. Build & Test your Rust project up to 50 different targets with three different release channels.

🙅‍♀️ No Configuration. Set your binary name and you're good to go!

🚁 Automatic GitHub Deployments. Build binaries for any tagged release.

🏭 Massively Parallel. Each target and channel pair runs in parallel, the only limit is your GitHub plan.

Using this template

There are two main CI files in this template.

  • mean_bean_ci.yml — Handles push & pull request build and testing.

  • mean_bean_deploy.yml — Handles deploying to GitHub Releases on tag push.

    • Update the BIN variable to be your binary's name before deploying.
    • You can delete mean_bean_deploy.yml if don't want any deployments.

Customising Build & Test

You can customise the build and testing in ci/build.bash and ci/test.bash respectively.

Known Issues

  • Currently you cannot rebuild a deployed release if you have already built that target, without manually deleting the release first. This will be fixed soon.