Skip to content

Merge pull request #9 from DiogoRibeiro7/feat/first_commit #8

Merge pull request #9 from DiogoRibeiro7/feat/first_commit

Merge pull request #9 from DiogoRibeiro7/feat/first_commit #8

Workflow file for this run

name: Bump Version on Merge to Main
on:
push:
branches:
- main
jobs:
bump-version:
runs-on: ubuntu-latest
permissions:
contents: write
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0 # Required for semantic-release to access full git history
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install Poetry
run: |
curl -sSL https://install.python-poetry.org | python3 -
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
poetry install
poetry add --group dev python-semantic-release
- name: Configure Git user
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Run Semantic Release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: poetry run semantic-release publish
- name: Push changes
run: |
git push --follow-tags
- 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 }}