blob: e46efae4685bc1687b998e1f3e8e0ae0e1212ab6 [file]
# Base configuration for linux builds and tests.
# SPDX-FileCopyrightText: The Eigen Authors
# SPDX-License-Identifier: MPL-2.0
# Shared rule sets, referenced from concrete jobs via
# rules: !reference [.rules:<name>, rules]
# Centralizing them keeps the "what triggers this job?" decision in one place.
.rules:libeigen:all-tests:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
.rules:libeigen:gpu:
# Spelled out (rather than referencing .rules:libeigen:all-tests) to avoid
# a nested !reference, which GitLab CI has had inconsistent support for.
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/all-tests/"
- if: $CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_MERGE_REQUEST_LABELS =~ "/gpu-tests/"
.rules:libeigen:scheduled-or-web:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
.rules:libeigen:scheduled-or-web:default-branch:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
.common:linux:cross:
image: ubuntu:24.04
variables:
EIGEN_CI_TARGET_ARCH: ""
EIGEN_CI_ADDITIONAL_ARGS: ""
# If host matches target, use the following:
EIGEN_CI_C_COMPILER: ""
EIGEN_CI_CXX_COMPILER: ""
EIGEN_CI_INSTALL: "${EIGEN_CI_C_COMPILER} ${EIGEN_CI_CXX_COMPILER}"
# If host does not match the target, use the following:
EIGEN_CI_CROSS_TARGET_TRIPLE: ""
EIGEN_CI_CROSS_C_COMPILER: ${EIGEN_CI_C_COMPILER}
EIGEN_CI_CROSS_CXX_COMPILER: ${EIGEN_CI_CXX_COMPILER}
EIGEN_CI_CROSS_INSTALL: "${EIGEN_CI_CROSS_C_COMPILER} ${EIGEN_CI_CROSS_CXX_COMPILER}"
before_script:
# Call script in current shell - it sets up some environment variables.
- . ci/scripts/common.linux.before_script.sh
artifacts:
when: always
name: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG"
paths:
- ${EIGEN_CI_BUILDDIR}/
exclude:
- ${EIGEN_CI_BUILDDIR}/**/*.o
- ${EIGEN_CI_BUILDDIR}/**/*.a
- ${EIGEN_CI_BUILDDIR}/**/.ninja_log
- ${EIGEN_CI_BUILDDIR}/**/.ninja_deps
- ${EIGEN_CI_BUILDDIR}/**/CMakeFiles/*.dir/**
- ${EIGEN_CI_BUILDDIR}/.cmake/**
- ${EIGEN_CI_BUILDDIR}/**/Testing/Temporary/**
expire_in: 2 days
# Base configuration for Windows builds and tests.
.common:windows:
variables:
EIGEN_CI_MSVC_ARCH: x64
EIGEN_CI_MSVC_VER: "14.29"
EIGEN_CI_ADDITIONAL_ARGS: ""
EIGEN_CI_BEFORE_SCRIPT: ""
before_script:
- . ci/scripts/common.windows.before_script.ps1
artifacts:
when: always
name: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_NAME"
paths:
- ${EIGEN_CI_BUILDDIR}/
exclude:
- ${EIGEN_CI_BUILDDIR}/**/*.obj
- ${EIGEN_CI_BUILDDIR}/**/*.lib
- ${EIGEN_CI_BUILDDIR}/**/.ninja_log
- ${EIGEN_CI_BUILDDIR}/**/.ninja_deps
- ${EIGEN_CI_BUILDDIR}/**/CMakeFiles/*.dir/**
- ${EIGEN_CI_BUILDDIR}/.cmake/**
- ${EIGEN_CI_BUILDDIR}/**/Testing/Temporary/**
expire_in: 2 days