#!/usr/bin/env bash set -euo pipefail ################################################################################ # Sets the version in Cargo.toml, commits the change, tags this commit and # pushes to origin. This will trigger the release pipeline in GitHub which will # handle the rest. # # Usage: $0 ################################################################################ main() { local version="${1}" # Update cargo file with new version (replace only the first version found). cat Cargo.toml | sed "1,/version/s/version = \".*\"/version = \"${version}\"/" >Cargo.toml.new mv Cargo.toml.new Cargo.toml # Commit and tag. git commit -am "Release v${version}" git tag -sm "Release v${version}" "v${version}" git push --atomic origin main "v${version}" } main "$@"