aboutsummaryrefslogtreecommitdiffhomepage
path: root/ci/build-tests.gitlab-ci.yml
blob: 2b69b2841f82140f7dbb9cb9a9639d94723e8134 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
.build-tests-base:
  stage: build
  image: ubuntu:18.04
  before_script:
    - apt-get update -y
    - apt-get install -y --no-install-recommends software-properties-common
    - add-apt-repository -y  ppa:ubuntu-toolchain-r/test
    - apt-get update
    - apt-get install --no-install-recommends -y ${EIGEN_CI_CXX_COMPILER} ${EIGEN_CI_CC_COMPILER} cmake ninja-build
  script:
    - mkdir -p ${BUILDDIR} && cd ${BUILDDIR}
    - echo "CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_SPLIT_TESTSUITE=${EIGEN_CI_TESTSUITE_SIZE} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} ${EIGEN_CI_ADDITIONAL_ARGS} .."
    - CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_SPLIT_TESTSUITE=${EIGEN_CI_TESTSUITE_SIZE} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} ${EIGEN_CI_ADDITIONAL_ARGS}..
    - echo "cmake --build . --target buildtestspart${EIGEN_CI_TESTSUITE_PART}"
    - cmake --build . --target buildtestspart${EIGEN_CI_TESTSUITE_PART}
  artifacts:
    name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
    paths:
      - ${BUILDDIR}/
    expire_in: 5 days

# Base for all build jobs building the whole testsuite in one job. Note that
# this cannot be run on GitLab's shared runners due to their timeout.
.build-tests-single-base:
  extends: .build-tests-base
  script:
    - mkdir -p ${BUILDDIR} && cd ${BUILDDIR}
    - echo "CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} ${EIGEN_CI_CXX_FLAGS} ${EIGEN_CI_ADDITIONAL_ARGS}.."
    - CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} ${EIGEN_CI_ADDITIONAL_ARGS}..
    - echo "cmake --build . --target buildtests"
    - cmake --build . --target buildtests
  tags:
    - eigen-runner
    - x86
    - linux
  only:
    - schedules

# Base for all build jobs using a splitted testsuite such that the job can be
# run on GitLab's own shared runners
.build-tests-split-base:
  extends: .build-tests-base
  script:
    - mkdir -p ${BUILDDIR} && cd ${BUILDDIR}
    - echo "CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_SPLIT_TESTSUITE=${EIGEN_CI_TESTSUITE_SIZE} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} ${EIGEN_CI_CXX_FLAGS} -DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On .."
    - CXX=${EIGEN_CI_CXX_COMPILER} CC=${EIGEN_CI_CC_COMPILER} cmake -G ${EIGEN_CI_CMAKE_GENEATOR} -DEIGEN_SPLIT_TESTSUITE=${EIGEN_CI_TESTSUITE_SIZE} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} -DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On ..
    - echo "cmake --build . --target buildtestspart${EIGEN_CI_TESTSUITE_PART}"
    - cmake --build . --target buildtestspart${EIGEN_CI_TESTSUITE_PART}
  only:
    - merge_requests

########################## Nightly running jobs ################################

# GCC 4.8
# This is the oldest GCC version we support
build-tests-g++-4.8-cxx11-on:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-4.8"
    EIGEN_CI_CC_COMPILER: "gcc-4.8"
    EIGEN_TEST_CXX11: "on"

build-tests-g++-4.8-cxx11-off:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-4.8"
    EIGEN_CI_CC_COMPILER: "gcc-4.8"
    EIGEN_TEST_CXX11: "off"

# Clang 10
build-tests-clang++-10-cxx11-on:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "clang++-10"
    EIGEN_CI_CC_COMPILER: "clang-10"
    EIGEN_TEST_CXX11: "on"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"

build-tests-clang++-10-cxx11-off:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "clang++-10"
    EIGEN_CI_CC_COMPILER: "clang-10"
    EIGEN_TEST_CXX11: "off"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"

# GCC 10
build-tests-g++-10-cxx11-off:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-10"
    EIGEN_CI_CC_COMPILER: "gcc-10"
    EIGEN_TEST_CXX11: "off"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"

build-tests-g++-10-cxx11-on:
  extends: .build-tests-single-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-10"
    EIGEN_CI_CC_COMPILER: "gcc-10"
    EIGEN_TEST_CXX11: "on"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"

########################### Merge request jobs #################################

# GCC 10
build-tests-g++-9-cxx11-on-mr:
  only:
    - merge_requests
  extends: .build-tests-split-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-9"
    EIGEN_CI_CC_COMPILER: "gcc-9"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"
  parallel:
    matrix:
      - EIGEN_CI_TESTSUITE_PART: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
        EIGEN_TEST_CXX11: "on"

build-tests-g++-9-cxx11-off-mr:
  only:
    - merge_requests
  extends: .build-tests-split-base
  variables:
    EIGEN_CI_CXX_COMPILER: "g++-9"
    EIGEN_CI_CC_COMPILER: "gcc-9"
    EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=On -DEIGEN_TEST_AVX2=On"
  parallel:
    matrix:
      - EIGEN_CI_TESTSUITE_PART: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
        EIGEN_TEST_CXX11: "off"