mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-18 15:49:37 +08:00
Update CI scripts.
This commit is contained in:
parent
ee9d57347b
commit
2265242aa1
@ -13,7 +13,7 @@
|
||||
- if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen"
|
||||
- if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen"
|
||||
cache:
|
||||
key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-BUILD"
|
||||
key: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG-BUILD"
|
||||
paths:
|
||||
- ${EIGEN_CI_BUILDDIR}/
|
||||
|
||||
@ -46,6 +46,11 @@ build:linux:cross:x86-64:gcc-10:default:
|
||||
EIGEN_CI_CROSS_C_COMPILER: x86_64-linux-gnu-gcc-10
|
||||
EIGEN_CI_CROSS_CXX_COMPILER: x86_64-linux-gnu-g++-10
|
||||
|
||||
build:linux:cross:x86-64:gcc-10:avx:
|
||||
extends: build:linux:cross:x86-64:gcc-10:default
|
||||
variables:
|
||||
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"
|
||||
|
||||
build:linux:cross:x86-64:gcc-10:avx2:
|
||||
extends: build:linux:cross:x86-64:gcc-10:default
|
||||
variables:
|
||||
@ -76,6 +81,11 @@ build:linux:cross:x86-64:clang-12:default:
|
||||
EIGEN_CI_CXX_COMPILER: clang++-12
|
||||
EIGEN_CI_CROSS_INSTALL: g++-10-x86-64-linux-gnu clang-12
|
||||
|
||||
build:linux:cross:x86-64:clang-12:avx:
|
||||
extends: build:linux:cross:x86-64:clang-12:default
|
||||
variables:
|
||||
EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX=on"
|
||||
|
||||
build:linux:cross:x86-64:clang-12:avx2:
|
||||
extends: build:linux:cross:x86-64:clang-12:default
|
||||
variables:
|
||||
|
@ -6,7 +6,7 @@
|
||||
EIGEN_CI_BUILD_TARGET: buildtests
|
||||
# Reduce overall build size and compile time.
|
||||
# Note: /d2ReducedOptimizeHugeFunctions is only available in VS 2019.
|
||||
EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/d2ReducedOptimizeHugeFunctions /DEIGEN_STRONG_INLINE=inline /Os"
|
||||
EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/d2ReducedOptimizeHugeFunctions;/DEIGEN_STRONG_INLINE=inline;/Os"
|
||||
script:
|
||||
- ./ci/scripts/build.windows.script.ps1
|
||||
tags:
|
||||
@ -29,7 +29,7 @@ build:windows:x86-64:msvc-14.16:default:
|
||||
variables:
|
||||
EIGEN_CI_MSVC_VER: "14.16"
|
||||
# Override to remove unsupported /d2ReducedOptimizeHugeFunctions.
|
||||
EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline /Os"
|
||||
EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline;/Os"
|
||||
|
||||
# MSVC 14.29 (VS 2019)
|
||||
build:windows:x86-64:msvc-14.29:default:
|
||||
@ -51,14 +51,11 @@ build:windows:x86-64:msvc-14.29:avx512dq:
|
||||
.build:windows:cuda:
|
||||
extends: .build:windows
|
||||
variables:
|
||||
# Addtional flags passed to the cuda compiler.
|
||||
EIGEN_CI_CUDA_CXX_FLAGS: ""
|
||||
# Compute architectures present in the GitLab CI runners.
|
||||
EIGEN_CI_CUDA_COMPUTE_ARCH: "50;75"
|
||||
EIGEN_CI_BUILD_TARGET: buildtests_gpu
|
||||
EIGEN_CI_ADDITIONAL_ARGS:
|
||||
-DEIGEN_TEST_CUDA=on
|
||||
-DEIGEN_CUDA_CXX_FLAGS="${EIGEN_CI_CUDA_CXX_FLAGS}"
|
||||
-DEIGEN_CUDA_COMPUTE_ARCH=${EIGEN_CI_CUDA_COMPUTE_ARCH}
|
||||
tags:
|
||||
- eigen-runner
|
||||
@ -66,16 +63,17 @@ build:windows:x86-64:msvc-14.29:avx512dq:
|
||||
- x86-64
|
||||
- cuda
|
||||
|
||||
# MSVC 14.16 + CUDA 9.2
|
||||
build:windows:x86-64:cuda-9.2:msvc-14.16:
|
||||
extends: .build:windows:cuda
|
||||
variables:
|
||||
# CUDA 9.2 doesn't support sm_75.
|
||||
EIGEN_CI_CUDA_COMPUTE_ARCH: "50;70"
|
||||
# CUDA 9.2 only supports up to VS 2017.
|
||||
EIGEN_CI_MSVC_VER: "14.16"
|
||||
EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline /Os"
|
||||
EIGEN_CI_BEFORE_SCRIPT: $$env:CUDA_PATH=$$env:CUDA_PATH_V9_2
|
||||
# The CUDA 9.2 compiler crashes with an internal error.
|
||||
# # MSVC 14.16 + CUDA 9.2
|
||||
# build:windows:x86-64:cuda-9.2:msvc-14.16:
|
||||
# extends: .build:windows:cuda
|
||||
# variables:
|
||||
# # CUDA 9.2 doesn't support sm_75.
|
||||
# EIGEN_CI_CUDA_COMPUTE_ARCH: "50;70"
|
||||
# # CUDA 9.2 only supports up to VS 2017.
|
||||
# EIGEN_CI_MSVC_VER: "14.16"
|
||||
# EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline;/Os"
|
||||
# EIGEN_CI_BEFORE_SCRIPT: $$env:CUDA_PATH=$$env:CUDA_PATH_V9_2
|
||||
|
||||
# MSVC 14.29 + CUDA 10.2
|
||||
build:windows:x86-64:cuda-10.2:msvc-14.29:
|
||||
|
@ -17,7 +17,7 @@
|
||||
# Call script in current shell - it sets up some environment variables.
|
||||
- . ci/scripts/common.linux.before_script.sh
|
||||
artifacts:
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG"
|
||||
name: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_SLUG"
|
||||
paths:
|
||||
- ${EIGEN_CI_BUILDDIR}/
|
||||
expire_in: 5 days
|
||||
@ -32,7 +32,7 @@
|
||||
before_script:
|
||||
- . ci/scripts/common.windows.before_script.ps1
|
||||
artifacts:
|
||||
name: "$CI_JOB_NAME-$CI_COMMIT_REF_NAME"
|
||||
name: "$CI_JOB_NAME_SLUG-$CI_COMMIT_REF_NAME"
|
||||
paths:
|
||||
- ${EIGEN_CI_BUILDDIR}/
|
||||
expire_in: 5 days
|
||||
|
@ -12,7 +12,9 @@ cmd.exe /c "`"${VS_INSTALL_DIR}\VC\Auxiliary\Build\vcvarsall.bat`" $EIGEN_CI_MSV
|
||||
|
||||
# Create and enter build directory.
|
||||
$rootdir = Get-Location
|
||||
mkdir $EIGEN_CI_BUILDDIR
|
||||
if (-Not (Test-Path ${EIGEN_CI_BUILDDIR})) {
|
||||
mkdir $EIGEN_CI_BUILDDIR
|
||||
}
|
||||
cd $EIGEN_CI_BUILDDIR
|
||||
|
||||
# We need to split EIGEN_CI_ADDITIONAL_ARGS, otherwise they are interpretted
|
||||
|
@ -1,7 +1,8 @@
|
||||
echo "Running ${CI_JOB_NAME}"
|
||||
|
||||
# Print configuration variables.
|
||||
Get-Variable | findstr EIGEN
|
||||
Get-Variable EIGEN* | Format-Table -Wrap
|
||||
Get-Variable CMAKE* | Format-Table -Wrap
|
||||
|
||||
# Run a custom before-script command.
|
||||
if ("${EIGEN_CI_BEFORE_SCRIPT}") { Invoke-Expression -Command "${EIGEN_CI_BEFORE_SCRIPT}" }
|
||||
|
@ -55,6 +55,22 @@ test:linux:x86-64:gcc-10:default:unsupported:
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Unsupported
|
||||
|
||||
.test:linux:x86-64:gcc-10:avx:
|
||||
extends: .test:linux:x86-64
|
||||
needs: [ build:linux:cross:x86-64:gcc-10:avx ]
|
||||
variables:
|
||||
EIGEN_CI_INSTALL: g++-10
|
||||
|
||||
test:linux:x86-64:gcc-10:avx:official:
|
||||
extends: .test:linux:x86-64:gcc-10:avx
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Official
|
||||
|
||||
test:linux:x86-64:gcc-10:avx:unsupported:
|
||||
extends: .test:linux:x86-64:gcc-10:avx
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Unsupported
|
||||
|
||||
.test:linux:x86-64:gcc-10:avx2:
|
||||
extends: .test:linux:x86-64
|
||||
needs: [ build:linux:cross:x86-64:gcc-10:avx2 ]
|
||||
@ -127,6 +143,22 @@ test:linux:x86-64:clang-12:default:unsupported:
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Unsupported
|
||||
|
||||
.test:linux:x86-64:clang-12:avx:
|
||||
extends: .test:linux:x86-64
|
||||
needs: [ build:linux:cross:x86-64:clang-12:avx ]
|
||||
variables:
|
||||
EIGEN_CI_INSTALL: clang-12
|
||||
|
||||
test:linux:x86-64:clang-12:avx:official:
|
||||
extends: .test:linux:x86-64:clang-12:avx
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Official
|
||||
|
||||
test:linux:x86-64:clang-12:avx:unsupported:
|
||||
extends: .test:linux:x86-64:clang-12:avx
|
||||
variables:
|
||||
EIGEN_CI_TEST_LABEL: Unsupported
|
||||
|
||||
.test:linux:x86-64:clang-12:avx2:
|
||||
extends: .test:linux:x86-64
|
||||
needs: [ build:linux:cross:x86-64:clang-12:avx2 ]
|
||||
|
@ -90,10 +90,11 @@ test:windows:x86-64:msvc-14.29:avx512dq:unsupported:
|
||||
- x86-64
|
||||
- cuda
|
||||
|
||||
# MSVC 14.16 + CUDA 9.2
|
||||
test:windows:x86-64:cuda-9.2:msvc-14.16:
|
||||
extends: .test:windows:cuda
|
||||
needs: [ build:windows:x86-64:cuda-9.2:msvc-14.16 ]
|
||||
# The CUDA 9.2 compiler crashes with an internal error.
|
||||
# # MSVC 14.16 + CUDA 9.2
|
||||
# test:windows:x86-64:cuda-9.2:msvc-14.16:
|
||||
# extends: .test:windows:cuda
|
||||
# needs: [ build:windows:x86-64:cuda-9.2:msvc-14.16 ]
|
||||
|
||||
# MSVC 14.29 + CUDA 10.2
|
||||
test:windows:x86-64:cuda-10.2:msvc-14.29:
|
||||
|
65
scripts/ci_cmake_msvc.ps1
Normal file
65
scripts/ci_cmake_msvc.ps1
Normal file
@ -0,0 +1,65 @@
|
||||
# Powershell script to set up MSVC cmake builds that mirror the CI. Useful for reproducing issues.
|
||||
|
||||
param ($EIGEN_CI_ROOTDIR,
|
||||
$EIGEN_CI_BUILDDIR,
|
||||
$EIGEN_CI_BUILD_TARGET,
|
||||
$EIGEN_CI_ADDITIONAL_ARGS,
|
||||
$EIGEN_CI_BEFORE_SCRIPT,
|
||||
$EIGEN_CI_CMAKE_GENERATOR,
|
||||
$EIGEN_CI_MSVC_ARCH,
|
||||
$EIGEN_CI_MSVC_VER,
|
||||
$EIGEN_CI_TEST_CUSTOM_CXX_FLAGS
|
||||
)
|
||||
|
||||
function Get-ScriptDirectory { Split-Path $MyInvocation.ScriptName }
|
||||
|
||||
# Set defaults if not already set.
|
||||
IF (!$EIGEN_CI_ROOTDIR) { $EIGEN_CI_ROOTDIR = Join-Path (Get-ScriptDirectory) '..' }
|
||||
IF (!$EIGEN_CI_BUILDDIR) { $EIGEN_CI_BUILDDIR = ".build" }
|
||||
IF (!$EIGEN_CI_BUILD_TARGET) { $EIGEN_CI_BUILD_TARGET = "buildtests" }
|
||||
IF (!$EIGEN_CI_ADDITIONAL_ARGS) { $EIGEN_CI_ADDITIONAL_ARGS = "" }
|
||||
IF (!$EIGEN_CI_BEFORE_SCRIPT) { $EIGEN_CI_BEFORE_SCRIPT = "" }
|
||||
IF (!$EIGEN_CI_CMAKE_GENERATOR) { $EIGEN_CI_CMAKE_GENERATOR = "Ninja" }
|
||||
IF (!$EIGEN_CI_MSVC_ARCH) { $EIGEN_CI_MSVC_ARCH = "x64" }
|
||||
IF (!$EIGEN_CI_MSVC_VER) { $EIGEN_CI_MSVC_VER = "14.29" }
|
||||
IF (!$EIGEN_CI_TEST_CUSTOM_CXX_FLAGS) { $EIGEN_CI_TEST_CUSTOM_CXX_FLAGS = "/d2ReducedOptimizeHugeFunctions /DEIGEN_STRONG_INLINE=inline /Os" }
|
||||
|
||||
# Export variables into the global scope
|
||||
$global:EIGEN_CI_ROOTDIR = $EIGEN_CI_ROOTDIR
|
||||
$global:EIGEN_CI_BUILDDIR = $EIGEN_CI_BUILDDIR
|
||||
$global:EIGEN_CI_BUILD_TARGET = $EIGEN_CI_BUILD_TARGET
|
||||
$global:EIGEN_CI_ADDITIONAL_ARGS = $EIGEN_CI_ADDITIONAL_ARGS
|
||||
$global:EIGEN_CI_BEFORE_SCRIPT = $EIGEN_CI_BEFORE_SCRIPT
|
||||
$global:EIGEN_CI_CMAKE_GENERATOR = $EIGEN_CI_CMAKE_GENERATOR
|
||||
$global:EIGEN_CI_MSVC_ARCH = $EIGEN_CI_MSVC_ARCH
|
||||
$global:EIGEN_CI_MSVC_VER = $EIGEN_CI_MSVC_VER
|
||||
$global:EIGEN_CI_TEST_CUSTOM_CXX_FLAGS = $EIGEN_CI_TEST_CUSTOM_CXX_FLAGS
|
||||
|
||||
# Print configuration variables.
|
||||
Get-Variable | findstr EIGEN
|
||||
|
||||
|
||||
# Run any setup scripts.
|
||||
if ("${EIGEN_CI_BEFORE_SCRIPT}") { Invoke-Expression -Command "${EIGEN_CI_BEFORE_SCRIPT}" }
|
||||
|
||||
# Find Visual Studio installation directory.
|
||||
$global:VS_INSTALL_DIR = &"${Env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath
|
||||
# Run VCVarsAll.bat incitialization script and extract environment variables.
|
||||
# http://allen-mack.blogspot.com/2008/03/replace-visual-studio-command-prompt.html
|
||||
cmd.exe /c "`"${VS_INSTALL_DIR}\VC\Auxiliary\Build\vcvarsall.bat`" $EIGEN_CI_MSVC_ARCH -vcvars_ver=$EIGEN_CI_MSVC_VER & set" | foreach { if ($_ -match "=") { $v = $_.split("="); set-item -force -path "ENV:\$($v[0])" -value "$($v[1])" } }
|
||||
|
||||
# Create and change to the build directory.
|
||||
IF (-Not (Test-Path -Path $EIGEN_CI_BUILDDIR) ) { mkdir $EIGEN_CI_BUILDDIR }
|
||||
cd $EIGEN_CI_BUILDDIR
|
||||
|
||||
# We need to split EIGEN_CI_ADDITIONAL_ARGS, otherwise they are interpretted
|
||||
# as a single argument. Split by space, unless double-quoted.
|
||||
$split_args = [regex]::Split(${EIGEN_CI_ADDITIONAL_ARGS}, ' (?=(?:[^"]|"[^"]*")*$)' )
|
||||
cmake -G "${EIGEN_CI_CMAKE_GENERATOR}" -DCMAKE_BUILD_TYPE=MinSizeRel -DEIGEN_TEST_CUSTOM_CXX_FLAGS="${EIGEN_CI_TEST_CUSTOM_CXX_FLAGS}" ${split_args} "${EIGEN_CI_ROOTDIR}"
|
||||
|
||||
IF ($EIGEN_CI_BUILD_TARGET) {
|
||||
# Windows builds sometimes fail due heap errors. In that case, try
|
||||
# building the rest, then try to build again with a single thread.
|
||||
cmake --build . --target $EIGEN_CI_BUILD_TARGET -- -k0 || cmake --build . --target $EIGEN_CI_BUILD_TARGET -- -k0 -j1
|
||||
}
|
||||
|
31
scripts/ci_cmake_msvc_cuda.ps1
Normal file
31
scripts/ci_cmake_msvc_cuda.ps1
Normal file
@ -0,0 +1,31 @@
|
||||
# Powershell script to set up MSVC CUDA cmake builds that mirror the CI. Useful for reproducing issues.
|
||||
|
||||
param ($EIGEN_CI_ROOTDIR,
|
||||
$EIGEN_CI_BUILDDIR,
|
||||
$EIGEN_CI_BUILD_TARGET,
|
||||
$EIGEN_CI_ADDITIONAL_ARGS,
|
||||
$EIGEN_CI_BEFORE_SCRIPT,
|
||||
$EIGEN_CI_CMAKE_GENERATOR,
|
||||
$EIGEN_CI_MSVC_ARCH,
|
||||
$EIGEN_CI_MSVC_VER,
|
||||
$EIGEN_CI_TEST_CUSTOM_CXX_FLAGS,
|
||||
|
||||
$EIGEN_CI_CUDA_CXX_FLAGS,
|
||||
$EIGEN_CI_CUDA_COMPUTE_ARCH
|
||||
)
|
||||
|
||||
# Set defaults if not already set.
|
||||
IF (!$EIGEN_CI_CUDA_CXX_FLAGS) { $EIGEN_CI_CUDA_CXX_FLAGS = "" }
|
||||
IF (!$EIGEN_CI_CUDA_COMPUTE_ARCH) { $EIGEN_CI_CUDA_COMPUTE_ARCH = "50;70" }
|
||||
IF (!$EIGEN_CI_BUILD_TARGET) { $EIGEN_CI_BUILD_TARGET = "buildtests_gpu" }
|
||||
IF (!$EIGEN_CI_ADDITIONAL_ARGS) { $EIGEN_CI_ADDITIONAL_ARGS = '-DCMAKE_CUDA_COMPILER=nvcc.exe -DCMAKE_CUDA_SEPARABLE_COMPILATION=OFF -DEIGEN_TEST_CUDA=on -DEIGEN_CUDA_CXX_FLAGS='+${EIGEN_CI_CUDA_CXX_FLAGS}+' -DEIGEN_CUDA_COMPUTE_ARCH='+${EIGEN_CI_CUDA_COMPUTE_ARCH} }
|
||||
|
||||
|
||||
# Export variables into the global scope
|
||||
$global:EIGEN_CI_CUDA_CXX_FLAGS = $EIGEN_CI_CUDA_CXX_FLAGS
|
||||
$global:EIGEN_CI_CUDA_COMPUTE_ARCH = $EIGEN_CI_CUDA_COMPUTE_ARCH
|
||||
|
||||
# Call the generic msvc setup scripts.
|
||||
function Get-ScriptDirectory { Split-Path $MyInvocation.ScriptName }
|
||||
$script = Join-Path (Get-ScriptDirectory) 'ci_cmake_msvc.ps1'
|
||||
& $script $EIGEN_CI_ROOTDIR $EIGEN_CI_BUILDDIR $EIGEN_CI_BUILD_TARGET $EIGEN_CI_ADDITIONAL_ARGS $EIGEN_CI_BEFORE_SCRIPT $EIGEN_CI_CMAKE_GENERATOR $EIGEN_CI_MSVC_ARCH $EIGEN_CI_MSVC_VER $EIGEN_CI_TEST_CUSTOM_CXX_FLAGS
|
Loading…
x
Reference in New Issue
Block a user