name: Publish Python 🐍 distributions 📦 to PyPI on: push: tags: - '*' jobs: build-n-publish: name: Build and publish Python 🐍 distributions 📦 to PyPI runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: 3.8 - name: Install dependencies run: | python -m pip install build towncrier - name: Create Release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} body: $(towncrier --draft) - name: Generate version notes with towncrier run: | towncrier --yes - name: Build a binary wheel and a source tarball run: | cd package python setup.py build - name: Publish distribution 📦 to PyPI run: | cd package pip install twine twine upload dist/* env: TWINE_USERNAME: __token__ TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}