Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build System Rework #781

Open
wants to merge 192 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
ad3f0aa
Add initial build wheels CI/CD pipeline
dudoslav Aug 28, 2024
486a255
Fix working directory for cibuildwheels
dudoslav Aug 28, 2024
d206d82
Fix incorrect package-dir option
dudoslav Aug 28, 2024
d478e19
Disable all platforms except Ubuntu
dudoslav Aug 28, 2024
963f3bd
Install zlib1g-dev
dudoslav Aug 28, 2024
7c3c756
Fix install deps command
dudoslav Aug 28, 2024
85c4afd
Install xz as well
dudoslav Aug 28, 2024
26d7a6a
Use BEFORE_ALL instead of BEFORE_BUILD
dudoslav Aug 28, 2024
33e30fc
Update cibuildwheels version
dudoslav Aug 28, 2024
48ca0ee
Enable macos and windows wheels
dudoslav Aug 28, 2024
9183194
Install autoreconf for macos
dudoslav Aug 28, 2024
469bc6c
Add additional dependencies for macos build
dudoslav Aug 28, 2024
ba97a2b
Disable macos
dudoslav Aug 28, 2024
aeae6ad
Change mingw htslib hash
dudoslav Aug 30, 2024
47928e9
Quick rework CMake files
dudoslav Sep 3, 2024
b0988c7
Fix widnows build
Sep 9, 2024
1ded335
Fix install group
dudoslav Sep 9, 2024
572d827
Make tests optional
dudoslav Sep 9, 2024
59df672
Install tiledb.so
dudoslav Sep 9, 2024
34bb75d
Also install tiledbvcf
dudoslav Sep 9, 2024
ba57075
Test wheels
dudoslav Sep 12, 2024
019d843
Build with executables
dudoslav Sep 13, 2024
2ab078a
Fix macos workflow
dudoslav Sep 13, 2024
e15b381
Modify macos workflow
dudoslav Sep 13, 2024
be84c71
Change linking check paths
dudoslav Sep 13, 2024
9f36f87
Enable Macos wheel builds
dudoslav Sep 13, 2024
3c56c0d
Fix macos dependency install
dudoslav Sep 13, 2024
4634884
Install autoconf instead of autoreconf
dudoslav Sep 13, 2024
2b2f76d
Change macosx deployment version
dudoslav Sep 17, 2024
f72da21
Enable sdist and testing
dudoslav Sep 17, 2024
8929aca
Fix sdist
dudoslav Sep 17, 2024
131899f
Add pytest requires
dudoslav Sep 17, 2024
7d490e4
Add test extra dependency group
dudoslav Sep 17, 2024
e34397e
Install sdist test group
dudoslav Sep 17, 2024
13a982d
Add python code as well
dudoslav Sep 17, 2024
f5f5b6b
Install bcftools for tests
dudoslav Sep 17, 2024
3d077c5
Fix install bcftools
dudoslav Sep 17, 2024
5ed74f2
Install build dependencies for sdist tests
dudoslav Sep 17, 2024
1bdcb43
Return MACOSX_DEPLOYMENT_TARGET to 11
dudoslav Sep 17, 2024
5732183
MACOSX_DEPLOYMENT_TARGET to 13
dudoslav Sep 17, 2024
1318103
Temporarily comment out failing test
dudoslav Sep 18, 2024
f4afc69
Add install build dependencies to ci/cd
dudoslav Sep 18, 2024
fbd38d5
Fix missing dlls
Sep 18, 2024
c23c18e
Merge remote-tracking branch 'origin/main' into db/sc-52969/wheels
dudoslav Oct 15, 2024
1fd5d5f
Initial vcpkg rework
dudoslav Oct 17, 2024
9a98c0b
Add vcpkg deps
dudoslav Oct 17, 2024
0127d96
Temporarily disable windows builds
dudoslav Oct 17, 2024
d2b93d7
Remove bcftools
dudoslav Oct 17, 2024
5c24119
Brew install
dudoslav Oct 17, 2024
2f3465e
Do not run brew at all
dudoslav Oct 17, 2024
ba802cd
Brew install automake
dudoslav Oct 17, 2024
2ec4609
Effort to fix Windows builds
dudoslav Oct 18, 2024
46e8b99
Set PATHS for find_* commands
dudoslav Oct 18, 2024
a81fdcf
Windows fixes
dudoslav Oct 18, 2024
b3376b6
Copy upstream htslib vcpkg port.
teo-tsirpanis Oct 18, 2024
6187f31
Patch htslib port to fix failures when statically linking.
teo-tsirpanis Oct 18, 2024
8f56b9f
Ignore `CMakeUserPresets.json`.
teo-tsirpanis Oct 18, 2024
ee71ca3
Fix packaging for wheels
dudoslav Oct 21, 2024
9af5a7e
Fixing auditwheel issues
dudoslav Oct 22, 2024
4e003f4
Fix issue with auditwheel
dudoslav Oct 22, 2024
494cfe7
Install hts-3.dll on windows
dudoslav Oct 23, 2024
7b2de3a
Macos install bcftools
dudoslav Oct 23, 2024
6f74de0
Fix DLL loading on windows
dudoslav Oct 23, 2024
5f1b49d
Fix UB array access
dudoslav Oct 30, 2024
fd23ed4
Merge remote-tracking branch 'origin/main' into db/vcpkg
dudoslav Oct 30, 2024
e99827f
Do not build for py38
dudoslav Oct 30, 2024
8be01e3
Add autoconf to macos dependencies
dudoslav Oct 30, 2024
aedbd23
Ignore macosx14 (arm) for now
dudoslav Oct 30, 2024
9690291
Return UB into the code
dudoslav Oct 30, 2024
b941ff2
Change element access
dudoslav Oct 30, 2024
f75e07c
Remove redundant paranthesis
dudoslav Nov 4, 2024
a040adf
Remove group.dump() from LOG_DEBUG
dudoslav Nov 5, 2024
79e36bc
Add missing include.
teo-tsirpanis Nov 6, 2024
da852e3
Bump minimum required CMake version to 3.21.
teo-tsirpanis Nov 6, 2024
f2bd07f
Simplify installing imported runtime artifacts.
teo-tsirpanis Nov 6, 2024
1753a4c
Ignore dist directory everywhere.
teo-tsirpanis Nov 6, 2024
4904d5e
Ignore env directory.
teo-tsirpanis Nov 7, 2024
1ebe892
Merge branch 'main' into db/vcpkg
teo-tsirpanis Nov 7, 2024
8937e28
Enable build-wheels workflow.
teo-tsirpanis Nov 7, 2024
f944478
clang-format
teo-tsirpanis Nov 7, 2024
b960599
Clean up code
dudoslav Nov 12, 2024
b3c5b63
Do not build windows wheels
dudoslav Nov 12, 2024
2bc82f7
REMOVE: Print failed vcpkg log
dudoslav Nov 12, 2024
362d660
Install libtool on macosx
dudoslav Nov 12, 2024
6fbbadc
Add PIC to tiledbvcf when building python
dudoslav Nov 12, 2024
1e90923
Fix typo
dudoslav Nov 12, 2024
88e8ffa
Change order of installs
dudoslav Nov 13, 2024
aaa2bdc
Install libtool on macos sdist-test
dudoslav Nov 13, 2024
5eaa991
Use different install target
dudoslav Nov 13, 2024
d1273d6
Change linking checks
dudoslav Nov 13, 2024
fca0578
Force shared libs for tests
dudoslav Nov 13, 2024
ac35453
Fix linking check path
dudoslav Nov 13, 2024
dd96a03
Always build and install executable
dudoslav Nov 13, 2024
46c108f
Add builtin-baseline to vcpkg.json
dudoslav Nov 13, 2024
fab9116
Set proper RPATH to executable
dudoslav Nov 13, 2024
7091588
Remove EXCLUDE_FROM_ALL from test target
dudoslav Nov 14, 2024
a73e14a
Pin catch2 version
dudoslav Nov 14, 2024
af76e24
Use ctest
dudoslav Nov 14, 2024
c9f25e6
Change Windows CI commands
dudoslav Nov 14, 2024
4d6299f
Fix tiledbvcf path in cli tests
dudoslav Nov 14, 2024
87cd7f2
Add option to FORCE_EXTERNAL_DEPENDENCIES
dudoslav Nov 18, 2024
ebacb92
Do not install libtiledbvcf build deps
dudoslav Nov 19, 2024
3f11f9b
Install conda dependencies
dudoslav Nov 26, 2024
a8cb579
Change build for only python bindings
dudoslav Nov 26, 2024
2239d5e
No need to install conda deps
dudoslav Nov 26, 2024
22d5a9d
Empty commit
dudoslav Nov 26, 2024
ed41b60
Find pre-built tiledbvcf
dudoslav Nov 26, 2024
2a73d4a
Add debug log
dudoslav Nov 26, 2024
26b1d35
Fix shared build for Conda
dudoslav Nov 26, 2024
604335d
Fix install paths
dudoslav Nov 26, 2024
1aa6707
Find file instead of find library
dudoslav Nov 26, 2024
24382cd
DEBUG logs
dudoslav Nov 26, 2024
307b6b6
Download artifact
dudoslav Nov 26, 2024
ca5d67c
Uncomment tests
dudoslav Nov 26, 2024
304fcda
Update CI to account for the superbuild's removal.
teo-tsirpanis Nov 26, 2024
4f27b83
Enable tests by default.
teo-tsirpanis Nov 26, 2024
24a9567
Build `all` targets in CI.
teo-tsirpanis Nov 27, 2024
32a1f54
Fix nightly CI
Nov 27, 2024
cce4d9b
Build shared libs in nightly
Nov 27, 2024
b9565a9
Pass TileDB_DIR into CMake
Nov 27, 2024
5970016
Also install py dependencies in nightly
Nov 27, 2024
32596a3
Do not set RPath
Dec 2, 2024
5bda057
Do not set RPATH
Dec 2, 2024
7359bc4
RPath test
Dec 2, 2024
515b9ad
Revert RPath changes and implement new CI
Dec 3, 2024
7dad339
Install build dependencies
Dec 3, 2024
d110a66
Comment out CLI tests and install ninja
Dec 3, 2024
9ddf4ff
Fix apt-get command
Dec 3, 2024
6262556
Install ninja-build
Dec 3, 2024
a373c4e
Change python -m to pip install
Dec 3, 2024
88f4036
POSITION_INDEPENDENT_CODE
Dec 3, 2024
8ac1cac
Also install pip in conda env
Dec 3, 2024
661453d
Install bcftools
Dec 3, 2024
a493b76
Add debug logging
Dec 3, 2024
f0da6e0
Add additional debug logs
Dec 3, 2024
9fdf4a2
Use micromamba env
Dec 3, 2024
ad7d5f8
Install dependencies in conda env
Dec 3, 2024
cc8fea4
Use micromamba-shell
Dec 3, 2024
247553c
Set cmake prefix path
Dec 3, 2024
c69b9e3
Install htslib from bioconda
Dec 3, 2024
8d9d3fc
Install catch2 from conda
Dec 3, 2024
263786c
Change catch2 includes
Dec 3, 2024
7654492
Use correct catch2 header
Dec 3, 2024
3113d84
Revert "Use correct catch2 header"
Dec 3, 2024
6125d25
Revert "Change catch2 includes"
Dec 3, 2024
1732b49
Pin catch2 in Conda
Dec 3, 2024
32e30a8
Comment out catch2 tests
Dec 3, 2024
d40cb2a
install pytest
Dec 3, 2024
7f11d12
Use correct shell
Dec 3, 2024
216e433
Install python bindings dependencies
Dec 3, 2024
71b1775
Add debug log
Dec 3, 2024
84c1897
Fix python module path
Dec 3, 2024
dd02bd7
Add configurable RPath
Dec 3, 2024
9225ce0
Do not install libtiledb
Dec 3, 2024
1ed1a77
Pin Tiledb version
Dec 3, 2024
828c0d8
c stdlib version
Dec 3, 2024
01b3ff9
allow-shlib-undefined
Dec 3, 2024
913f987
Fix linker option
Dec 3, 2024
59a1ec5
Print ldd of conda libtiledb.so
Dec 3, 2024
64f1282
Add linking logs
Dec 3, 2024
5444dca
Use LD_LIBRARY_PATH in tests
Dec 3, 2024
9a87261
Print python module linking
Dec 3, 2024
5ae8688
Copy libtiledbvcf into library path
Dec 3, 2024
b96fa95
Install tiledb-py for tests
Dec 3, 2024
5557408
Install bcftools for tests
Dec 3, 2024
2b7c323
Run tests for libtiledbvcf
Dec 4, 2024
5698c2e
Install cli test dependencies
Dec 4, 2024
8d77697
Install htslib from channel tiledb
Dec 4, 2024
dac219a
Move binary to top level
Dec 4, 2024
e18c947
Proper RPATH linking
Dec 4, 2024
2852fa5
Properly handle install prefix subpaths
Dec 9, 2024
7e34375
Install module logic
Dec 9, 2024
91c4989
For conda test, do not install do subfolder
Dec 9, 2024
bdf510e
Find in correct folder
Dec 9, 2024
4dd88fa
Test correct paths
Dec 9, 2024
7d4e3ed
Always install python bindings under tiledbvcf
Dec 9, 2024
402655c
Set CMAKE_INSTALL_PREFIX before project
Dec 10, 2024
5d34014
Always install python bindings into tiledbvcf
Dec 10, 2024
4ab918f
Fix install paths
Dec 10, 2024
fe56081
Merge remote-tracking branch 'origin/main' into db/vcpkg
Dec 13, 2024
0637a26
Macos CI/CD build options
Dec 13, 2024
804acdc
Uncomment failing test
Dec 13, 2024
9cc1025
Uncomment java tests
Dec 13, 2024
8fb35b3
Fix nightly build
Dec 13, 2024
ef7b816
Gradle use cmake
Dec 16, 2024
9a68f0a
Install dependencies before building java bindings
Dec 16, 2024
cedddcb
Add debug logs
Dec 16, 2024
51e3337
Change find path for native lib for java
Dec 17, 2024
41d7f4a
Merge remote-tracking branch 'origin/main' into db/vcpkg
Dec 17, 2024
415fff8
Fix java bindings find_library
Dec 17, 2024
c69c63b
Fix include paths for java
Dec 17, 2024
da25ebb
Fix find native lib
Dec 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
115 changes: 115 additions & 0 deletions .github/workflows/build-variants.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
name: Build Variants

on:
push:

jobs:
# This job should mimic conda-feedstock build
libtiledbvcf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Mamba environment
uses: mamba-org/setup-micromamba@v2
with:
environment-name: ci
create-args: -c tiledb tiledb=2.26 spdlog fmt cli11 htslib catch2=2.13.8
init-shell: >-
bash
- name: Configure CMake
shell: micromamba-shell {0}
run: |
cmake -S libtiledbvcf -B build \
-D CMAKE_BUILD_TYPE=Release \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_INSTALL_PREFIX=install \
-D TILEDBVCF_ENABLE_TESTS=OFF \
-D TILEDBVCF_FORCE_EXTERNAL_DEPENDENCIES=ON \
-D TILEDBVCF_INSTALL_TILEDB=OFF \
-D TILEDBVCF_SET_INSTALL_SUBPATH=OFF \
-D CMAKE_PREFIX_PATH=$CONDA_PREFIX
- name: Build using CMake
shell: micromamba-shell {0}
run: |
cmake --build build --config Release
- name: Install using CMake
shell: micromamba-shell {0}
run: |
cmake --install build --config Release

- name: Upload install folder
uses: actions/upload-artifact@v4
with:
name: libtiledbvcf
path: install/*

# Tests
- name: Run unit tests
shell: micromamba-shell {0}
run: |
ctest --test-dir build
- name: Install cli test dependencies
run: |
sudo apt-get install -y bcftools
- name: Run CLI tests
shell: micromamba-shell {0}
run: |
libtiledbvcf/test/run-cli-tests.sh build libtiledbvcf/test/inputs


# This job should mimic conda-feedstock build
python-bindings-external-libtiledbvcf:
needs: libtiledbvcf
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Mamba environment
uses: mamba-org/setup-micromamba@v2
with:
environment-name: ci
create-args: -c tiledb htslib tiledb=2.26 tiledb-py python=3.11 pip pytest numpy pandas pyarrow
init-shell: >-
bash
- name: Download libtiledbvcf artifact
uses: actions/download-artifact@v4
with:
name: libtiledbvcf
path: install
- name: Build Python bindings
shell: micromamba-shell {0}
env:
tiledbvcf_DIR: "${{ github.workspace }}/install"
run: |
pip install -v --no-deps . \
--config-settings=cmake.define.TILEDBVCF_ONLY_PYTHON_BINDINGS=ON \
--config-settings=cmake.define.TILEDBVCF_SET_RPATH=OFF

- name: Install test dependencies
run: |
sudo apt-get install -y bcftools

- name: Run tests
shell: micromamba-shell {0}
run: |
export LD_LIBRARY_PATH="$CONDA_PREFIX/lib"
cp ${{ github.workspace }}/install/lib/libtiledbvcf* $LD_LIBRARY_PATH
ldd $CONDA_PREFIX/lib/python3.11/site-packages/tiledbvcf/libtiledbvcf.cpython-311-x86_64-linux-gnu.so
pytest apis/python


# This job should mimic wheel build
python-bindings-wheel:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install build dependencies
run: |
sudo apt-get install -y ninja-build bcftools
- name: Build and install using PiP
run: |
pip install -v .[test]

- name: Run tests
run: |
pytest apis/python

168 changes: 168 additions & 0 deletions .github/workflows/build-wheels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
name: Build and test wheels

on:
workflow_dispatch:
inputs:
version:
description: Version to use are release version
required: true
type: string
test_pypi:
description: Upload packages to test.pypi.org
required: false
type: boolean
default: false
push:
branches:
- "db/vcpkg"
tags:
- "*"

env:
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_TILEDB: ${{ inputs.version }}

jobs:
build_wheels:
name: Wheel ${{ matrix.buildplat[0] }}-${{ matrix.buildplat[1] }}-${{ matrix.python }}
runs-on: ${{ matrix.buildplat[0] }}
strategy:
matrix:
buildplat:
- [ubuntu-22.04, manylinux_x86_64]
- [macos-13, macosx_x86_64]
- [macos-14, macosx_arm64]
# - [windows-2022, win_amd64]
python: ["cp39", "cp310", "cp311", "cp312"]

steps:
- uses: actions/checkout@v4

- name: "Brew setup on macOS" # x-ref c8e49ba8f8b9ce
if: ${{ startsWith(matrix.buildplat[0], 'macos-') == true }}
run: |
set -e pipefail
brew update
brew install automake autoconf pkg-config bcftools libtool

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD_VERBOSITY: 3
CIBW_ENVIRONMENT_MACOS: >
CC=clang
CXX=clang++
CIBW_ARCHS: all
CIBW_PRERELEASE_PYTHONS: True
CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }}
CIBW_BEFORE_ALL_LINUX: yum install -y bzip2-devel xz-devel bcftools curl zip unzip tar
CIBW_TEST_COMMAND: pytest {package}/apis/python
CIBW_TEST_EXTRAS: test
MACOSX_DEPLOYMENT_TARGET: "13.0"
with:
output-dir: wheelhouse

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-${{ matrix.buildplat[0] }}-${{ matrix.buildplat[1] }}-${{ matrix.python }}
path: "./wheelhouse/*.whl"

- name: "Print log files (failed build only)"
run: |
cat /Users/runner/work/TileDB-VCF/TileDB-VCF/build/cp310-cp310-macosx_13_0_arm64/_deps/vcpkg-src/buildtrees/htscodecs/autoconf-arm64-osx-err.log
if: failure() # only run this job if the build step failed

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
outputs:
sdist_name: ${{ steps.get_sdist_name.outputs.sdist_name }}
steps:
- uses: actions/checkout@v4

- name: Build sdist
run: pipx run build --sdist

- name: Get sdist package name
id: get_sdist_name
run: |
echo "sdist_name=$(ls dist/ | head -n 1)" >> "$GITHUB_OUTPUT"

- uses: actions/upload-artifact@v4
with:
name: sdist
path: dist/*.tar.gz

test_sdist:
name: Test source distribution package
needs: [build_sdist]
strategy:
matrix:
os:
- macos-13
- macos-14
# - windows-2022 Currently we do not know how to install bcftools on windows
- ubuntu-22.04
python: ["3.9", "3.10", "3.11", "3.12"]
runs-on: ${{ matrix.os }}
steps:
- name: Set up Python ${{ matrix.python }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}

- name: Install bcftools MacOS
if: ${{ startsWith(matrix.os, 'macos-') == true }}
run: |
set -e pipefail
brew update
brew install automake pkg-config ninja llvm bzip2 xz autoconf zlib libdeflate bcftools libtool

- name: Install bcftools Ubuntu
if: ${{ startsWith(matrix.os, 'ubuntu-') == true }}
run: sudo apt install bcftools

- name: Download sdist artifact
uses: actions/download-artifact@v4
with:
name: sdist
path: dist

- name: Install sdist artifact
run: pip install --verbose dist/${{ needs.build_sdist.outputs.sdist_name }}[test]

- uses: actions/checkout@v4

- name: Run tests
shell: bash
run: |
PROJECT_CWD=$PWD
cd ..
pytest -vv --showlocals $PROJECT_CWD/apis/python

upload_pypi:
needs: [build_wheels, test_sdist]
runs-on: ubuntu-latest
environment: pypi
permissions:
id-token: write
outputs:
package_version: ${{ steps.get_package_version.outputs.package_version }}
steps:
- uses: actions/download-artifact@v4
with:
path: dist
merge-multiple: true

- id: get_package_version
run: |
echo "package_version=$(ls dist/ | head -n 1 | cut -d - -f 2)" >> "$GITHUB_OUTPUT"

- name: Upload to test-pypi
if: inputs.test_pypi
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/

# - name: Upload to pypi
# if: startsWith(github.ref, 'refs/tags/')
# uses: pypa/gh-action-pypi-publish@release/v1
30 changes: 16 additions & 14 deletions .github/workflows/macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@ jobs:
run: |
cmake -S libtiledbvcf -B $(pwd)/libtiledbvcf/build \
-D CMAKE_BUILD_TYPE=Debug \
-D BUILD_SHARED_LIBS=ON \
-D CMAKE_INSTALL_PREFIX=$(pwd)/dist \
-D OVERRIDE_INSTALL_PREFIX=OFF \
-D DOWNLOAD_TILEDB_PREBUILT=ON
-D DOWNLOAD_TILEDB_PREBUILT=ON \
-D TILEDBVCF_ENABLE_TESTS=ON \
-D TILEDBVCF_SET_INSTALL_SUBPATH=OFF
- name: Build libtiledbvcf
run: cmake --build $(pwd)/libtiledbvcf/build -j 2 --config Debug
- name: Upload coredump as artifact if build failed
Expand All @@ -41,7 +44,7 @@ jobs:
retention-days: 14
if-no-files-found: error
- name: Install libtiledbvcf
run: cmake --build $(pwd)/libtiledbvcf/build --config Debug --target install-libtiledbvcf
run: cmake --install $(pwd)/libtiledbvcf/build --config Debug
- name: Upload libtiledbvcf as artifact
uses: actions/upload-artifact@v4
with:
Expand All @@ -57,8 +60,7 @@ jobs:
run: brew install bcftools
- name: Unit tests
run: |
make -j 2 -C libtiledbvcf/build/libtiledbvcf tiledb_vcf_unit
./libtiledbvcf/build/libtiledbvcf/test/tiledb_vcf_unit
ctest --test-dir libtiledbvcf/build
- name: CLI tests (require bcftools)
run: |
# USAGE: run-cli-tests.sh <build-dir> <inputs-dir>
Expand All @@ -67,7 +69,7 @@ jobs:
runs-on: macos-13
needs: libtiledbvcf
env:
DYLD_LIBRARY_PATH: "${{ github.workspace }}/dist/lib"
DYLD_LIBRARY_PATH: "${{ github.workspace }}/dist/tiledbvcf/lib"
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -88,13 +90,10 @@ jobs:
create-args: tiledb
- name: Build tiledbvcf-py
env:
LIBTILEDBVCF_PATH: "${{ github.workspace }}/dist"
tiledbvcf_DIR: "${{ github.workspace }}/dist"
TileDB_DIR: "/Users/runner/micromamba/envs/ci/lib/cmake/TileDB"
run: |
echo $DYLD_LIBRARY_PATH
echo $TileDB_DIR
cd apis/python
python -m pip install -v .[test]
python -m pip install -v --no-deps --config-settings=cmake.define.TILEDBVCF_ONLY_PYTHON_BINDINGS=ON .[test]
- name: Confirm linking
run: otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/libtiledbvcf.cpython-*-darwin.so
java:
Expand All @@ -107,6 +106,11 @@ jobs:
with:
name: libtiledbvcf
path: dist
- name: Debug
run: |
ls -R dist
- name: Build dependencies
run: brew install autoconf automake
- name: Check format
run: cd apis/java && ./gradlew checkFormat
- name: Assemble
Expand All @@ -126,13 +130,11 @@ jobs:
with:
python-version: "3.11"
- name: Build tiledbvcf-py
run: cd apis/python && python -m pip install -v .[test]
run: python -m pip install -v .[test]
- name: Confirm linking
run: |
otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/libtiledbvcf.cpython-*-darwin.so
otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/libtiledbvcf.dylib
otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/libtiledb.dylib
otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/libhts.*.dylib
otool -L /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tiledbvcf/lib/libtiledb.dylib
- name: Version
run: python -c "import tiledbvcf; print(tiledbvcf.version)"
- name: Install bcftools (for tests)
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/nightly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,13 +59,13 @@ jobs:
- name: Confirm linking (Linux)
if: runner.os == 'Linux'
run: |
ldd install/lib/libtiledb.so
ldd install/lib/libtiledbvcf.so
ldd install/tiledbvcf/lib/libtiledb.so*
ldd install/tiledbvcf/lib/libtiledbvcf.so*
- name: Confirm linking (macOS)
if: runner.os == 'macOS'
run: |
otool -L install/lib/libtiledb.dylib
otool -L install/lib/libtiledbvcf.dylib
otool -L install/tiledbvcf/lib/libtiledb.dylib
otool -L install/tiledbvcf/lib/libtiledbvcf.dylib
- name: Install bcftools (for tests) (Linux)
if: runner.os == 'Linux'
run: sudo apt-get install --yes bcftools
Expand Down
Loading
Loading