libeigen/eigen!2554 Co-authored-by: Rasmus Munk Larsen <rmlarsen@gmail.com>
88 lines
3.6 KiB
YAML
88 lines
3.6 KiB
YAML
# 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
|