I currently have a system that I can manually create a pre-release and then grab the artifacts based on the git commit, but for more stable builds, I'd like to have a workflow that is as follows:
- User creates tag / release draft. This triggers Actions workflow
- Run linting & testing (
rustfmt
, cargo check
and cargo clippy
) to make sure everything is fine before building
- Build binaries for Windows, Mac, and Linux
- Upload each binary to the release
- Publish the release
Other Solutions
On top of this, I could look into tools like Covector to automate the release process to a point. Not set in stone with anything yet but it could be useful to build some system for publishing rust binaries so I can use it on other applications I build in the future.
As well, this may be useful for libraries as well of instead of building binaries I can create a semi-automated cargo publish
workflow for releases of any crates I decide to develop.