1717 description : ' TileDB Core ref (branch/tag/commit) to build against'
1818 required : false
1919 type : string
20+ cmake_build_type :
21+ description : ' CMAKE_BUILD_TYPE for TileDB Core (Release or Debug)'
22+ required : false
23+ type : string
24+ default : ' Release'
25+ python_version :
26+ description : ' Specific Python version to test (empty=test all versions)'
27+ required : false
28+ type : string
29+ default : ' '
30+ numpy_version :
31+ description : ' Specific numpy version to test (empty=default from dependencies)'
32+ required : false
33+ type : string
34+ default : ' '
35+ workflow_call :
36+ inputs :
37+ libtiledb_ref :
38+ description : ' TileDB Core ref (branch/tag/commit) to build against'
39+ required : false
40+ type : string
41+ cmake_build_type :
42+ description : ' CMAKE_BUILD_TYPE for TileDB Core (Release or Debug)'
43+ required : false
44+ type : string
45+ default : ' Release'
46+ tiledb_version :
47+ description : ' TileDB Core version for pre-built binaries (alternative to libtiledb_ref)'
48+ required : false
49+ type : string
50+ default : ' '
51+ python_version :
52+ description : ' Specific Python version to test (empty=test all versions)'
53+ required : false
54+ type : string
55+ default : ' '
56+ numpy_version :
57+ description : ' Specific numpy version to test (empty=default from dependencies)'
58+ required : false
59+ type : string
60+ default : ' '
2061
2162concurrency :
2263 group : ${{ github.head_ref || github.run_id }}
3071jobs :
3172 build :
3273 runs-on : ${{ matrix.os }}
74+ if : inputs.python_version == '' || inputs.python_version == matrix.python-version
3375 defaults :
3476 run :
3577 shell : bash
4486 fail-fast : false
4587 env :
4688 MACOSX_DEPLOYMENT_TARGET : " 11"
89+ TILEDB_VERSION : ${{ inputs.tiledb_version }}
4790 steps :
4891 - name : Checkout TileDB-Py `main`
4992 uses : actions/checkout@v6
@@ -107,10 +150,11 @@ jobs:
107150 if : inputs.libtiledb_ref
108151 run : |
109152 # Configure with vcpkg on all platforms
153+ BUILD_TYPE="${{ inputs.cmake_build_type || 'Release' }}"
110154 CMAKE_ARGS=(
111155 -S _tiledb_core
112156 -B _tiledb_core/build
113- -DCMAKE_BUILD_TYPE=Release
157+ -DCMAKE_BUILD_TYPE="$BUILD_TYPE"
114158 -DBUILD_SHARED_LIBS=ON
115159 -DCMAKE_INSTALL_PREFIX="${GITHUB_WORKSPACE//\\//}/_tiledb_core/dist"
116160 -DTILEDB_INSTALL_LIBDIR=lib
@@ -120,7 +164,7 @@ jobs:
120164 )
121165
122166 cmake "${CMAKE_ARGS[@]}"
123- cmake --build _tiledb_core/build --config Release -j4 --target install
167+ cmake --build _tiledb_core/build --config "$BUILD_TYPE" -j4 --target install
124168
125169 - name : " Build and Install TileDB-Py"
126170 run : |
@@ -149,6 +193,15 @@ jobs:
149193 Write-Host "DLL copy completed successfully"
150194 shell : powershell
151195
196+ - name : " Install specific NumPy version"
197+ if : inputs.numpy_version != ''
198+ run : |
199+ echo "Installing NumPy version ${{ inputs.numpy_version }}"
200+ pip install numpy==${{ inputs.numpy_version }}
201+
202+ - name : " Print installed Python dependencies"
203+ run : pip list
204+
152205 - name : " Run tests"
153206 run : |
154207 PROJECT_CWD=$PWD
0 commit comments