This is a simple project to demonstrate the cross-platform release management process for my open source work.
If you are running macOS or Linux on an x86-64 CPU, you can install Stem Cell with this command:
sh
curl https://raw.githubusercontent.com/stepchowfun/stem-cell/main/install.sh -LSfs | sh
The same command can be used again to update Stem Cell 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.
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 Stem Cell into the working directory:
sh
curl https://raw.githubusercontent.com/stepchowfun/stem-cell/main/install.sh -LSfs | PREFIX=. sh
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
.
If you have Cargo, you can install Stem Cell as follows:
sh
cargo install stem-cell
You can run that command with --force
to update an existing installation.
Cargo.toml
, run cargo build
to update Cargo.lock
, and update CHANGELOG.md
with information about the new version. Ship those changes as a single commit.main
branch, update the version in install.sh
to point to the new release.When setting up the repository on GitHub, change the following settings:
Secrets
, add the following repository secrets with appropriate values:
CRATES_IO_TOKEN
DOCKER_PASSWORD
Branches
, add a branch protection rule for the main
branch.
Require status checks to pass before merging
.Require branches to be up to date before merging
.Build and test on Linux
Build and test on Windows
Build and test on macOS
Create a release on GitHub if applicable
Run the installer script on Ubuntu to validate it
Run the installer script on macOS to validate it
Include administrators
.Options
, enable Automatically delete head branches
.The GitHub workflow will fail initially because the job to install the latest release will not find any release to download. You will need to bootstrap the v0.0.0 release by temporarily removing or commenting out the line in the workflow referencing the [tag:remove_to_bootstrap]
tag.
This repository can be used as a starting point for a new project. Be sure to rename all references to Stem Cell
and stem-cell
accordingly.