diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml new file mode 100644 index 000000000..bf41de53b --- /dev/null +++ b/.github/workflows/python-publish.yml @@ -0,0 +1,61 @@ +# This workflows will upload a Python Package using Twine when a release is created +# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries + +name: Upload Python Package + +on: + release: + types: [created] + +jobs: + deploy_windows: + + runs-on: windows-latest + strategy: + matrix: + python-version: [3.6, 3.7, 3.8] + + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Build wheel on Windows + run: | + pip install numpy + pip install cython + python setup.py bdist_wheel + - name: Build and publish + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + twine upload dist/* + + deploy_linux: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Build wheel on Linux + uses: RalfG/python-wheels-manylinux-build@v0.3.1-manylinux2010_x86_64 + with: + python-versions: 'cp36-cp36m cp37-cp37m cp38-cp38' + build-requirements: 'numpy cython' + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + - name: Install dependencies + run: | + pip install twine + - name: Build and publish + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + twine upload dist/pyqlib-*-manylinux*.whl