Newer
Older
# Compilation of scord and execution of tests
stages:
- build
- test
build:
stage: build
script:
- export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64
- export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig
- mkdir -p build
- cd build
-DCMAKE_PREFIX_PATH:STRING=/usr/local
-DCMAKE_INSTALL_PREFIX:STRING=${CI_PROJECT_DIR}/compiled
-DSCORD_BUILD_EXAMPLES:BOOL=ON
-DSCORD_TRANSPORT_LIBRARY=libfabric
-DSCORD_TRANSPORT_PROTOCOL=ofi+tcp
-DSCORD_BIND_ADDRESS=127.0.0.1
-DSCORD_BIND_PORT=52000
..
artifacts:
paths:
- compiled/bin/
- compiled/etc/
- build/src/scord/scord
- build/src/scord-ctl/scord-ctl
# depending on your build setup it's most likely a good idea to cache outputs to reduce the build time
cache:
key: $CI_COMMIT_REF_SLUG
paths:
- build/
- compiled/bin
- compiled/etc
# run RPC tests using the binary built before
rpc:
- export ASAN_OPTIONS=detect_odr_violation=0:detect_leaks=0
- export LSAN_OPTIONS=verbosity=1:log_threads=1:suppressions=${CI_PROJECT_DIR}/tests/LSanSuppress.supp
- export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:${CI_PROJECT_DIR}/compiled/lib
- ctest -j$(nproc) --output-on-failure --output-junit rpc-report.xml
artifacts:
expire_in: 1 week
paths:
# run unit tests
unit:
stage: test
needs: [build]
script:
- export ASAN_OPTIONS=detect_odr_violation=0
- export LSAN_OPTIONS=verbosity=1:log_threads=1:suppressions=${CI_PROJECT_DIR}/tests/LSanSuppress.supp
- export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:${CI_PROJECT_DIR}/compiled/lib
- cd build/tests
- ctest -j$(nproc) --output-on-failure --output-junit unit-report.xml