2.2.0 • Published 2 years ago

@bjoluc/semantic-release-config-poetry v2.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

@bjoluc/semantic-release-config-poetry

npm GitHub Workflow Status code style: prettier semantic-release

A shareable semantic-release configuration and composite GitHub Action for Python packages that use Poetry.

How to use this

  • Follow Conventional Commits (for instance, using commitizen).

  • Create an API token for PyPI (or another package index of your choice, like Test PyPI).

  • If you are using GitHub Actions:

    • Add your PyPI API token as a secret named PYPI_TOKEN.
    • Add a release job to your workflow like this:
    jobs:
      test: ...
      release:
        name: Release
        runs-on: ubuntu-latest
        needs: test
        if: github.repository_owner == 'your-github-name' && github.event_name == 'push' && github.ref == 'refs/heads/main'
        steps:
          - uses: actions/checkout@v3
          - uses: actions/setup-python@v4
            with:
              python-version: "3.10"
          - name: Install poetry
            run: pip install poetry==1.2.1
          - uses: bjoluc/semantic-release-config-poetry@v2
            with:
              pypi_token: ${{ secrets.PYPI_TOKEN }}
  • If you are not using GitHub Actions, configure a release job in your CI like this:

    • Install Python, Poetry, and a Node.js LTS version
    • Run npm install --no-save @bjoluc/semantic-release-config-poetry
    • Run npx semantic-release --extends @bjoluc/semantic-release-config-poetry

Configuration

The shareable semantic-release configuration exposed by this package requires the following environment variables. When using the GitHub action, each environment variable can be set via its corresponding lower-case input variable (e.g., pypi_token for PYPI_TOKEN).

Environment variableDescription
PYPI_TOKENAn API token for the PyPI repository specified by PYPI_REPOSITORY
GITHUB_TOKENA GitHub API token to publish GitHub releases and comment on resolved issues. The github_token Action input is optional and defaults to the value of the GITHUB_TOKEN secret.

Furthermore, the following optional environment variables can be set:

Environment variableDescriptionDefault value
PYPI_REPOSITORYThe repository to upload your Python package to (e.g., https://upload.pypi.org/legacy/ for PyPI, or https://test.pypi.org/legacy/ for Test PyPI)https://upload.pypi.org/legacy/
RELEASE_BRANCHThe name of the Git branch to be releasedmain
CHANGELOG_FILEThe path of the changelog fileCHANGELOG.md