scripts/prepare-release in recurly-3.18.1 vs scripts/prepare-release in recurly-3.19.0

- old
+ new

@@ -1,36 +1,50 @@ #!/usr/bin/env bash -set -e -# major,minor,patch -PART=${1} -NEXT_VERSION=$(./scripts/bump --next-version "$PART") -UNRELEASED_LOG="/tmp/ruby-pending-changes.md" +# Usage +# +# ./prepare-release major|minor|patch [--notes-out <path>] [--tag-out <path>] +# -if [ -z "$NEXT_VERSION" ]; then - echo "Failed to get next version" -else - # Generate pending changes in tmpfile - ./scripts/changelog --pending $UNRELEASED_LOG - # Add a git message header of Release X.Y.Z - printf "Release %s\n\n$(cat $UNRELEASED_LOG)" "$NEXT_VERSION" > $UNRELEASED_LOG - # Delete credit line - sed -i '' -e '$ d' $UNRELEASED_LOG +set -e - git checkout -b "release-$NEXT_VERSION" +if [ -n "$(git status --porcelain)" ]; then + echo "Working directory is not clean. Aborting." + exit 1 +fi - # Actually bump the version - ./scripts/bump "$PART" +if [ -z "$GITHUB_TOKEN" ]; then + echo "GITHUB_TOKEN must be set. Aborting." + exit 1 +fi - # Rebuild docs - ./scripts/build +# Bump version +# major|minor|patch +part=${1} +if [ "$part" != "patch" ] && [ "$part" != "minor" ] && [ "$part" != "major" ]; then + echo "'$part' is not a valid option: major|minor|patch" + exit 1 +fi +new_version=$(bump2version --list "$part" | grep new_version | cut -d "=" -f 2) - # Make the commit - git add . --all - git commit -F "$UNRELEASED_LOG" +# Generate Changelog +changelogly --future-release "$new_version" - # Push up this branch for PR - git push origin "release-$NEXT_VERSION" +while [[ "$#" -gt 0 ]]; do + case $1 in + # Create release notes artifact + -n|--notes-out) + echo "$new_version - # Create PR - hub pull-request -c -F "$UNRELEASED_LOG" -fi + $( + cat CHANGELOG.md | sed -n "/^## \[$new_version\]/,/^##/p" | sed '$d;1d' + )" | awk '{$1=$1};1' > $2 + shift + ;; + + # Create release notes artifact + -t|--tag-out) + echo "$new_version" > $2 + ;; + esac + shift +done