| # This file is part of Eigen, a lightweight C++ template library |
| # for linear algebra. |
| # |
| # Copyright (c) 2020, Arm Limited 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 |
| # with this file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| |
| stages: |
| - build |
| - test |
| - doc |
| |
| variables: |
| CMAKE_GENERATOR: "Ninja" |
| BUILDDIR: builddir |
| |
| .build-tests: |
| allow_failure: true |
| stage: build |
| image: fedora:31 |
| before_script: |
| - dnf -y install gcc-c++-9.2.1 cmake make ninja-build |
| script: |
| - cmake -B ${BUILDDIR} -DEIGEN_TEST_CXX11=${EIGEN_TEST_CXX11} |
| - cmake --build ${BUILDDIR} --target buildtests |
| cache: |
| key: "build-cache-cxx11-${EIGEN_TEST_CXX11}" |
| paths: |
| - ${BUILDDIR}/ |
| policy: push |
| artifacts: |
| name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME" |
| paths: |
| - ${BUILDDIR}/ |
| expire_in: 5 days |
| |
| .run_tests: |
| allow_failure: true |
| stage: test |
| image: fedora:31 |
| before_script: |
| - dnf -y install gcc-c++-9.2.1 cmake make ninja-build |
| script: |
| - cd ${BUILDDIR} && ctest --output-on-failure |
| cache: |
| key: "build-cache-cxx11-${EIGEN_TEST_CXX11}" |
| paths: |
| - ${BUILDDIR}/ |
| policy: pull |
| |
| build-test-cxx11-on: |
| extends: .build-tests |
| variables: |
| EIGEN_TEST_CXX11: "ON" |
| |
| build-test-cxx11-off: |
| extends: .build-tests |
| variables: |
| EIGEN_TEST_CXX11: "OFF" |
| |
| run-tests-cxx11-on: |
| extends: .run_tests |
| variables: |
| EIGEN_TEST_CXX11: "ON" |
| needs: ["build-test-cxx11-on"] |
| |
| run-tests-cxx11-off: |
| extends: .run_tests |
| variables: |
| EIGEN_TEST_CXX11: "OFF" |
| needs: ["build-test-cxx11-off"] |
| |
| build-doc: |
| image: fedora:31 |
| only: |
| - schedules |
| stage: doc |
| before_script: |
| - dnf -y install gcc-c++-9.2.1 cmake make doxygen doxygen-latex |
| script: |
| - cmake -G "Unix Makefiles" -B ${BUILDDIR} -DCMAKE_BUILD_TYPE=Release |
| - cmake --build ${BUILDDIR} --target doc |
| artifacts: |
| name: "$CI_JOB_NAME-$CI_JOB_ID" |
| paths: |
| - ${BUILDDIR}/doc/html |
| expire_in: 2 days |
| needs: [] |