1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
name: Publish the release to PyPI
on:
release:
types: [created]
permissions:
id-token: write
env:
PYTHON_VERSION: "3.10"
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Set release name as environment variable
run: echo "RELEASE_NAME=${{ github.event.release.tag_name }}" >> $GITHUB_ENV
- name: Checkout code
uses: actions/checkout@v6
- name: Install Poetry
run: pipx install poetry
- name: Verify version matches tag
run: |
POETRY_VERSION=$(poetry version -s)
RELEASE_TAG=${{ github.event.release.tag_name }}
# Strip 'v' prefix if exists
CLEAN_TAG=${RELEASE_TAG#v}
if [ "$POETRY_VERSION" != "$CLEAN_TAG" ]; then
echo "Version mismatch!"
echo "Poetry version: $POETRY_VERSION"
echo "Release tag: $RELEASE_TAG"
exit 1
fi
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: ${{ env.PYTHON_VERSION }}
cache: "poetry"
- name: Build the release package
run: poetry build
- name: Publish the release to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
|