Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.73 KiB
Newer Older
  • Learn to ignore specific revisions
  • image: "flowdalic/debian-testing-dev:1.4"
    
        readarray TOOLS <<EOF
        c++
        cc
        clang
        clang++
        clang-tidy
        doxygen
        g++
        gcc
        include-what-you-use
        meson
        nasm
        valgrind
        EOF
        for tool in ${TOOLS[@]}; do
          echo -n "$tool version: "
    
      CC: gcc
      CXX: g++
      EXTRA_NINJA_ARGS: -v
      EMPER_IO: "false"
    
    
      script: make smoke-test-suite
    
    static-analysis-with-emper-io:
      stage: smoke-test
      script: make static-analysis
      variables:
          EMPER_IO: "true"
    
    
    .test:
      stage: test
      script:
        - make test
    
    .gcc:
      variables:
        CC: gcc
        CXX: g++
    
    .clang:
      variables:
        CC: clang
        CXX: clang++
    
    
    .emper-ws-scheduling:
      variables:
        EMPER_DEFAULT_SCHEDULING_STRATEGY: "work_stealing"
    
    .emper-laws-scheduling:
      variables:
        EMPER_DEFAULT_SCHEDULING_STRATEGY: "locality_aware_work_stealing"
    
    
    .emper-worker-no-sleep:
      variables:
        EMPER_WORKER_SLEEP: 'false'
    
    .emper-worker-stats:
      variables:
        EMPER_WORKER_STATS: 'true'
    
    
    .emper-userspace-rcu:
      variables:
        EMPER_USERSPACE_RCU: 'true'
    
    
    .default-library-static:
      variables:
        EMPER_DEFAULT_LIBRARY: 'static'
    
    .clang-sanitizer:
      extends:
        - .clang
        - .default-library-static
    
      variables:
        # Clang's sanitizers require undefined symbols to be allowed when
        # linking. See also:
        # - https://github.com/mesonbuild/meson/issues/764
        # - https://mesonbuild.com/Builtin-options.html
        EMPER_B_LUNDEF: 'false'
    
    
    
    .clang-sanitizer-undefined:
      extends:
        - .clang-sanitizer
      variables:
        EMPER_B_SANITIZE: 'undefined'
    
    #.clang-sanitizer-memory:
    #  extends:
    #    - .clang-sanitizer
    #  variables:
    #    EMPER_B_SANITIZE: 'memory'
    
    #.sanitizer-address:
    #  extends:
    #    - .default-library-static
    #  variables:
    #    EMPER_B_SANITIZE: 'address'
    
    
    .release-build:
      variables:
        BUILDTYPE: release
    
    .debug-build:
      variables:
        BUILDTYPE: debug
    
    
    .worker-wakeup-strategy-all:
      variables:
        EMPER_WORKER_WAKEUP_STRATEGY: "all"
    
    
    .do-not-log-timestamp:
      variables:
        EMPER_LOG_TIMESTAMP: "false"
    
    
    .locked-ws-queues:
      variables:
        EMPER_LOCKED_WS_QUEUE: "true"
    
    
    .futex-wakeup-semaphore:
      variables:
        EMPER_WAKEUP_SEMAPHORE_IMPLEMENTATION: "futex"
    
    .locked-wakeup-semaphore:
      variables:
        EMPER_WAKEUP_SEMAPHORE_IMPLEMENTATION: "locked"
    
    
    test-gcc:
      extends:
        - .test
        - .gcc
    
    test-gcc-release:
      extends:
        - test-gcc
        - .release-build
    
    test-gcc-debug:
      extends:
        - test-gcc
        - .debug-build
    
    test-clang:
      extends:
        - .test
        - .clang
    
    test-clang-release:
      extends:
        - test-clang
        - .release-build
    
    test-clang-debug:
      extends:
        - test-clang
        - .debug-build
    
    test-worker-no-sleep:
      extends:
        - .test
        - .emper-worker-no-sleep
    
    test-with-stats:
      extends:
        - .test
        - .emper-worker-stats
    
    
    test-with-userspace-rcu:
      extends:
        - .test
        - .emper-userspace-rcu
    
    
    test-clang-sanitizer-undefined:
      extends:
        - .test
        - .clang-sanitizer-undefined
    
    #test-clang-sanitizer-memory:
    #  extends:
    #    - .test
    #    - .clang-sanitizer-memory
    
    #test-clang-sanitizer-address:
    #  extends:
    #    - .test
    #    - .clang
    #    - .sanitizer-address
    
    
    test-laws:
      extends:
        - .test
        - .emper-laws-scheduling
    
    test-laws-release:
      extends:
        - test-laws
        - .release-build
    
    
    test-worker-wakeup-strategy-all:
      extends:
        - .test
        - .worker-wakeup-strategy-all
    
    
    test-do-not-log-timestamp:
      extends:
        - .test
        - .do-not-log-timestamp
    
    
    test-locked-ws-queues:
      extends:
        - .test
        - .locked-ws-queues
    
    
    test-futex-wakeup-semaphore:
      extends:
        - .test
        - .futex-wakeup-semaphore
    
    test-locked-wakeup-semaphore:
      extends:
        - .test
        - .locked-wakeup-semaphore