Skip to content

Commit

Permalink
Update releasing setup
Browse files Browse the repository at this point in the history
  • Loading branch information
ZacSweers committed Jun 11, 2023
1 parent 5cb595c commit 6b58ba9
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 8 deletions.
11 changes: 3 additions & 8 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,6 @@
Releasing
=========

1. Change the version in `gradle.properties` to a non-SNAPSHOT version.
2. Update the `CHANGELOG.md` for the impending release.
3. `git commit -am "Prepare for release X.Y.Z."` (where X.Y.Z is the new version)
4. `git tag -a X.Y.Z -m "Version X.Y.Z"` (where X.Y.Z is the new version)
5. `./gradlew publish && ./gradlew closeAndReleaseRepository`
6. Update the `gradle.properties` to the next SNAPSHOT version.
7. `git commit -am "Prepare next development version."`
8. `git push && git push --tags`
1. Update the `CHANGELOG.md` for the impending release.
2. Run `./release.sh <version>`.
3. Publish the release on the repo's releases tab.
60 changes: 60 additions & 0 deletions release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
#!/usr/bin/env bash

set -exo pipefail

# Helper function to increment a semantic version string.
function increment_version() {
local delimiter=.
# shellcheck disable=SC2207
local array=($(echo "$1" | tr $delimiter '\n'))
local version_type=$2
local major=${array[0]}
local minor=${array[1]}
local patch=${array[2]}

if [ "$version_type" = "--major" ]; then
major=$((major + 1))
minor=0
patch=0
elif [ "$version_type" = "--minor" ]; then
minor=$((minor + 1))
patch=0
elif [ "$version_type" = "--patch" ]; then
patch=$((patch + 1))
else
echo "Invalid version type. Must be one of: '--major', '--minor', '--patch'"
exit 1
fi

incremented_version="$major.$minor.$patch"

echo "Incremented version: $incremented_version"
}

# Gets a property out of a .properties file
# usage: getProperty $key $filename
function getProperty() {
grep "${1}" "$2" | cut -d'=' -f2
}

NEW_VERSION=$1
NEXT_VERSION="$(increment_version "$NEW_VERSION" --minor)-SNAPSHOT"
SNAPSHOT_VERSION=$(getProperty 'VERSION_NAME' gradle.properties)

echo "Publishing $NEW_VERSION"

# Prepare release
sed -i '' "s/${SNAPSHOT_VERSION}/${NEW_VERSION}/g" gradle.properties
git commit -am "Prepare for release $NEW_VERSION."
git tag -a "$NEW_VERSION" -m "Version $NEW_VERSION"

# Publish
./gradlew publish -x dokkaHt .ml

# Prepare next snapshot
echo "Updating snapshot version to $NEXT_VERSION"
sed -i '' "s/${NEW_VERSION}/${NEXT_VERSION}/g" gradle.properties
git commit -am "Prepare next development version."

# Push it all up
git push && git push --tags

0 comments on commit 6b58ba9

Please sign in to comment.