Skip to content
Snippets Groups Projects
.gitlab-ci.yml 2.87 KiB
Newer Older
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: "

smoke-test:
  stage: smoke-test
  script: make smoke-test

variables:
  BUILDDTYPE: debugoptmized
  CC: gcc
  CXX: g++
  EXTRA_NINJA_ARGS: -v

.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

.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"

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