Throw an exception when the data buffer size for allocation is too large #7551
This file contains hidden or 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: TileDB Python CI | |
| on: [push, pull_request, workflow_dispatch] | |
| concurrency: | |
| group: ${{ github.head_ref || github.run_id }} | |
| cancel-in-progress: true | |
| env: | |
| S3_BUCKET: ${{ vars.S3_BUCKET }} | |
| TILEDB_NAMESPACE: ${{ vars.TILEDB_NAMESPACE }} | |
| TILEDB_TOKEN: ${{ secrets.TILEDB_TOKEN }} | |
| jobs: | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| defaults: | |
| run: | |
| shell: bash | |
| strategy: | |
| matrix: | |
| os: | |
| - ubuntu-latest | |
| - macos-13 | |
| - macos-14 | |
| - windows-latest | |
| python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] | |
| fail-fast: false | |
| env: | |
| MACOSX_DEPLOYMENT_TARGET: "11" | |
| steps: | |
| - name: Checkout TileDB-Py `main` | |
| uses: actions/checkout@v4 | |
| - name: Setup MSVC toolset (VS 2022) | |
| uses: TheMrMilchmann/setup-msvc-dev@v3 | |
| if: startsWith(matrix.os, 'windows') | |
| with: | |
| arch: x64 | |
| - name: Install Ninja (VS 2022) | |
| uses: seanmiddleditch/gha-setup-ninja@v4 | |
| if: startsWith(matrix.os, 'windows') | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Print Python version | |
| run: | | |
| which python | |
| which pip | |
| python --version | |
| - name: Print env | |
| run: printenv | |
| - name: Print pip debug info | |
| run: pip debug --verbose | |
| # Remove after upstream PR fully-deployed: | |
| # - https://github.com/actions/runner-images/pull/7125 | |
| - name: "Install homebrew dependencies" | |
| run: brew install pkg-config | |
| if: startsWith(matrix.os, 'macos') | |
| - name: "Install libfaketime (Linux only)" | |
| if: ${{ startsWith(matrix.os, 'ubuntu') }} | |
| run: | | |
| git clone https://github.com/wolfcw/libfaketime/ | |
| cd libfaketime | |
| sudo make install | |
| cd .. | |
| - name: "Build and Install TileDB-Py" | |
| # We use pipx here to produce wheel/sdist to upload as artifact in case of error | |
| run: | | |
| pipx run --python ${{ matrix.python-version }} build | |
| WHEEL_NAME=$(ls dist/*.whl) | |
| pip install --verbose ${WHEEL_NAME}[test] | |
| - name: "Run tests" | |
| run: | | |
| PROJECT_CWD=$PWD | |
| rm tiledb/__init__.py | |
| cd /tmp | |
| pytest -vv --showlocals $PROJECT_CWD | |
| - name: "Re-run tests without pandas" | |
| run: | | |
| pip uninstall -y pandas | |
| pytest -vv --showlocals $PROJECT_CWD | |
| - name: "Print log files (failed build only)" | |
| run: | | |
| set -xeo pipefail | |
| # Display log files if the build failed | |
| echo 'Dumping log files for failed build' | |
| echo '----------------------------------' | |
| for f in $(find build -name *.log); | |
| do echo '------' | |
| echo $f | |
| echo '======' | |
| cat $f | |
| done; | |
| if: failure() | |
| - name: "Upload files for debug" | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: cibw-wheels-${{ matrix.os }}-${{ matrix.python-version }} | |
| path: "." |