diff --git a/.github/workflows/pypi-release.yml b/.github/workflows/pypi-release.yml index d31e71cf..02faa7f6 100644 --- a/.github/workflows/pypi-release.yml +++ b/.github/workflows/pypi-release.yml @@ -7,7 +7,7 @@ defaults: shell: bash jobs: - build-package: + build-sdist: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 @@ -23,10 +23,63 @@ jobs: with: python-version: 3.8 - run: | - python -m pip install -U pip setuptools twine toml - python -c 'import toml; c = toml.load("pyproject.toml"); print("\n".join(c["build-system"]["requires"]))' | pip install -r /dev/stdin + python -m pip install -U pip setuptools wheel build - run: | - python setup.py sdist + python -m build + - run: | + pip install dist/*.tar.gz + - uses: actions/upload-artifact@v2 + with: + name: sdist + path: dist/*.tar.gz + build-wheels: + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: ["3.6", "3.7", "3.8", "3.9"] + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - run: | + python -m pip install -U pip setuptools wheel build + - run: | + python -m build + - run: | + python -m pip install dist/*.whl + - uses: actions/upload-artifact@v2 + with: + name: wheel-${{ matrix.python-version }} + path: dist/*.whl + publish-artifacts: + runs-on: ubuntu-20.04 + needs: [build-sdist, build-wheels] + steps: + - run: | + mkdir dist + - uses: actions/download-artifact@v2 + with: + name: "sdist" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.6" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.7" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.8" + path: "dist/" + - uses: actions/download-artifact@v2 + with: + name: "wheel-3.9" + path: "dist/" + - run: | + ls -lh dist/ - name: Setup PyPI config run: | cat << EOF > ~/.pypirc @@ -34,5 +87,10 @@ jobs: username=__token__ password=${{ secrets.PYPI_TOKEN }} EOF + - uses: actions/setup-python@v2 + with: + python-version: 3.8 - run: | - twine upload --repository pypi dist/*.tar.gz + python -m pip install twine + - run: | + twine upload --repository pypi dist/*