| #!/usr/bin/env bash |
| |
| # Publish a new version of the crate. |
| # |
| # Dependencies: |
| # - cargo-get |
| # - nvim |
| |
| SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) |
| REPO_DIR="${SCRIPT_DIR}/.." |
| CURRENT_DIR=$(pwd) |
| |
| cd "${REPO_DIR}" |
| |
| set -eo xtrace |
| |
| # Read current version from the Cargo.toml file |
| CURRENT_VERSION=$(cargo get package.version) |
| echo "Current version: ${CURRENT_VERSION}" |
| read -p 'New version: ' NEW_VERSION |
| |
| # Update version in Cargo.toml files |
| sed -i '' "s/version = \"${CURRENT_VERSION}\"/version = \"${NEW_VERSION}\"/g" Cargo.toml |
| sed -i '' "s/version = \"${CURRENT_VERSION}\"/version = \"${NEW_VERSION}\"/g" crates/test-case-macros/Cargo.toml |
| sed -i '' "s/version = \"${CURRENT_VERSION}\"/version = \"${NEW_VERSION}\"/g" crates/test-case-core/Cargo.toml |
| |
| # Validate the release |
| rustup update |
| ./scripts/test_all.sh |
| |
| # Update README if needed |
| cargo readme > README.md |
| |
| # Add changelog entry |
| nvim CHANGELOG.md |
| |
| # Push to github |
| git add . |
| git commit |
| git push origin |
| |
| set +o xtrace |
| |
| echo "Next step: Wait for CI" |
| echo "Next step: \`git tag vX.Y.Z; git push --tags\`" |
| echo "Next step: Create release in Github" |
| echo "Next step: \`cargo publish\`" |
| |
| cd "${CURRENT_DIR}" |