jobs:
build:
- name: Create and Publish Release
+ name: Build distribution
runs-on: ubuntu-latest
-
steps:
- uses: actions/checkout@v2
with:
- name: Install release dependencies
run: |
python -m pip install --upgrade pip
- pip install --upgrade setuptools wheel twine
+ pip install --upgrade setuptools wheel build
+
- name: Get release notes
id: release_notes
run: |
git fetch --tags --force
TAG_NAME=${GITHUB_REF/refs\/tags\//}
echo "$(git tag -l --format='%(contents)' $TAG_NAME)" > "${{ runner.temp }}/CHANGELOG.md"
+
- name: Create GitHub release
id: create_release
uses: actions/create-release@v1
draft: false
prerelease: false
- - name: Build and publish to PyPI
- env:
- TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
- TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
- run: |
- python setup.py sdist bdist_wheel
- twine upload dist/gflanguages*
\ No newline at end of file
+ - name: Build a binary wheel and a source tarball
+ run: python3 -m build
+ - name: Store the distribution packages
+ uses: actions/upload-artifact@v3
+ with:
+ name: python-package-distributions
+ path: dist/
+
+ publish-to-pypi:
+ name: >-
+ Publish Python 🐍 distribution 📦 to PyPI
+ if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
+ needs:
+ - build
+ runs-on: ubuntu-latest
+ environment:
+ name: pypi
+ url: https://pypi.org/p/gflanguages
+ permissions:
+ id-token: write # IMPORTANT: mandatory for trusted publishing
+ steps:
+ - name: Download all the dists
+ uses: actions/download-artifact@v3
+ with:
+ name: python-package-distributions
+ path: dist/
+ - name: Publish distribution 📦 to PyPI
+ uses: pypa/gh-action-pypi-publish@v1.8.11
+ with:
+ # repository-url: https://test.pypi.org/legacy/ # for testing purposes
+ verify-metadata: false # twine previously didn't verify metadata when uploading
\ No newline at end of file