@bjoluc/semantic-release-config-poetry

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).
PYPI_TOKEN | An API token for the PyPI repository specified by PYPI_REPOSITORY |
GITHUB_TOKEN | A 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:
PYPI_REPOSITORY | The 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_BRANCH | The name of the Git branch to be released | main |
CHANGELOG_FILE | The path of the changelog file | CHANGELOG.md |