2.2.0 • Published 2 years ago
@bjoluc/semantic-release-config-poetry v2.2.0
@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 }}
- Add your PyPI API token as a secret named
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 variable | Description |
---|---|
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:
Environment variable | Description | Default value |
---|---|---|
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 |