variables: GIT_SUBMODULE_STRATEGY: normal stages: - build - test - deploy ################################################################################ # Build jobs ################################################################################ ################################################################################ ######################### GCC ######################################### ################################################################################ ### GCC 4.8 with libfabric1.7.1, mercury 1.0.1 build:gcc_4.8:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc4.8-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules artifacts: paths: - build ### GCC 4.9 with libfabric1.7.1, mercury 1.0.1 build:gcc:4.9: image: bscstorage/norns-build-deps:gcc4.9-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### GCC 5.4 with libfabric1.7.1, mercury 1.0.1 build:gcc_5.4:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc5.4-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### GCC 6.5 with libfabric1.7.1, mercury 1.0.1 build:gcc_6.5:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc6.5-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### GCC 7.4 with libfabric1.7.1, mercury 1.0.1 build:gcc_7.4:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc7.4-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### GCC 8.1 with libfabric1.7.1, mercury 1.0.1 build:gcc_8.1:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc8.1-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### GCC 9.1 with libfabric1.7.1, mercury 1.0.1 build:gcc_9.1:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc9.1-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) - find "${CI_PROJECT_DIR}/build" \( -name "*.o" -or -name "*.lo" \) -delete - du -h "${CI_PROJECT_DIR}/build" artifacts: paths: - "${CI_PROJECT_DIR}/build" expire_in: 12 hours # This one should always run # only: # - tags # - triggers # - schedules ################################################################################ ######################### LLVM/Clang ######################################### ################################################################################ ### Clang 3.6 with libfabric1.7.1, mercury 1.0.1 build:clang_3.6:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang3.6-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 3.8 with libfabric1.7.1, mercury 1.0.1 build:clang_3.8:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang3.8-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 3.9 with libfabric1.7.1, mercury 1.0.1 build:clang_3.9:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang3.9-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 4.0 with libfabric1.7.1, mercury 1.0.1 build:clang_4.0:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang4.0-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 5.0 with libfabric1.7.1, mercury 1.0.1 build:clang_5.0:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang5.0-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 6.0 with libfabric1.7.1, mercury 1.0.1 build:clang_6.0:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang6.0-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 7.1 with libfabric1.7.1, mercury 1.0.1 build:clang_7.1:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang7.1-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 8.0 with libfabric1.7.1, mercury 1.0.1 build:clang_8.0:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang8.0-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) only: - tags - triggers - schedules ### Clang 9.0 with libfabric1.7.1, mercury 1.0.1 build:clang_9.0:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:clang9.0-libfabric1.7.1-mercury1.0.1 stage: build script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api make -j$(nproc) api_interactive ) # This one should always run # only: # - tags # - triggers # - schedules ################################################################################ # Test jobs ################################################################################ ### GCC 9.1 with libfabric1.7.1, mercury 1.0.1 test:gcc_9.1:libfabric_1.7.1:mercury_1.0.1: image: bscstorage/norns-build-deps:gcc9.1-libfabric1.7.1-mercury1.0.1 stage: test dependencies: - build:gcc_9.1:libfabric_1.7.1:mercury_1.0.1 variables: NORNS_DEBUG_CONFIG_FILE_OVERRIDE: 1 script: - | ( set -Eeuo pipefail set -x cd build/tests ./core -as ./api -as "[api::NORNS_TASK]" ./api -as "[api::norns_error]" ./api -as "[api::norns_iotask_init]" ./api -as "[api::norns_resource_init]" ./api -as "[api::norns_submit]" ./api -as "[api::norns_submit_copy_buffer_to_file]" ./api -as "[api::norns_submit_copy_local_posix_files]" ./api -as "[api::norns_submit_pull_errors]" ./api -as "[api::norns_submit_pull_links]" ./api -as "[api::norns_submit_pull_to_posix_file]" ./api -as "[api::norns_submit_pull_to_posix_subdir]" ./api -as "[api::norns_submit_push_errors]" ./api -as "[api::norns_submit_push_links]" ./api -as "[api::norns_submit_push_memory_to_posix_file]" ./api -as "[api::norns_submit_push_memory_to_posix_file_errors]" ./api -as "[api::norns_submit_push_to_posix_file]" ./api -as "[api::norns_submit_push_to_posix_subdir]" ./api -as "[api::norns_submit_remove_local_posix_files]" ./api -as "[api::nornsctl_add_process]" ./api -as "[api::nornsctl_register_job]" ./api -as "[api::nornsctl_register_namespace]" ./api -as "[api::nornsctl_remove_process]" ./api -as "[api::nornsctl_send_command]" ./api -as "[api::nornsctl_status]" ./api -as "[api::nornsctl_unregister_job]" ./api -as "[api::nornsctl_unregister_namespace]" ./api -as "[api::nornsctl_update_job]" ) artifacts: paths: - "${CI_PROJECT_DIR}/build/tests" when: on_failure expire_in: 1 week ################################################################################ # Coverage jobs ################################################################################ ### build:coverage: image: bscstorage/norns-build-deps:gcc8.1-libfabric1.7.1-mercury1.0.1 stage: build variables: CFLAGS: "-O0 --coverage" CXXFLAGS: "-O0 --coverage" LDFLAGS: "--coverage" script: - | ( set -Eeuo pipefail set -x ./bootstrap.sh mkdir build && cd build ../configure --enable-tests make -j$(nproc) cd tests make -j$(nproc) core make -j$(nproc) api ) - find "${CI_PROJECT_DIR}/build" \( -name "*.o" -or -name "*.lo" \) -delete - du -h "${CI_PROJECT_DIR}/build" artifacts: paths: - "${CI_PROJECT_DIR}/build" expire_in: 1 day ### test:coverage: image: bscstorage/norns-build-deps:gcc8.1-libfabric1.7.1-mercury1.0.1 stage: test dependencies: - build:coverage variables: NORNS_DEBUG_CONFIG_FILE_OVERRIDE: 1 script: - | ( set -Eeuo pipefail set -x cd build/tests ./core -as ./api -as "[api::NORNS_TASK]" ./api -as "[api::norns_error]" ./api -as "[api::norns_iotask_init]" ./api -as "[api::norns_resource_init]" ./api -as "[api::norns_submit]" ./api -as "[api::norns_submit_copy_buffer_to_file]" ./api -as "[api::norns_submit_copy_local_posix_files]" ./api -as "[api::norns_submit_pull_errors]" ./api -as "[api::norns_submit_pull_links]" ./api -as "[api::norns_submit_pull_to_posix_file]" ./api -as "[api::norns_submit_pull_to_posix_subdir]" ./api -as "[api::norns_submit_push_errors]" ./api -as "[api::norns_submit_push_links]" ./api -as "[api::norns_submit_push_memory_to_posix_file]" ./api -as "[api::norns_submit_push_memory_to_posix_file_errors]" ./api -as "[api::norns_submit_push_to_posix_file]" ./api -as "[api::norns_submit_push_to_posix_subdir]" ./api -as "[api::norns_submit_remove_local_posix_files]" ./api -as "[api::nornsctl_add_process]" ./api -as "[api::nornsctl_register_job]" ./api -as "[api::nornsctl_register_namespace]" ./api -as "[api::nornsctl_remove_process]" ./api -as "[api::nornsctl_send_command]" ./api -as "[api::nornsctl_status]" ./api -as "[api::nornsctl_unregister_job]" ./api -as "[api::nornsctl_unregister_namespace]" ./api -as "[api::nornsctl_update_job]" cd ${CI_PROJECT_DIR}/build ${CI_PROJECT_DIR}/gencov.sh genhtml -o html/coverage norns.info ) artifacts: paths: - build/html/coverage/ expire_in: 1 week pages: image: alpine:latest stage: deploy before_script: - '' dependencies: - test:coverage script: - mv build/html/coverage/ public/ artifacts: paths: - public expire_in: 30 days # only: # - master