diff --git a/.github/workflows/python-publish.yml b/.github/workflows/python-publish.yml index 813a571c9..08cef1a1b 100644 --- a/.github/workflows/python-publish.yml +++ b/.github/workflows/python-publish.yml @@ -47,30 +47,63 @@ jobs: # twine check dist/*.whl # twine upload --repository-url https://test.pypi.org/legacy/ dist/*.whl + # deploy_with_manylinux: + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v3 + # - name: Set up Python ${{ matrix.python-version }} + # uses: actions/setup-python@v4 + # with: + # python-version: ${{ matrix.python-version }} + # - name: Build wheel on Linux + # uses: RalfG/python-wheels-manylinux-build@v0.7.1-manylinux2014_x86_64 + # with: + # # not supporting 3.6 due to annotations is not supported https://stackoverflow.com/a/52890129 + # python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312' + # build-requirements: 'numpy cython' + # pre-build-command: 'apt install gcc-12 g++-12 -y' + # - name: Install dependencies + # run: | + # python -m pip install twine + # python -m pip list + # - name: Build and publish + # env: + # TWINE_USERNAME: __token__ + # TWINE_PASSWORD: ${{ secrets.TESTPYPI_TOKEN }} + # run: | + # ls dist + # twine check dist/*.whl + # twine upload --repository-url https://test.pypi.org/legacy/ dist/pyqlib-*-manylinux*.whl + deploy_with_manylinux: runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python-version }} - - name: Build wheel on Linux - uses: RalfG/python-wheels-manylinux-build@v0.7.1-manylinux2014_x86_64 - with: - # not supporting 3.6 due to annotations is not supported https://stackoverflow.com/a/52890129 - python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312' - build-requirements: 'numpy cython' - pre-build-command: 'apt install gcc-12 g++-12 -y' - - name: Install dependencies - run: | - python -m pip install twine - python -m pip list - - name: Build and publish - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.TESTPYPI_TOKEN }} - run: | - ls dist - twine check dist/*.whl - twine upload --repository-url https://test.pypi.org/legacy/ dist/pyqlib-*-manylinux*.whl + strategy: + matrix: + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] + + steps: + - name: Checkout repo + uses: actions/checkout@v3 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + - name: Install cibuildwheel + run: | + python -m pip install --upgrade pip + python -m pip install cibuildwheel + + - name: Build wheel + run: | + python -m cibuildwheel --output-dir dist + + - name: Upload wheel + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.TESTPYPI_TOKEN }} + run: | + ls dist + twine check dist/*.whl + twine upload --repository-url https://test.pypi.org/legacy/ dist/*.whl