name: Build and publish # Run on PR requests. And on master itself. on: push: branches: - main # just build the sdist skip release tags: - "*" pull_request: # also build on PRs touching some files paths: - ".github/workflows/release.yml" - "MANIFEST.in" - "pyproject.toml" jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Checkout source uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.10" - name: Build a source tarball run: | python -m pip install build python -m build - uses: actions/upload-artifact@v3 with: path: ./dist/* retention-days: 5 publish: name: Publish on GitHub and PyPI needs: [build] runs-on: ubuntu-latest # release on every tag if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/') steps: - uses: actions/download-artifact@v3 with: name: artifact path: dist - name: Upload Github release id: upload-release-asset uses: softprops/action-gh-release@v1 - name: Upload Release Assets to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: password: ${{ secrets.PYPI_UPLOAD_TOKEN }}