From 93258bb9754ce8155702882d1d6d1ad82c7284b8 Mon Sep 17 00:00:00 2001 From: Andy Shapiro Date: Thu, 30 May 2024 11:32:23 -0400 Subject: [PATCH] add integration tests --- .github/workflows/cpp-test.yml | 22 ++++++++++++++++++++++ CMakeLists.txt | 12 ++---------- tools/linux_ci.sh | 4 +--- 3 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/cpp-test.yml diff --git a/.github/workflows/cpp-test.yml b/.github/workflows/cpp-test.yml new file mode 100644 index 00000000..6876ae95 --- /dev/null +++ b/.github/workflows/cpp-test.yml @@ -0,0 +1,22 @@ +name: C++ test linux + +on: + pull_request: + push: + branches: + - main + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v4 + - name: Install dependencies and build + run: | + source ./scripts/linux_ci.sh + mkdir -p src/build + cd src/build + cmake .. + make -j$(nproc) + make run_tests_with_coverage diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c89babb..b0b37d4e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,7 +10,7 @@ ExternalProject_Add( GIT_TAG "80dc998efced8ceb2be59756668a7e90e8bef917" # v2.10.4 SOURCE_DIR "${CMAKE_BINARY_DIR}/third-party/pybind11" # Override default steps with no action, we just want the clone step. - UPDATE_COMMAND "" + UPDATE_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" @@ -39,9 +39,6 @@ ENDIF() IF(DEFINED ENV{CMAKE_CXX_COMPILER}) set(CMAKE_CXX_COMPILER $ENV{CMAKE_CXX_COMPILER}) ENDIF() -IF(DEFINED ENV{PYTHON_LIBRARY_DIR}) - set(PYTHON_LIBRARY_DIR $ENV{PYTHON_LIBRARY_DIR}) -ENDIF() IF(WIN32) add_compile_definitions(RBMDS_EXPORTS) @@ -76,7 +73,7 @@ file (GLOB PYTHON_FILES "src/pybmdscpp/*.cpp" "src/pybmdscpp/*.h") source_group(TREE ${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE_FILES} ${HEADER_FILES} ${PYTHON_FILES} ) include(pybind11.cmake) -pybind11_add_module(bmdscore +pybind11_add_module(bmdscore ${SOURCE_FILES} ${HEADER_FILES} ${PYTHON_FILES} @@ -87,8 +84,3 @@ IF(WIN32) ELSE() target_link_libraries(bmdscore PUBLIC GSL::gsl GSL::gslcblas ${NLOPT_LIB}) ENDIF(WIN32) - -install(TARGETS bmdscore - COMPONENT python - LIBRARY DESTINATION "${PYTHON_LIBRARY_DIR}" - ) diff --git a/tools/linux_ci.sh b/tools/linux_ci.sh index 594e92b4..04941cb0 100755 --- a/tools/linux_ci.sh +++ b/tools/linux_ci.sh @@ -1,11 +1,9 @@ #!/bin/bash sudo apt-get update -y -sudo apt-get install -y automake build-essential libtool make cmake libgslcblas0 libgsl-dev libeigen3-dev libnlopt-dev libnlopt-cxx-dev +sudo apt-get install -y automake build-essential libtool make cmake libgslcblas0 libgsl-dev libeigen3-dev libnlopt-dev libnlopt-cxx-dev lcov export "EIGEN_DIR=/usr/include/eigen3" export "NLOPT_DIR=/usr/lib/x86_64-linux-gnu/" export "CMAKE_C_COMPILER=/usr/bin/gcc-12" export "CMAKE_CXX_COMPILER=/usr/bin/g++-12" -export "PYTHON_EXECUTABLE=$Python3_ROOT_DIR/bin/python" -export "PYTHON_LIBRARY_DIR=$Python3_ROOT_DIR/lib/python3.11/site-packages"