| name: Release |
| |
| on: |
| push: |
| tags: |
| - "*.*.*" |
| |
| jobs: |
| Release: |
| runs-on: ubuntu-latest |
| |
| steps: |
| - name: Checkout code |
| uses: actions/checkout@v3 |
| with: |
| submodules: "recursive" |
| |
| - name: Get tag |
| id: tag |
| run: echo ::set-output name=tag::${GITHUB_REF#refs/tags/} |
| |
| - name: Set up Python 3.11 |
| uses: actions/setup-python@v4 |
| with: |
| python-version: "3.11" |
| |
| - name: Install and set up Poetry |
| run: | |
| curl -fsSL -o install-poetry.py https://install.python-poetry.org |
| python install-poetry.py -y |
| |
| - name: Update PATH |
| run: echo "$HOME/.local/bin" >> $GITHUB_PATH |
| |
| - name: Build project for distribution |
| run: poetry build |
| |
| - name: Check Version |
| id: check-version |
| run: | |
| [[ "$(poetry version --short)" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] \ |
| || echo ::set-output name=prerelease::true |
| - name: Create Release |
| uses: ncipollo/release-action@v1 |
| with: |
| artifacts: "dist/*" |
| draft: false |
| allowUpdates: true |
| generateReleaseNotes: true |
| prerelease: steps.check-version.outputs.prerelease == 'true' |
| |
| - name: Publish to PyPI |
| env: |
| POETRY_PYPI_TOKEN_PYPI: ${{ secrets.PYPI_TOKEN }} |
| run: poetry publish |