diff --git a/.github/workflows/bump-version.yml b/.github/workflows/bump-version.yml index dc5f4a9..6e25d01 100644 --- a/.github/workflows/bump-version.yml +++ b/.github/workflows/bump-version.yml @@ -37,3 +37,30 @@ jobs: - name: Push changes run: | git push --follow-tags + - name: "Install Poetry" + run: pip install poetry + - name: "Determine version bump type" + run: | + git fetch --tags + # This defaults to a patch type, unless a feature commit was pushed, then set type to minor + LAST_TAG=$(git describe --tags $(git rev-list --tags --max-count=1)) + LAST_COMMIT=$(git log -1 --format='%H') + echo "Last git tag: $LAST_TAG" + echo "Last git commit: $LAST_COMMIT" + echo "Commits:" + git log --no-merges --pretty=oneline $LAST_TAG...$LAST_COMMIT + git log --no-merges --pretty=format:"%s" $LAST_TAG...$LAST_COMMIT | grep -q ^feat: && BUMP_TYPE="minor" || BUMP_TYPE="patch" + echo "Version bump type: $BUMP_TYPE" + echo "BUMP_TYPE=$BUMP_TYPE" >> $GITHUB_ENV + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: "Version bump" + run: | + poetry version $BUMP_TYPE + - name: "Push new version" + run: | + git add pyproject.toml + git commit -m "Update version to $(poetry version -s)" + git push origin HEAD:${{ github.event.pull_request.head.ref }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file