| name: "Build Python DB API Driver Wheels" |
| |
| on: |
| push: |
| paths: |
| - 'modules/platforms/python/**' |
| - '.github/workflows/python_dbapi_wheels.yml' |
| |
| workflow_dispatch: |
| |
| jobs: |
| build_source_dist: |
| name: Build source distribution |
| runs-on: ubuntu-latest |
| |
| steps: |
| - uses: actions/checkout@v6 |
| with: |
| sparse-checkout: | |
| modules/platforms/ |
| |
| - uses: actions/setup-python@v6 |
| with: |
| python-version: 3.11 |
| |
| - name: Install setuptools |
| run: python -m pip install --upgrade setuptools packaging>=24.2 |
| |
| - name: Copy C++ sources |
| run: cp -r modules/platforms/cpp modules/platforms/python/ |
| |
| - name: Build source distribution |
| working-directory: modules/platforms/python |
| run: python setup.py sdist --formats=gztar --dist-dir ./dist |
| |
| - uses: actions/upload-artifact@v4 |
| with: |
| name: source-distributions |
| path: modules/platforms/python/dist/* |
| |
| build_wheels: |
| name: Build wheels on ${{ matrix.os }} |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| include: |
| - os: macos-latest |
| arch: arm64 |
| macos_deployment_target: "14.0" |
| |
| - os: macos-15-intel |
| arch: x86_64 |
| macos_deployment_target: "15.0" |
| |
| - os: ubuntu-latest |
| arch: auto64 |
| cibw_build: "cp31{0,1,2,3,4}-manylinux*" |
| |
| - os: windows-latest |
| arch: AMD64 |
| |
| steps: |
| - uses: actions/checkout@v6 |
| with: |
| sparse-checkout: | |
| modules/platforms/ |
| |
| - uses: actions/setup-python@v6 |
| with: |
| python-version: 3.11 |
| |
| - name: Install cibuildwheel |
| run: python -m pip install cibuildwheel==3.3.0 |
| |
| - name: Install OpenSSL (Windows) |
| if: runner.os == 'Windows' |
| shell: powershell |
| run: | |
| echo "VCPKG_ROOT=$env:VCPKG_INSTALLATION_ROOT" | Out-File -FilePath $env:GITHUB_ENV -Append |
| vcpkg install openssl:x64-windows-static-md |
| |
| - name: Build wheels ${{ matrix.os }} |
| run: python -m cibuildwheel --output-dir modules/platforms/python/wheels modules/platforms/python |
| env: |
| CIBW_BUILD: ${{ matrix.cibw_build || 'cp31{0,1,2,3,4}-*' }} |
| CIBW_ARCHS: ${{ matrix.arch }} |
| MACOSX_DEPLOYMENT_TARGET: ${{ matrix.macos_deployment_target || '' }} |
| CIBW_BUILD_VERBOSITY: 1 |
| CIBW_BEFORE_ALL_LINUX: "yum install -y openssl-devel" |
| |
| - uses: actions/upload-artifact@v4 |
| with: |
| name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} |
| path: modules/platforms/python/wheels/*.whl |
| |
| merge: |
| runs-on: ubuntu-latest |
| needs: [build_source_dist, build_wheels] |
| steps: |
| - name: Merge Artifacts |
| uses: actions/upload-artifact/merge@v4 |
| with: |
| name: python-dbapi-all-artifacts |