# Compilation of scord and execution of tests image: bscstorage/scord:0.1.0 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 - cmake -DCMAKE_PREFIX_PATH:STRING=/usr/local -DCMAKE_INSTALL_PREFIX:STRING=${CI_PROJECT_DIR}/compiled -DSCORD_BUILD_EXAMPLES:BOOL=ON -DSCORD_BUILD_TESTS:BOOL=ON -DSCORD_TRANSPORT_LIBRARY=libfabric -DSCORD_TRANSPORT_PROTOCOL=ofi+tcp -DSCORD_BIND_ADDRESS=127.0.0.1 -DSCORD_BIND_PORT=52000 .. - make -j$(nproc) install artifacts: paths: - compiled/bin/ - compiled/etc/ - compiled/lib/ - build/examples/ - build/tests/ # 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: stage: test needs: [build] script: - export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:${CI_PROJECT_DIR}/compiled/lib - compiled/bin/scord -f --force-console & - build/examples/cxx/ADM_ping ofi+tcp://127.0.0.1:52000 - pkill -TERM scord cache: key: $CI_COMMIT_REF_SLUG # run unit tests unit: stage: test needs: [build] script: - export LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:${CI_PROJECT_DIR}/compiled/lib - cd build/tests - ctest -j$(nproc) --output-junit report.xml cache: key: $CI_COMMIT_REF_SLUG artifacts: expire_in: 1 week paths: - build/tests/report.xml reports: junit: build/tests/report.xml