diff --git a/.github/workflows/build-publish-test.yml b/.github/workflows/build-publish-test.yml new file mode 100644 index 0000000..3116b99 --- /dev/null +++ b/.github/workflows/build-publish-test.yml @@ -0,0 +1,64 @@ +# This workflow will build and publish Python distributions to TestPyPI on pre-release. +# For more information see: +# - https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions +# - https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ +# + +name: build-publish-test + +on: + release: + types: [ published ] + +jobs: + build-wheels: + runs-on: ${{ matrix.os }} + permissions: + contents: read + strategy: + matrix: + include: + - os: ubuntu-latest + python: 38 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 39 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 310 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 311 + platform: manylinux_x86_64 + + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: python -m pip install --upgrade pip setuptools build + - name: Build sdist and wheels + run: python -m build + - name: Store wheels + uses: actions/upload-artifact@v3 + with: + path: dist + + publish-testpypi: + runs-on: ubuntu-latest + needs: + - build-wheels + if: github.event.release.prerelease == true # Only run if it's a pre-release + steps: + - name: Download dists + uses: actions/download-artifact@v3 + with: + name: artifact + path: dist + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + repository-url: https://test.pypi.org/legacy/ + password: ${{ secrets.TEST_PYPI_API_TOKEN }} diff --git a/.github/workflows/build-publish.yml b/.github/workflows/build-publish.yml new file mode 100644 index 0000000..cd1bb4c --- /dev/null +++ b/.github/workflows/build-publish.yml @@ -0,0 +1,63 @@ +# This workflow will build and (if release) publish Python distributions to PyPI +# For more information see: +# - https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions +# - https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ +# + +name: build-publish + +on: + release: + types: [published] + +jobs: + build-wheels: + runs-on: ${{ matrix.os }} + permissions: + contents: read + strategy: + matrix: + include: + - os: ubuntu-latest + python: 38 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 39 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 310 + platform: manylinux_x86_64 + - os: ubuntu-latest + python: 311 + platform: manylinux_x86_64 + + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Install dependencies + run: python -m pip install --upgrade pip setuptools build + - name: Build sdist and wheels + run: python -m build + - name: Store wheels + uses: actions/upload-artifact@v3 + with: + path: dist + + publish: + runs-on: ubuntu-latest + needs: + - build-wheels + if: github.event_name == 'release' && github.event.action == 'published' + steps: + - name: Download dists + uses: actions/download-artifact@v3 + with: + name: artifact + path: dist + - name: Publish + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }}