v3.2.4 #146
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and upload to PyPI | |
# Build on every workflow_dispatch, branch push, tag push, and pull request change | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- master | |
# Sequence of patterns matched against refs/tags | |
tags: | |
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10 | |
jobs: | |
build_wheels_windows_64: | |
name: Build wheels on ${{ matrix.os }} 64-bit | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
steps: | |
- uses: actions/[email protected] | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_BUILD: "*-win_amd64" | |
CIBW_SKIP: "cp36-* pp*" | |
- uses: actions/[email protected] | |
with: | |
name: ibmdb-wheels64-${{ matrix.os }} | |
path: wheelhouse/*.whl | |
build_wheels_windows_32: | |
name: Build wheels on ${{ matrix.os }} 32-bit | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [windows-latest] | |
steps: | |
- uses: actions/[email protected] | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_BUILD: "*-win32" | |
CIBW_SKIP: "cp36-* pp*" | |
- uses: actions/[email protected] | |
with: | |
name: ibmdb-wheels32-${{ matrix.os }} | |
path: wheelhouse/*.whl | |
build_wheels_linux: | |
name: Build wheels on ${{ matrix.os }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- uses: actions/[email protected] | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 | |
CIBW_SKIP: "cp36-* *-musllinux_* pp* *-*linux_{aarch64,ppc64le}" | |
CIBW_REPAIR_WHEEL_COMMAND_LINUX: | |
auditwheel repair | |
--exclude libdb2.so.1 | |
--exclude libDB2xml4c.so.58 | |
--exclude libm.so.6 | |
--exclude libcrypt.so.1 | |
--exclude libpam.so.0 | |
--exclude librt.so.1 | |
--exclude libpthread.so.0 | |
--exclude libc.so.6 | |
--exclude libdl.so.2 | |
--wheel-dir {dest_dir} | |
{wheel} | |
- uses: actions/[email protected] | |
with: | |
name: ibmdb-wheels-${{ matrix.os }} | |
path: wheelhouse/*.whl | |
build_macos_arm64_wheels: | |
name: Build wheels on macOS ARM64 | |
runs-on: macos-14 | |
steps: | |
- uses: actions/[email protected] | |
- name: Build wheels | |
uses: pypa/[email protected] | |
env: | |
CIBW_SKIP: "cp36-*" | |
- name: Upload wheels | |
uses: actions/[email protected] | |
with: | |
name: ibmdb-wheelsarm64-${{ matrix.os }} | |
path: wheelhouse/*.whl | |
build_wheels_macos_x86: | |
name: Build wheels for macOS x86_64 | |
runs-on: macos-13 | |
strategy: | |
matrix: | |
architecture: [x86_64] | |
steps: | |
- uses: actions/[email protected] | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install cibuildwheel # Install cibuildwheel to build the wheels | |
- name: Set macOS deployment target | |
run: echo "MACOSX_DEPLOYMENT_TARGET=10.15" >> $GITHUB_ENV | |
- name: Build wheels with cibuildwheel | |
run: | | |
CIBW_ARCHS_MACOS="${{ matrix.architecture }}" | |
python -m cibuildwheel --platform macos --output-dir ./wheelhouse | |
- name: Upload wheels as artifacts | |
uses: actions/[email protected] | |
with: | |
name: ibmdb-wheelsx86-${{ matrix.os }} | |
path: wheelhouse/*.whl | |
build_sdist: | |
name: Build source distribution | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/[email protected] | |
- name: Install Python dependencies | |
run: python -m pip install --upgrade pip build | |
- name: Build sdist | |
run: python -m build --sdist --no-isolation | |
- name: Package version | |
id: version | |
run: | | |
cd dist | |
pip install ibm_db* | |
echo "VERSION=$(python -c 'import ibm_db; print(ibm_db.__version__)')" >> $GITHUB_OUTPUT | |
- name: Build source distribution | |
run: | | |
PACKAGE="ibm_db-$VERSION" | |
cd dist | |
tar -xzf $PACKAGE.tar.gz | |
rm -rf $PACKAGE/clidriver* | |
rm -rf $PACKAGE.tar.gz | |
tar -czf $PACKAGE.tar.gz $PACKAGE | |
rm -rf $PACKAGE | |
env: | |
VERSION: ${{ steps.version.outputs.VERSION}} | |
- name: Upload sdist | |
uses: actions/[email protected] | |
with: | |
name: ibmdb-sdist | |
path: dist/*.tar.gz | |
upload_pypi: | |
needs: [build_sdist,build_wheels_linux, build_wheels_windows_64,build_wheels_windows_32, build_macos_arm64_wheels, build_wheels_macos_x86] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
permissions: | |
# IMPORTANT: this permission is mandatory for trusted publishing | |
id-token: write | |
#upload to PyPI on every tag starting with 'v' | |
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') | |
steps: | |
- uses: actions/[email protected] | |
with: | |
path: dist | |
pattern: ibmdb-* | |
merge-multiple: true | |
- name: Publish distribution to PyPI | |
if: startsWith(github.ref, 'refs/tags') | |
uses: pypa/gh-action-pypi-publish@release/v1.12 |