.cirrus.yml raw

   1  env:
   2    BUILD: check
   3    HOST:
   4    MAKEFLAGS: -j4
   5    BENCH: yes
   6    TESTRUNS:
   7    EXEC_CMD:
   8    ENABLE_FIELDS:
   9  
  10  cat_logs_snippet: &CAT_LOGS
  11    on_failure:
  12      cat_test_log_script:
  13        - cat test-suite.log || true
  14      cat_config_log_script:
  15        - cat config.log || true
  16      cat_test_env_script:
  17        - cat test_env.log || true
  18      cat_ci_env_script:
  19        - env
  20  
  21  merge_base_script_snippet: &MERGE_BASE
  22    merge_base_script:
  23      - if [ "$CIRRUS_PR" = "" ]; then exit 0; fi
  24      - git fetch $CIRRUS_REPO_CLONE_URL $CIRRUS_BASE_BRANCH
  25      - git config --global user.email "ci@ci.ci"
  26      - git config --global user.name "ci"
  27      - git merge FETCH_HEAD  # Merge base to detect silent merge conflicts
  28  
  29  env_matrix_snippet: &ENV_MATRIX_VALGRIND
  30    - env:
  31        ENABLE_FIELDS: "7,32,58"
  32    - env:
  33        BUILD: distcheck
  34    - env:
  35        EXEC_CMD: valgrind --error-exitcode=42
  36        TESTRUNS: 1
  37        BUILD:
  38  
  39  env_matrix_snippet: &ENV_MATRIX_SAN_VALGRIND
  40    - env:
  41        ENABLE_FIELDS: "11,64,37"
  42    - env:
  43        BUILD: distcheck
  44    - env:
  45        EXEC_CMD: valgrind --error-exitcode=42
  46        TESTRUNS: 1
  47        BUILD:
  48    - env:
  49        CXXFLAGS:  "-fsanitize=undefined -fno-omit-frame-pointer"
  50        LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
  51        UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
  52        BENCH: no
  53  
  54  task:
  55    name: "x86_64: Linux (Debian stable)"
  56    container:
  57      dockerfile: ci/linux-debian.Dockerfile
  58      memory: 2G
  59      cpu: 4
  60    matrix:
  61      << : *ENV_MATRIX_SAN_VALGRIND
  62    matrix:
  63      - env:
  64          CXX: g++
  65      - env:
  66          CXX: clang++ -gdwarf-4
  67    << : *MERGE_BASE
  68    test_script:
  69      - ./ci/cirrus.sh
  70    << : *CAT_LOGS
  71  
  72  task:
  73    name: "i686: Linux (Debian stable)"
  74    container:
  75      dockerfile: ci/linux-debian.Dockerfile
  76      memory: 2G
  77      cpu: 4
  78    env:
  79      HOST: i686-linux-gnu
  80    matrix:
  81      << : *ENV_MATRIX_VALGRIND
  82    matrix:
  83      - env:
  84          CXX: i686-linux-gnu-g++
  85      - env:
  86          CXX: clang++ --target=i686-linux-gnu -gdwarf-4
  87          CXXFLAGS: -g -O2 -isystem /usr/i686-linux-gnu/include -isystem /usr/i686-linux-gnu/include/c++/10/i686-linux-gnu
  88    test_script:
  89      - ./ci/cirrus.sh
  90    << : *CAT_LOGS
  91  
  92  task:
  93    name: "arm64: macOS Monterey"
  94    macos_instance:
  95      image: ghcr.io/cirruslabs/macos-monterey-base:latest
  96    env:
  97      # Cirrus gives us a fixed number of 4 virtual CPUs.
  98      MAKEFLAGS: -j5
  99    matrix:
 100      - env:
 101          CXX: g++-11
 102        # Homebrew's gcc for arm64 has no libubsan.
 103        matrix:
 104          - env:
 105              ENABLE_FIELDS: 28
 106          - env:
 107              BUILD: distcheck
 108      - env:
 109          CXX: clang++
 110        matrix:
 111          - env:
 112              ENABLE_FIELDS: 28
 113          - env:
 114              BUILD: distcheck
 115          - env:
 116              CXXFLAGS:  "-fsanitize=undefined -fno-omit-frame-pointer"
 117              LDFLAGS: "-fsanitize=undefined -fno-omit-frame-pointer"
 118              UBSAN_OPTIONS: "print_stacktrace=1:halt_on_error=1"
 119              BENCH: no
 120    brew_script:
 121      - brew update
 122      - brew install automake libtool gcc@11
 123    << : *MERGE_BASE
 124    test_script:
 125      - ./ci/cirrus.sh
 126    << : *CAT_LOGS
 127  
 128  task:
 129    name: "s390x (big-endian): Linux (Debian stable, QEMU)"
 130    container:
 131      dockerfile: ci/linux-debian.Dockerfile
 132      cpu: 4
 133      memory: 2G
 134    env:
 135      EXEC_CMD: qemu-s390x
 136      HOST: s390x-linux-gnu
 137      BUILD:
 138    << : *MERGE_BASE
 139    test_script:
 140      - ./ci/cirrus.sh
 141    << : *CAT_LOGS
 142  
 143  task:
 144    name: "x86_64-w64-mingw32: Linux (Debian stable, Wine)"
 145    container:
 146      dockerfile: ci/linux-debian.Dockerfile
 147      cpu: 4
 148      memory: 2G
 149    env:
 150      EXEC_CMD: wine
 151      EXEC_EXT: .exe
 152      HOST: x86_64-w64-mingw32
 153      BUILD:
 154    << : *MERGE_BASE
 155    test_script:
 156      - ./ci/cirrus.sh
 157    << : *CAT_LOGS
 158