name: CI Build Wheel on: push: branches: [master] tags: ["v[0-9]+.[0-9]+.[0-9]+"] jobs: build_setup: name: Prepare environment for wheel builds runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v4 - name: Prepare wheel build run: make -C python/ setup - name: Store wheel configuration files uses: actions/upload-artifact@v4 with: name: wheel-config path: python/ build_wheels: name: Build binary wheels on ${{ matrix.os }} runs-on: ${{ matrix.os }} needs: [build_setup] strategy: matrix: os: [ubuntu-24.04, windows-2022] arch: [auto32, auto64, aarch64] steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 - name: Install cibuildwheel run: python -m pip install cibuildwheel - name: Get wheel configuration files uses: actions/download-artifact@v4.1.7 with: name: wheel-config path: python/ - name: Build wheels run: python -m cibuildwheel --output-dir wheelhouse working-directory: python/ # env: # CIBW_BUILD: cp36-* cp37-* cp38-* cp39-* cp310-* - name: Store binary wheels uses: actions/upload-artifact@v4 with: name: binary-wheels path: python/wheelhouse/*.whl build_sdist: name: Build source distribution runs-on: ubuntu-24.04 needs: [build_setup] steps: - uses: actions/checkout@v4 - name: Install cython run: python -m pip install cython - name: Get wheel configuration files uses: actions/download-artifact@v4.1.7 with: name: wheel-config path: python/ - name: Build sdist run: python setup.py sdist working-directory: python/ - name: Store source wheels uses: actions/upload-artifact@v4 with: name: source-wheels path: python/dist/*.tar.gz upload_pypi: name: Upload binary wheels to PyPI runs-on: ubuntu-24.04 needs: [build_wheels, build_sdist] steps: - name: Get source wheels uses: actions/download-artifact@v4.1.7 with: name: source-wheels path: dist/ - name: Get binary wheels uses: actions/download-artifact@v4.1.7 with: name: binary-wheels path: dist/ - uses: pypa/gh-action-pypi-publish@release/v1 with: user: __token__ password: ${{ secrets.TDMTERMITE_GITHUB_WORKFLOW_PYPI_API_TOKEN }}