Who builds the build scripts? (We do.)

There's a lot of options out there for people who want to spend weeks configuring their build scripts. We think there should be an option for folks who'd rather it take minutes.

Step 1: Write your code

Write your code in whatever language you want and commit it to GitHub. To prove out the tool we've focused on Rust, but we'll be expanding our language support (We're playing with both C and JavaScript right now- so a little something for everyone!).

If you have a particular language or build system you'd like to see supported - let us know!

a screencap of a github repo that contains a CLI called axolotlsay, overlayed with a terminal window, demonstrating the CLI tool

Step 2: Choose your platforms and installers

Install cargo-dist locally and then run cargo dist init. We'll prompt you to share what platforms and installers you'd like to support. If you have more advanced needs like system dependencies or custom build flags, we allow you to further configure those as well.

Once this completes successfully it will generate a release.yml for you that you can check in to version control.

For more info, checkout the Way Too Quickstart guide.

a terminal window that shows an interactive prompt where someone has chosen several build targets and is currently answering which installers they'd like to build

Step 3: Commit your generated release workflow

You now have a generated workflow script to commit to version control. If you're curious what it does- give it a read- we've added a bunch of comments to help explain exactly what's going on. Right now we support Github Actions for both private and public repos- but we're expanding!

If you have a CI provider you'd like to see supported- let us know!

screencap of a merged github PR called

Step 4: Push a tag to run your release

You are ready to release now! Push a tag to your repository and watch the magic happen. Not ready to take the jump? You can always run cargo dist plan to see what'll happen!

Wanna make sure future code changes don't break your release process? By default, cargo-dist will run cargo dist plan on every pull request to ensure you're always ready to release!

a screenshot of github actions running a 5 step release.yml workflow

Step 5: Share your release!

And that's it. Your release is published with your notes and install/download instructions for all the platforms and installers your picked.

If you wanna get fancy- checkout oranda which will generate a website for you that reads from your releases and generates an installer widget that detects your users' platform and suggests install options.

a screencap of a github release with installer scripts and several archives of binaries for different targets as well as a screencap of a page with an installer widget showcasing the different install options