chore: Prepare justfile for release
This commit is contained in:
parent
71a3bda3c3
commit
c599138982
5 changed files with 18 additions and 49 deletions
58
justfile
58
justfile
|
|
@ -3,58 +3,26 @@
|
|||
export RUST_BACKTRACE := "1"
|
||||
|
||||
set dotenv-load := true
|
||||
set shell := ["bash", "-cu"]
|
||||
set shell := ["bash", "-xeu", "-o", "pipefail", "-c"]
|
||||
set positional-arguments := true
|
||||
|
||||
# default recipe to display help information
|
||||
default:
|
||||
@just --list
|
||||
|
||||
# release: remove the dev suffix, like going from 0.X.0-dev to 0.X.0
|
||||
# --workspace: updating all crates in the workspace
|
||||
# --no-publish: do not publish to crates.io
|
||||
# --execute: not a dry run
|
||||
# --no-tag: do not push tag for each new version
|
||||
# --no-push: do not push the update commits
|
||||
# --dependent-version upgrade: change 0.X.0-dev in internal dependencies to 0.X.0
|
||||
# --exclude: ignore those packages
|
||||
cargo-release *args:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
cargo release release -v \
|
||||
# release: Run cargo release and push the tag separately
|
||||
release *args:
|
||||
# --workspace: updating all crates in the workspace
|
||||
# --no-tag: do not push tag for each new version
|
||||
# --no-confirm: don't look for user input, just run the command
|
||||
# --execute: not a dry run
|
||||
cargo release $1 -v \
|
||||
--workspace \
|
||||
--no-publish \
|
||||
--no-tag \
|
||||
--no-confirm \
|
||||
--no-push \
|
||||
--dependent-version upgrade "$@"
|
||||
--execute
|
||||
|
||||
# See @cargo-release for meaning of cargo-release arguments
|
||||
cargo-post-release *args:
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Read the current version from Cargo.toml
|
||||
current_version=$(cargo metadata --format-version 1 --no-deps | \
|
||||
jq --raw-output '.packages | .[] | select(.name == "blue-build").version')
|
||||
|
||||
echo "Current Version: $current_version"
|
||||
|
||||
# Sanity check: current version should be 0.X.Y
|
||||
if ! grep -q '^0\.[0-9]\+\.[0-9]\+$' <<< "${current_version}"; then
|
||||
echo "Invalid version (not in 0.X.Y format): ${current_version}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
minor_version=$(sed 's/^0\.\([0-9]\+\).*/\1/' <<< "${current_version}")
|
||||
next_version=0.$((minor_version + 1)).0-dev
|
||||
echo "Bumping version to ${next_version}"
|
||||
|
||||
# See @cargo-release for meaning of these arguments
|
||||
cargo release -v "${next_version}" \
|
||||
--workspace \
|
||||
--no-publish \
|
||||
--no-tag \
|
||||
--no-confirm \
|
||||
--no-push "$@"
|
||||
VERSION=$(cargo metadata --format-version 1 | jq -r '.packages[] | select(.name == "blue-build") .version')
|
||||
echo "Pushing tag: v${VERSION}"
|
||||
git tag "v${VERSION}"
|
||||
git push origin "v${VERSION}"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue