New CI infrastructure, including AArch64 runners

This commit is contained in:
David Tellenbach 2020-09-11 18:11:49 +00:00
parent 5328c9be43
commit adc861cabd
7 changed files with 512 additions and 265 deletions

2
.gitignore vendored
View File

@ -35,4 +35,4 @@ lapack/reference
.*project
.settings
Makefile
!ci/build-tests.gitlab-ci.yml
!ci/build.gitlab-ci.yml

View File

@ -1,7 +1,7 @@
# This file is part of Eigen, a lightweight C++ template library
# for linear algebra.
#
# Copyright (c) 2020, Arm Limited and Contributors
# Copyright (C) 2020 Arm Ltd. and Contributors
#
# This Source Code Form is subject to the terms of the Mozilla
# Public License v. 2.0. If a copy of the MPL was not distributed
@ -10,13 +10,11 @@
stages:
- build
- test
- doc
variables:
BUILDDIR: builddir
EIGEN_CI_CMAKE_GENEATOR: "Ninja"
EIGEN_CI_TESTSUITE_SIZE: 15
include:
- "/ci/build-tests.gitlab-ci.yml"
- "/ci/run-tests.gitlab-ci.yml"
- "/ci/build.gitlab-ci.yml"
- "/ci/test.gitlab-ci.yml"

56
ci/README.md Normal file
View File

@ -0,0 +1,56 @@
## Eigen CI infrastructure
Eigen's CI infrastructure uses two stages: A `build` stage to build the unit-test
suite and a `test` stage to run the unit-tests.
### Build Stage
The build stage consists of the following jobs:
| Job Name | Arch | OS | Compiler | C++11 |
|------------------------------------------|-----------|----------------|------------|---------|
| `build:x86-64:linux:gcc-4.8:cxx11-off` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `Off` |
| `build:x86-64:linux:gcc-4.8:cxx11-on` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `On` |
| `build:x86-64:linux:gcc-9:cxx11-off` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `Off` |
| `build:x86-64:linux:gcc-9:cxx11-on` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `On` |
| `build:x86-64:linux:gcc-10:cxx11-off` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `Off` |
| `build:x86-64:linux:gcc-10:cxx11-on` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `On` |
| `build:x86-64:linux:clang-10:cxx11-off` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `Off` |
| `build:x86-64:linux:clang-10:cxx11-on` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `On` |
| `build:aarch64:linux:gcc-10:cxx11-off` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `Off` |
| `build:aarch64:linux:gcc-10:cxx11-on` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `On` |
| `build:aarch64:linux:clang-10:cxx11-off` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `Off` |
| `build:aarch64:linux:clang-10:cxx11-on` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `On` |
### Test stage
In principle every build-job has a corresponding test-job, however testing supported and unsupported modules is divided into separate jobs. The test jobs in detail:
### Job dependecies
| Job Name | Arch | OS | Compiler | C++11 | Module
|-----------------------------------------------------|-----------|----------------|------------|---------|--------
| `test:x86-64:linux:gcc-4.8:cxx11-off:official` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `Off` | `Official`
| `test:x86-64:linux:gcc-4.8:cxx11-off:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `Off` | `Unsupported`
| `test:x86-64:linux:gcc-4.8:cxx11-on:official` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `On` | `Official`
| `test:x86-64:linux:gcc-4.8:cxx11-on:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-4.8` | `On` | `Unsupported`
| `test:x86-64:linux:gcc-9:cxx11-off:official` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `Off` | `Official`
| `test:x86-64:linux:gcc-9:cxx11-off:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `Off` | `Unsupported`
| `test:x86-64:linux:gcc-9:cxx11-on:official` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `On` | `Official`
| `test:x86-64:linux:gcc-9:cxx11-on:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-9` | `On` | `Unsupported`
| `test:x86-64:linux:gcc-10:cxx11-off:official` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `Off` | `Official`
| `test:x86-64:linux:gcc-10:cxx11-off:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `Off` | `Unsupported`
| `test:x86-64:linux:gcc-10:cxx11-on:official` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `On` | `Official`
| `test:x86-64:linux:gcc-10:cxx11-on:unsupported` | `x86-64` | `Ubuntu 18.04` | `GCC-10` | `On` | `Unsupported`
| `test:x86-64:linux:clang-10:cxx11-off:official` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `Off` | `Official`
| `test:x86-64:linux:clang-10:cxx11-off:unsupported` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `Off` | `Unsupported`
| `test:x86-64:linux:clang-10:cxx11-on:official` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `On` | `Official`
| `test:x86-64:linux:clang-10:cxx11-on:unsupported` | `x86-64` | `Ubuntu 18.04` | `Clang-10` | `On` | `Unsupported`
| `test:aarch64:linux:gcc-10:cxx11-off:official` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `Off` | `Official`
| `test:aarch64:linux:gcc-10:cxx11-off:unsupported` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `Off` | `Unsupported`
| `test:aarch64:linux:gcc-10:cxx11-on:official` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `On` | `Official`
| `test:aarch64:linux:gcc-10:cxx11-on:unsupported` | `AArch64` | `Ubuntu 18.04` | `GCC-10` | `On` | `Unsupported`
| `test:aarch64:linux:clang-10:cxx11-off:official` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `Off` | `Official`
| `test:aarch64:linux:clang-10:cxx11-off:unsupported` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `Off` | `Unsupported`
| `test:aarch64:linux:clang-10:cxx11-on:official` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `On` | `Official`
| `test:aarch64:linux:clang-10:cxx11-on:unsupported` | `AArch64` | `Ubuntu 18.04` | `Clang-10` | `On` | `Unsupported`

View File

@ -1,131 +0,0 @@
.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"

163
ci/build.gitlab-ci.yml Normal file
View File

@ -0,0 +1,163 @@
.build:linux: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}
- 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} ..
- cmake --build . --target buildtests
artifacts:
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
paths:
- ${BUILDDIR}/
expire_in: 5 days
only:
- schedules
######## x86-64 ################################################################
# GCC-4.8 (the oldest compiler we support)
build:x86-64:linux:gcc-4.8:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-4.8"
EIGEN_CI_CC_COMPILER: "gcc-4.8"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- x86-64
build:x86-64:linux:gcc-4.8:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-4.8"
EIGEN_CI_CC_COMPILER: "gcc-4.8"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- x86-64
# GCC-9
build:x86-64:linux:gcc-9:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-9"
EIGEN_CI_CC_COMPILER: "gcc-9"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- x86-64
build:x86-64:linux:gcc-9:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-9"
EIGEN_CI_CC_COMPILER: "gcc-9"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- x86-64
# GCC-10
build:x86-64:linux:gcc-10:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-10"
EIGEN_CI_CC_COMPILER: "gcc-10"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- x86-64
build:x86-64:linux:gcc-10:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-10"
EIGEN_CI_CC_COMPILER: "gcc-10"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- x86-64
# Clang-10
build:x86-64:linux:clang-10:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "clang++-10"
EIGEN_CI_CC_COMPILER: "clang-10"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- x86-64
build:x86-64:linux:clang-10:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "clang++-10"
EIGEN_CI_CC_COMPILER: "clang-10"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- x86-64
######## AArch64 ###############################################################
# GCC-10
build:aarch64:linux:gcc-10:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-10"
EIGEN_CI_CC_COMPILER: "gcc-10"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- aarch64
build:aarch64:linux:gcc-10:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "g++-10"
EIGEN_CI_CC_COMPILER: "gcc-10"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- aarch64
# Clang-10
build:aarch64:linux:clang-10:cxx11-off:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "clang++-10"
EIGEN_CI_CC_COMPILER: "clang-10"
EIGEN_TEST_CXX11: "off"
tags:
- eigen-runner
- linux
- aarch64
build:aarch64:linux:clang-10:cxx11-on:
extends: .build:linux:base
variables:
EIGEN_CI_CXX_COMPILER: "clang++-10"
EIGEN_CI_CC_COMPILER: "clang-10"
EIGEN_TEST_CXX11: "on"
tags:
- eigen-runner
- linux
- aarch64

View File

@ -1,128 +0,0 @@
.run_tests:
allow_failure: true
stage: test
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 xsltproc
script:
- echo "cd ${BUILDDIR} && ctest --output-on-failure --no-compress-output --build-no-clean -T test"
- cd ${BUILDDIR} && ctest --output-on-failure --no-compress-output --build-no-clean -T test
after_script:
- apt-get update -y
- apt-get install --no-install-recommends -y xsltproc
- cd ${BUILDDIR}
- xsltproc ../ci/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > "JUnitTestResults_$CI_JOB_ID.xml"
artifacts:
reports:
junit:
- ${BUILDDIR}/JUnitTestResults_$CI_JOB_ID.xml
expire_in: 5 days
########################## Nightly running jobs ################################
# GCC 4.8
run-tests-g++-4.8-cxx11-on:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-4.8
EIGEN_CI_CC_COMPILER: gcc-4.8
needs: [ "build-tests-g++-4.8-cxx11-on" ]
tags:
- eigen-runner
- x86
- linux
run-tests-g++-4.8-cxx11-off:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-4.8
EIGEN_CI_CC_COMPILER: gcc-4.8
needs: [ "build-tests-g++-4.8-cxx11-off" ]
tags:
- eigen-runner
- x86
- linux
# Clang 10
run-tests-clang++-10-cxx11-on:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build-tests-clang++-10-cxx11-on" ]
tags:
- eigen-runner
- x86
- linux
run-tests-clang++-10-cxx11-off:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build-tests-clang++-10-cxx11-off" ]
tags:
- eigen-runner
- x86
- linux
# GCC 10
run-tests-g++-10-cxx11-on:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build-tests-g++-10-cxx11-on" ]
tags:
- eigen-runner
- x86
- linux
run-tests-g++-10-cxx11-off:
only:
- schedules
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build-tests-g++-10-cxx11-off" ]
tags:
- eigen-runner
- x86
- linux
########################### Merge request jobs #################################
# GCC 10
run-tests-g++-9-cxx11-on-mr:
only:
- merge_requests
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-9
EIGEN_CI_CC_COMPILER: gcc-9
dependencies:
- build-tests-g++-9-cxx11-on-mr
run-tests-g++-9-cxx11-off-mr:
only:
- merge_requests
extends: .run_tests
variables:
EIGEN_CI_CXX_COMPILER: g++-9
EIGEN_CI_CC_COMPILER: gcc-9
dependencies:
- build-tests-g++-9-cxx11-off-mr

289
ci/test.gitlab-ci.yml Normal file
View File

@ -0,0 +1,289 @@
.test:linux:base:
stage: test
image: ubuntu:18.04
retry: 2
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 xsltproc
script:
- export CXX=${EIGEN_CI_CXX_COMPILER}
- export CC=${EIGEN_CI_CC_COMPILER}
- cd ${BUILDDIR} && ctest --output-on-failure --no-compress-output
--build-no-clean -T test -L ${EIGEN_CI_TEST_LABEL}
after_script:
- apt-get update -y
- apt-get install --no-install-recommends -y xsltproc
- cd ${BUILDDIR}
- xsltproc ../ci/CTest2JUnit.xsl Testing/`head -n 1 < Testing/TAG`/Test.xml > "JUnitTestResults_$CI_JOB_ID.xml"
artifacts:
reports:
junit:
- ${BUILDDIR}/JUnitTestResults_$CI_JOB_ID.xml
expire_in: 5 days
allow_failure: true
only:
- schedules
##### x86-64 ###################################################################
# GCC-4.8
.test:x86-64:linux:gcc-4.8:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-4.8
EIGEN_CI_CC_COMPILER: gcc-4.8
needs: [ "build:x86-64:linux:gcc-4.8:cxx11-off" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-4.8:cxx11-off:official:
extends: .test:x86-64:linux:gcc-4.8:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-4.8:cxx11-off:unsupported:
extends: .test:x86-64:linux:gcc-4.8:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:x86-64:linux:gcc-4.8:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-4.8
EIGEN_CI_CC_COMPILER: gcc-4.8
needs: [ "build:x86-64:linux:gcc-4.8:cxx11-on" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-4.8:cxx11-on:official:
extends: .test:x86-64:linux:gcc-4.8:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-4.8:cxx11-on:unsupported:
extends: .test:x86-64:linux:gcc-4.8:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
# GCC-9
.test:x86-64:linux:gcc-9:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-9
EIGEN_CI_CC_COMPILER: gcc-9
needs: [ "build:x86-64:linux:gcc-9:cxx11-off" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-9:cxx11-off:official:
extends: .test:x86-64:linux:gcc-9:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-9:cxx11-off:unsupported:
extends: .test:x86-64:linux:gcc-9:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:x86-64:linux:gcc-9:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-9
EIGEN_CI_CC_COMPILER: gcc-9
needs: [ "build:x86-64:linux:gcc-9:cxx11-on" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-9:cxx11-on:official:
extends: .test:x86-64:linux:gcc-9:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-9:cxx11-on:unsupported:
extends: .test:x86-64:linux:gcc-9:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
# GCC-10
.test:x86-64:linux:gcc-10:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build:x86-64:linux:gcc-10:cxx11-off" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-10:cxx11-off:official:
extends: .test:x86-64:linux:gcc-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-10:cxx11-off:unsupported:
extends: .test:x86-64:linux:gcc-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:x86-64:linux:gcc-10:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build:x86-64:linux:gcc-10:cxx11-on" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:gcc-10:cxx11-on:official:
extends: .test:x86-64:linux:gcc-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:gcc-10:cxx11-on:unsupported:
extends: .test:x86-64:linux:gcc-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
# Clang 10
.test:x86-64:linux:clang-10:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build:x86-64:linux:clang-10:cxx11-off" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:clang-10:cxx11-off:official:
extends: .test:x86-64:linux:clang-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:clang-10:cxx11-off:unsupported:
extends: .test:x86-64:linux:clang-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:x86-64:linux:clang-10:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build:x86-64:linux:clang-10:cxx11-on" ]
tags:
- eigen-runner
- linux
- x86-64
test:x86-64:linux:clang-10:cxx11-on:official:
extends: .test:x86-64:linux:clang-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:x86-64:linux:clang-10:cxx11-on:unsupported:
extends: .test:x86-64:linux:clang-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
##### AArch64 ##################################################################
# GCC-10
.test:aarch64:linux:gcc-10:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build:aarch64:linux:gcc-10:cxx11-off" ]
tags:
- eigen-runner
- linux
- aarch64
test:aarch64:linux:gcc-10:cxx11-off:official:
extends: .test:aarch64:linux:gcc-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:aarch64:linux:gcc-10:cxx11-off:unsupported:
extends: .test:aarch64:linux:gcc-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:aarch64:linux:gcc-10:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: g++-10
EIGEN_CI_CC_COMPILER: gcc-10
needs: [ "build:aarch64:linux:gcc-10:cxx11-on" ]
tags:
- eigen-runner
- linux
- aarch64
test:aarch64:linux:gcc-10:cxx11-on:official:
extends: .test:aarch64:linux:gcc-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:aarch64:linux:gcc-10:cxx11-on:unsupported:
extends: .test:aarch64:linux:gcc-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
# Clang 10
.test:aarch64:linux:clang-10:cxx11-off:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build:aarch64:linux:clang-10:cxx11-off" ]
tags:
- eigen-runner
- linux
- aarch64
test:aarch64:linux:clang-10:cxx11-off:official:
extends: .test:aarch64:linux:clang-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:aarch64:linux:clang-10:cxx11-off:unsupported:
extends: .test:aarch64:linux:clang-10:cxx11-off
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"
.test:aarch64:linux:clang-10:cxx11-on:
extends: .test:linux:base
variables:
EIGEN_CI_CXX_COMPILER: clang++-10
EIGEN_CI_CC_COMPILER: clang-10
needs: [ "build:aarch64:linux:clang-10:cxx11-on" ]
tags:
- eigen-runner
- linux
- aarch64
test:aarch64:linux:clang-10:cxx11-on:official:
extends: .test:aarch64:linux:clang-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Official"
test:aarch64:linux:clang-10:cxx11-on:unsupported:
extends: .test:aarch64:linux:clang-10:cxx11-on
variables:
EIGEN_CI_TEST_LABEL: "Unsupported"