diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml new file mode 100644 index 0000000..ce11225 --- /dev/null +++ b/.github/workflows/pypi.yml @@ -0,0 +1,59 @@ +# SPDX-FileCopyrightText: none +# SPDX-License-Identifier: CC0-1.0 + +name: Publish Python distributions to PyPI and TestPyPI + +on: + pull_request: + push: + branches: + - main + - master + tags: + - 0.* + - 1.* + +jobs: + build-n-publish: + name: Build and publish Python distributions to PyPI and TestPyPI + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Get history and tags for SCM versioning to work + run: | + git fetch --prune --unshallow + git fetch --depth=1 origin +refs/tags/*:refs/tags/* + + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + + - name: Install pypa/build + run: python -m pip install build twine --user + + - name: Build binary wheel and a source tarball + run: python -m build --sdist --wheel --outdir dist/ . + + - name: Check wheels and source tarballs + run: python -m twine check dist/* + +# The project name os blocked by an other test project +# - name: Publish distribution to Test PyPI +# if: >- +# github.event_name == 'push' && +# github.ref == 'refs/heads/main' +# uses: pypa/gh-action-pypi-publish@release/v1 +# with: +# password: ${{ secrets.TEST_PYPI_API_TOKEN }} +# repository_url: https://test.pypi.org/legacy/ +# skip-existing: true +# + - name: Publish distribution to PyPI + if: >- + github.event_name == 'push' && + startsWith(github.ref, 'refs/tags') + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }}