diff --git a/.drone.jsonnet b/.drone.jsonnet index 08383f3f8..9e0ad2d65 100644 --- a/.drone.jsonnet +++ b/.drone.jsonnet @@ -237,6 +237,10 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise') else ' bash -c "apt update --yes && apt install -y ' + debpackages + '"', + local addFoundationDBForBuild(pkg_format, result) = + "PACKAGES_URL=https://cspkg.s3.amazonaws.com/FoundationDB OS=%s storage/columnstore/columnstore/setup-repo.sh mariadb-columnstore-foundationdb &&" % result + + installRpmDeb(pkg_format, "foundationdb-clients foundationdb-server", "foundationdb-clients foundationdb-server"), + local dockerImage(stepname) = stepname + "$${DRONE_BUILD_NUMBER}", local installEngine(dockerImage, pkg_format) = if (pkg_format == 'deb') then execInnerDocker('bash -c "apt install -y mariadb-plugin-columnstore mariadb-test"', dockerImage) @@ -268,6 +272,10 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise') 'docker cp core_dumps/. ' + dockerImage + ':/', 'docker cp build/utils.sh ' + dockerImage + ':/', 'docker cp setup-repo.sh ' + dockerImage + ':/', + + execInnerDocker('/setup-repo.sh mariadb-columnstore-foundationdb https://cspkg.s3.amazonaws.com/FoundationDB', dockerImage), + execInnerDocker(installRpmDeb(pkg_format, "foundationdb-clients foundationdb-server", "foundationdb-clients foundationdb-server"), dockerImage), + if (do_setup) then execInnerDocker('/setup-repo.sh', dockerImage), execInnerDocker(installRpmDeb(pkg_format, "cracklib-dicts diffutils elfutils epel-release findutils iproute gawk gcc-c++ gdb hostname lz4 patch perl procps-ng rsyslog sudo tar wget which", @@ -787,6 +795,7 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise') testPreparation(platform), // disable LTO for 22.04 for now if (platform == 'ubuntu:22.04' || platform == 'ubuntu:24.04') then 'apt install -y lto-disabled-list && for i in mariadb-plugin-columnstore mariadb-server mariadb-server-core mariadb mariadb-10.6; do echo "$i any" >> /usr/share/lto-disabled-list/lto-disabled-list; done && grep mariadb /usr/share/lto-disabled-list/lto-disabled-list', + addFoundationDBForBuild(pkg_format, result), platformMap(platform, arch), 'sccache --show-stats', // move engine and cmapi packages to one dir to make a repo @@ -807,6 +816,7 @@ local Pipeline(branch, platform, event, arch='amd64', server='10.6-enterprise') commands: [ 'cd /mdb/' + builddir, testPreparation(platform), + addFoundationDBForBuild(pkg_format, result), testRun(platform), ], }, diff --git a/cmake/cpackEngineRPM.cmake b/cmake/cpackEngineRPM.cmake index 5add7cc10..4d44c2aa3 100644 --- a/cmake/cpackEngineRPM.cmake +++ b/cmake/cpackEngineRPM.cmake @@ -78,7 +78,7 @@ IF (EXISTS "/etc/SuSE-release") set(SUSE_VERSION_NUMBER "${CMAKE_MATCH_1}") ENDIF () -SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "snappy" "net-tools" "MariaDB-server" "python3" "jemalloc" "procps-ng") +SETA(CPACK_RPM_columnstore-engine_PACKAGE_REQUIRES "snappy" "net-tools" "MariaDB-server" "python3" "jemalloc" "procps-ng" "foundationdb-clients" "foundationdb-server") SET(CPACK_RPM_columnstore-engine_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/preInstall_storage_engine.sh) SET(CPACK_RPM_columnstore-engine_POST_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/build/postInstall_storage_engine.sh) diff --git a/debian/control b/debian/control index cbb11cea4..64456f614 100644 --- a/debian/control +++ b/debian/control @@ -9,6 +9,8 @@ Depends: binutils, net-tools, python3, procps, + foundationdb-clients (= 7.1.63), + foundationdb-server (= 7.1.63), ${misc:Depends}, ${shlibs:Depends} Breaks: mariadb-columnstore-libs, diff --git a/setup-repo.sh b/setup-repo.sh index 409483933..660601115 100755 --- a/setup-repo.sh +++ b/setup-repo.sh @@ -2,6 +2,18 @@ set -ex +REPOFILE='mariadb-columnstore' + +if [ -n "$1" ]; then + REPOFILE=$1 +fi + +REPO_PACKAGES_URL=${PACKAGES_URL} + +if [ -n "$2" ]; then + REPO_PACKAGES_URL=$2 +fi + . /etc/os-release ARCH=$(expr "$(uname -m)" : "arm64\|aarch64" > /dev/null && echo "arm64" || echo "amd64") @@ -10,8 +22,8 @@ case "$ID" in ubuntu|debian) apt update -y apt install -y ca-certificates - echo "deb [trusted=yes] ${PACKAGES_URL}/${ARCH}/ ${OS}/" > /etc/apt/sources.list.d/repo.list - cat /etc/apt/sources.list.d/repo.list + echo "deb [trusted=yes] ${REPO_PACKAGES_URL}/${ARCH}/ ${OS}/" > /etc/apt/sources.list.d/${REPOFILE}.list + cat /etc/apt/sources.list.d/${REPOFILE}.list cat << EOF > /etc/apt/preferences Package: * Pin: origin cspkg.s3.amazonaws.com @@ -20,10 +32,10 @@ EOF apt update -y ;; rocky|centos) - cat << EOF > /etc/yum.repos.d/repo.repo + cat << EOF > /etc/yum.repos.d/${REPOFILE}.repo [repo] -name=repo -baseurl=${PACKAGES_URL}/${ARCH}/${OS} +name=${REPOFILE} +baseurl=${REPO_PACKAGES_URL}/${ARCH}/${OS} enabled=1 gpgcheck=0 module_hotfixes=1 diff --git a/storage-manager/CMakeLists.txt b/storage-manager/CMakeLists.txt index d0f823a4c..1b0a7bb7e 100755 --- a/storage-manager/CMakeLists.txt +++ b/storage-manager/CMakeLists.txt @@ -76,17 +76,20 @@ set(TMPDIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) find_library(FDB_LIB fdb_c) -if (FDB_LIB) - add_library(fdbcs SHARED fdb_wrapper_cpp/src/fdbcs.cpp) - target_link_libraries(fdbcs fdb_c) - - add_executable(test_fdb_api fdb_wrapper_cpp/test/test_fdb_api.cpp) - add_dependencies(test_fdb_api fdbcs) - target_link_libraries(test_fdb_api fdbcs fdb_c) - - add_test(NAME columnstore:test_fdb_api COMMAND test_fdb_api) +if (NOT FDB_LIB) + MESSAGE_ONCE(FATAL_ERROR "FoundationDB not installed properly, please install packages foundationdb-cliends and foundationdb-server") + return() endif() +add_library(fdbcs SHARED fdb_wrapper_cpp/src/fdbcs.cpp) +target_link_libraries(fdbcs fdb_c) + +add_executable(test_fdb_api fdb_wrapper_cpp/test/test_fdb_api.cpp) +add_dependencies(test_fdb_api fdbcs) +target_link_libraries(test_fdb_api fdbcs fdb_c) + +add_test(NAME columnstore:test_fdb_api COMMAND test_fdb_api) + add_executable(unit_tests src/unit_tests.cpp) target_compile_definitions(unit_tests PUBLIC BOOST_NO_CXX11_SCOPED_ENUMS) target_link_libraries(unit_tests storagemanager) @@ -158,9 +161,7 @@ install(FILES storagemanager.cnf COMPONENT columnstore-engine ) -if (FDB_LIB) install(TARGETS fdbcs LIBRARY DESTINATION ${ENGINE_LIBDIR} COMPONENT columnstore-engine ) -endif()