.gitlab-ci.yml 5.42 KiB
Newer Older
Alberto Miranda's avatar
Alberto Miranda committed
# This file is a template, and might need editing before it works on your project.
# use the official gcc image, based on debian
# can use verions as well, like gcc:5.2
# see https://hub.docker.com/_/gcc/

Alberto Miranda's avatar
Alberto Miranda committed
stages:
    - build
    - test

Alberto Miranda's avatar
Alberto Miranda committed
# Install dependencies for GCC builds
before_script:
    - apt-get update &&
      apt-get install -y
        libboost-system-dev
        libboost-filesystem-dev
        libboost-program-options-dev
        libboost-thread-dev
        libboost-regex-dev
        libprotobuf-dev
        protobuf-compiler
        libprotobuf-c0-dev
        protobuf-c-compiler
        libyaml-cpp-dev
        libyaml-dev

Alberto Miranda's avatar
Alberto Miranda committed
    - git clone https://github.com/mercury-hpc/mercury.git &&
      cd mercury &&
      git checkout 3d8ed01eeff6b504862702048d7577457c71227c &&
      mkdir build &&
      cd build &&
      cmake
        -DCMAKE_BUILD_TYPE:STRING=Debug
        -DBUILD_TESTING:BOOL=OFF
        -DMERCURY_USE_SM_ROUTING:BOOL=OFF
        -DMERCURY_USE_SELF_FORWARD:BOOL=OFF
        -DMERCURY_USE_CHECKSUMS:BOOL=ON
        -DMERCURY_USE_BOOST_PP:BOOL=ON
        -DMERCURY_USE_EAGER_BULK:BOOL=ON
        -DBUILD_SHARED_LIBS:BOOL=ON
        -DNA_USE_OFI:BOOL=ON
        .. &&
      make -j$(nproc) &&
      make install

Alberto Miranda's avatar
Alberto Miranda committed

### GCC 5
build:gcc:5:
  image: gcc:5
  stage: build

  script:
        - ./bootstrap.sh
        - mkdir build && cd build
        - ../configure 
            --enable-tests 
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
        - cd tests
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" core
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" api


### GCC 6
build:gcc:6:
  image: gcc:6
  stage: build

  script:
        - ./bootstrap.sh
        - mkdir build && cd build
        - ../configure 
            --enable-tests 
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0"
        - cd tests
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" core
        - make -j4 CPPFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" api


### GCC 7
build:gcc:7:
  image: gcc:7
  stage: build

  script:
        - ./bootstrap.sh
        - mkdir build && cd build
        - ../configure 
            --enable-tests 
        - make -j4
        - cd tests
        - make -j4
        - make -j4


### GCC 8
build:gcc:8:
  image: gcc:8
  stage: build

  script:
        - ./bootstrap.sh
        - mkdir build && cd build
        - ../configure 
            --enable-tests 
        - make -j4
        - cd tests
        - make -j4
        - make -j4


################################################################################
# test scripts
################################################################################
test:ubuntu:latest:
Alberto Miranda's avatar
Alberto Miranda committed
    image: ubuntu:latest
Alberto Miranda's avatar
Alberto Miranda committed
    stage: test
Alberto Miranda's avatar
Alberto Miranda committed

    # Install dependencies
Alberto Miranda's avatar
Alberto Miranda committed
    before_script:
Alberto Miranda's avatar
Alberto Miranda committed
        - apt-get update &&
          apt-get upgrade -y &&
Alberto Miranda's avatar
Alberto Miranda committed
          apt-get install -y
Alberto Miranda's avatar
Alberto Miranda committed
            build-essential
            autotools-dev
            automake
            autoconf
            libtool
Alberto Miranda's avatar
Alberto Miranda committed
            pkg-config
Alberto Miranda's avatar
Alberto Miranda committed
            libboost-system-dev
            libboost-filesystem-dev
            libboost-program-options-dev
            libboost-thread-dev
Alberto Miranda's avatar
Alberto Miranda committed
            libboost-regex-dev
Alberto Miranda's avatar
Alberto Miranda committed
            libprotobuf-dev
Alberto Miranda's avatar
Alberto Miranda committed
            protobuf-compiler
Alberto Miranda's avatar
Alberto Miranda committed
            libprotobuf-c-dev
            protobuf-c-compiler
Alberto Miranda's avatar
Alberto Miranda committed
            libyaml-cpp-dev
            libyaml-dev
Alberto Miranda's avatar
Alberto Miranda committed
            valgrind
Alberto Miranda's avatar
Alberto Miranda committed
    # Build and test
Alberto Miranda's avatar
Alberto Miranda committed
    script:
Alberto Miranda's avatar
Alberto Miranda committed
        - ./bootstrap.sh
Alberto Miranda's avatar
Alberto Miranda committed
        - mkdir build && cd build
Alberto Miranda's avatar
Alberto Miranda committed
        - ../configure 
            --enable-tests 
Alberto Miranda's avatar
Alberto Miranda committed
#            CFLAGS="-fsanitize=address"
#            CXXFLAGS="-fsanitize=address"
#            LDFLAGS="-fsanitize=address"
#            CPPFLAGS="-D__LOGGER_ENABLE_DEBUG__"
Alberto Miranda's avatar
Alberto Miranda committed
        - make -j4
Alberto Miranda's avatar
Alberto Miranda committed
        - cd tests
Alberto Miranda's avatar
Alberto Miranda committed
        - make -j4 core
        - ./core -as
Alberto Miranda's avatar
Alberto Miranda committed
        - make -j4 api
#        - NORNS_DEBUG_OUTPUT_TO_STDERR=1 NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api
Alberto Miranda's avatar
Alberto Miranda committed
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_register_namespace]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_unregister_namespace]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_submit_copy_local_posix_files]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_submit_copy_buffer_to_file]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_register_job]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_update_job]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_unregister_job]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_add_process]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_remove_process]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_resource_init]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_iotask_init]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::NORNS_TASK]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_submit]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_status]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_status]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::nornsctl_send_command]"
        - NORNS_DEBUG_CONFIG_FILE_OVERRIDE=1 ./api -as "[api::norns_submit_remove_local_posix_files]"
Alberto Miranda's avatar
Alberto Miranda committed
    after_script:
        - pwd
        - if [[ -e tests.log ]]; 
          then
              cat $(tail -1 tests.log)/config/urd.log;
          fi