Release Management
This is a simple project to demonstrate the release management process for my open source work.
Installation instructions
Easy installation on macOS or Linux
If you are running macOS or Linux on an x86-64 CPU, you can install Release Management with this command:
curl https://raw.githubusercontent.com/stepchowfun/release-management/main/install.sh -LSfs | sh
The same command can be used again to update Release Management to the latest version.
NOTE: Piping curl
to sh
is considered dangerous by some since the server might be compromised. If you're concerned about this, you can download and inspect the installation script or choose one of the other installation methods.
NOTE: The installation script requires curl
. Most macOS and Linux machines have curl
installed by default.
Customizing the installation
The installation script supports the following environment variables:
-
VERSION=x.y.z
(defaults to the latest version) -
PREFIX=/path/to/install
(defaults to/usr/local/bin
)
For example, the following will install Release Management into the working directory:
curl https://raw.githubusercontent.com/stepchowfun/release-management/main/install.sh -LSfs | PREFIX=. sh
Manual installation for macOS, Linux, or Windows
The releases page has precompiled binaries for macOS, Linux, and Windows systems running on an x86-64 CPU. You can download one of them and place it in a directory listed in your PATH
.
Installation with Cargo
If you have Cargo, you can install Release Management as follows:
cargo install release-management
You can run that command with --force
to update an existing installation.
For maintainers
Release instructions
- Bump the version in
Cargo.toml
, runcargo build
to updateCargo.lock
, and updateCHANGELOG.md
with information about the new version. Ship those changes as a single commit. - Once the GitHub workflow has finished on the
main
branch, update the version ininstall.sh
to point to the new release.
GitHub instructions
When setting up the project, change the following settings:
- Under
Secrets
, add the following repository secrets with appropriate values:CRATES_IO_TOKEN
DOCKER_PASSWORD
- Under
Branches
, add a branch protection rule for themain
branch.- Enable
Require status checks to pass before merging
.- Enable
Require branches to be up to date before merging
. - Add the following status checks:
Build and test on Linux
Build and test on macOS
Build and test on Windows
- Enable
- Enable
Include administrators
.
- Enable
- Under
Options
, enableAutomatically delete head branches
.