Skip to content

Commit

Permalink
Merge pull request #487 from recurly/update-release-scripts
Browse files Browse the repository at this point in the history
Updating release scripts
  • Loading branch information
chrissrogers authored Apr 9, 2021
2 parents 9c8580b + 41e1dc9 commit 3f93afb
Show file tree
Hide file tree
Showing 6 changed files with 59 additions and 81 deletions.
11 changes: 11 additions & 0 deletions .changelog_config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
owner: recurly
repo: recurly-client-python
tag_matcher: ^4\..*
required_issue_labels:
- V4
exclude_labels:
- bug?
- internal
- duplicate
- question
8 changes: 0 additions & 8 deletions .github_changelog_generator

This file was deleted.

11 changes: 0 additions & 11 deletions scripts/bump

This file was deleted.

14 changes: 0 additions & 14 deletions scripts/changelog

This file was deleted.

72 changes: 43 additions & 29 deletions scripts/prepare-release
Original file line number Diff line number Diff line change
@@ -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/python-pending-changes.md"

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

git checkout -b "release-$NEXT_VERSION"

# Actually bump the version
./scripts/bump "$PART"
# Usage
#
# ./prepare-release major|minor|patch [--notes-out <path>] [--tag-out <path>]
#

# Rebuild docs
./scripts/build
set -e

# Make the commit
git add . --all
git commit -F "$UNRELEASED_LOG"
if [ -n "$(git status --porcelain)" ]; then
echo "Working directory is not clean. Aborting."
exit 1
fi

# Push up this branch for PR
git push origin "release-$NEXT_VERSION"
if [ -z "$GITHUB_TOKEN" ]; then
echo "GITHUB_TOKEN must be set. Aborting."
exit 1
fi

# Create PR
hub pull-request -c -F "$UNRELEASED_LOG"
# 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)

# Generate Changelog
changelogly --future-release "$new_version"

while [[ "$#" -gt 0 ]]; do
case $1 in
# Create release notes artifact
-n|--notes-out)
echo "$new_version
$(
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 "v$new_version" > $2
;;
esac
shift
done
24 changes: 5 additions & 19 deletions scripts/release
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
#!/usr/bin/env bash

set -e
# TODO this file could be gone
RELEASED_LOG="/tmp/python-pending-changes.md"
THIS_VERSION=$(./scripts/bump --this-version)

# Generate the changelog with changes in this release
./scripts/changelog --release-tag "$THIS_VERSION"
git add CHANGELOG.md
git commit -m "Update Changelog for Release $THIS_VERSION"
git push origin master
# Usage
#
# ./release
#

# Publish
# First cleanup dist folder
Expand All @@ -20,14 +17,3 @@ twine check dist/*
# publish to pypi
twine upload dist/*

# create release
hub release create -c -F $RELEASED_LOG $THIS_VERSION

# Copy-pasteable messages for announcments
echo ":python: Python $THIS_VERSION Released :python:"
echo ":pypi: PyPi: https://pypi.org/project/recurly/$THIS_VERSION/"
echo "Release: https://github.com/recurly/recurly-client-python/releases/tag/$THIS_VERSION"
echo "Changelog:"
echo "\`\`\`"
cat "$RELEASED_LOG"
echo "\`\`\`"

0 comments on commit 3f93afb

Please sign in to comment.