diff --git a/.github/workflows/bld_wheels_and_upload.yml b/.github/workflows/bld_wheels_and_upload.yml index 0caef417..a381cf31 100644 --- a/.github/workflows/bld_wheels_and_upload.yml +++ b/.github/workflows/bld_wheels_and_upload.yml @@ -5,6 +5,7 @@ on: pull_request: push: branches: + #- update_workflow - master # Sequence of patterns matched against refs/tags tags: @@ -84,7 +85,7 @@ jobs: steps: - uses: actions/checkout@v4.2.2 - name: Build wheels - uses: pypa/cibuildwheel@v2.22.0 + uses: pypa/cibuildwheel@v2.16.5 env: CIBW_SKIP: "cp36-*" - name: Upload wheels @@ -120,7 +121,7 @@ jobs: uses: actions/upload-artifact@v4.4.3 with: name: ibmdb-wheelsx86-${{ matrix.os }} - path: wheelhouse/*.whl + path: wheelhouse/*.whl build_sdist: name: Build source distribution @@ -154,7 +155,6 @@ jobs: 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 }} @@ -166,7 +166,7 @@ jobs: id-token: write #upload to PyPI on every tag starting with 'v' - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + #if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') steps: - uses: actions/download-artifact@v4.1.7 with: @@ -174,6 +174,13 @@ jobs: pattern: ibmdb-* merge-multiple: true + - name: Publish to TestPyPI + uses: pypa/gh-action-pypi-publish@release/v1.12 + with: + token: ${{secrets.TEST_PYPI_TOKEN}} + repository_url: https://test.pypi.org/legacy/ + password: ${{ secrets.testpypi_token }} + - name: Publish distribution to PyPI if: startsWith(github.ref, 'refs/tags') uses: pypa/gh-action-pypi-publish@release/v1.12 diff --git a/.github/workflows/test_macos_library.yml b/.github/workflows/test_macos_library.yml new file mode 100644 index 00000000..9afb950c --- /dev/null +++ b/.github/workflows/test_macos_library.yml @@ -0,0 +1,35 @@ +name: Build and Repair Wheel + +on: + push: + branches: + - update_workflow + +jobs: + build: + runs-on: macos-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.12' + + - name: Install build dependencies + run: | + pip install --upgrade pip + pip install cibuildwheel delocate + + - name: Build the wheel for macOS + env: + CIBW_REPAIR_WHEEL_COMMAND_MACOS: "delocate-wheel --ignore-missing-dependencies --require-archs {delocate_archs} -w {dest_dir} -v {wheel} --verbose" + run: | + cibuildwheel --platform macos --output-dir wheelhouse + + - name: Verify the wheel + run: | + pip install --no-index --find-links=wheelhouse ibm_db + python -c "import ibm_db" diff --git a/ibm_db.c b/ibm_db.c index d90150ca..7fedf848 100644 --- a/ibm_db.c +++ b/ibm_db.c @@ -22,7 +22,7 @@ +--------------------------------------------------------------------------+ */ -#define MODULE_RELEASE "3.2.4" +#define MODULE_RELEASE "3.2.4.9" #include #include diff --git a/setup.py b/setup.py index 603f220c..7f8402d3 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,7 @@ from setuptools.command.install import install PACKAGE = 'ibm_db' -VERSION = '3.2.4' +VERSION = '3.2.4.9' LICENSE = 'Apache License 2.0' readme = os.path.join(os.path.dirname(__file__),'README.md') @@ -161,16 +161,16 @@ def run(self): # no IBM_DB_HOME during install, keep current value return - for so in glob.glob(get_python_lib()+r'/ibm_db*.so'): - os.system("install_name_tool -change @loader_path/clidriver/lib/libdb2.dylib {}/lib/libdb2.dylib {}".format(clipath, so)) + #for so in glob.glob(get_python_lib()+r'/ibm_db*.so'): + # os.system("install_name_tool -change @loader_path/clidriver/lib/libdb2.dylib {}/lib/libdb2.dylib {}".format(clipath, so)) class PostBuildExt(build_ext): """ Post build_ext - update db2 dynamic lib to use loader_path on Darwin """ def run(self): build_ext.run(self) clipath = os.getenv('IBM_DB_HOME', '@loader_path/clidriver') - for so in glob.glob(self.build_lib+r'/ibm_db*.so'): - os.system("install_name_tool -change libdb2.dylib {}/lib/libdb2.dylib {}".format(clipath, so)) + #for so in glob.glob(self.build_lib+r'/ibm_db*.so'): + # os.system("install_name_tool -change libdb2.dylib {}/lib/libdb2.dylib {}".format(clipath, so)) cmd_class = dict(install = PostInstall, build_ext = PostBuildExt)