Create Release Branch #72
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Create Release Branch | |
on: | |
workflow_dispatch: | |
inputs: | |
newVersion: | |
description: A version number for this release (e.g., "0.1.0") | |
required: true | |
jobs: | |
prepare-release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
pull-requests: write | |
env: | |
POETRY_VIRTUALENVS_IN_PROJECT: 1 | |
POETRY_INSTALLER_PARALLEL: 1 | |
POETRY_VIRTUALENVS_CREATE: 1 | |
steps: | |
- name: Check out project main branch | |
uses: actions/checkout@v4 | |
with: | |
ref: main | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Load cached Poetry installation | |
id: cached-poetry-install | |
uses: actions/cache@v4 | |
with: | |
path: ~/.local | |
key: ${{ runner.os }}-poetry-171 # increment to reset cache | |
- name: Add cached Poetry to PATH | |
if: steps.cached-poetry-install.outputs.cache-hit == 'true' | |
run: echo "$HOME/.local/bin" >> $GITHUB_PATH | |
- name: Install Poetry | |
if: steps.cached-poetry-install.outputs.cache-hit != 'true' | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.8.3 | |
- name: Create release branch | |
run: | | |
git checkout -b release/v${{ github.event.inputs.newVersion }} | |
git push --set-upstream origin release/v${{ github.event.inputs.newVersion }} | |
- name: Bump version | |
run: poetry version ${{ github.event.inputs.newVersion }} --no-interaction | |
- name: Ensure package can be built | |
run: poetry build --no-interaction | |
- name: Update CHANGELOG | |
uses: thomaseizinger/keep-a-changelog-new-release@v3 | |
with: | |
version: ${{ github.event.inputs.newVersion }} | |
- name: Commit Changes | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Bumps version to ${{ github.event.inputs.newVersion }} | |
- name: Create pull request into main | |
uses: thomaseizinger/create-pull-request@1.4.0 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
head: release/v${{ github.event.inputs.newVersion }} | |
base: main | |
title: v${{ github.event.inputs.newVersion }} | |
body: > | |
This PR was automatically generated. It bumps the version number | |
in pyproject.toml and updates CHANGELOG.md. You may have to close | |
this PR and reopen it to get the required checks to run. | |