tconbeer/sqlfmt

View on GitHub
.github/workflows/release.yml

Summary

Maintainability
Test Coverage
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.