forked from gsl-lite/gsl-lite
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
129 lines (109 loc) · 3.7 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
trigger:
- master
- mr/*
pr:
- master
resources:
repositories:
- repository: CImakeshift
type: github
name: mbeutel/CImakeshift
endpoint: gsl-lite
#ref: refs/tags/0.2
jobs:
- template: azure-pipelines/cmake.yml@CImakeshift
parameters:
cache: False
cmakeBuildConfigurations: [Debug]
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_TESTS=ON -DGSL_LITE_OPT_BUILD_EXAMPLES=ON'
cmakeTestArgs: '--exclude-regex cuda' # do not run CUDA tests
targets:
# VS 2010, 2012, 2013, and 2015 are tested with AppVeyor
- os: Windows
cxxCompiler: MSVC
cxxCompilerVersions: [VS2019]
cudaCompiler: NVCC
cudaCompilerVersions: [11_0, 11_1, 11_2]
platforms: [x64]
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_CUDA_TESTS=ON'
- os: Windows
cxxCompiler: MSVC
cxxCompilerVersions: [VS2017, VS2019]
cmakeGenerator: 'MSBuild' # required for CppCoreCheck
platforms: [x86, x64]
cmakeConfigArgs: '<cmakeConfigArgs> -DGSL_LITE_OPT_BUILD_STATIC_ANALYSIS_DEMOS=ON'
- os: Windows
cxxCompiler: Clang
cxxCompilerVersions: [VS2019]
platforms: [x86, x64]
# GCC 4.7, 4.8, 4.9, and 5 are tested with Travis
#- os: Linux
# cxxCompiler: GCC
# cxxCompilerVersions: [5]
# platforms: [x64]
- os: Linux
cxxCompiler: GCC
cxxCompilerVersions: [6, 7, 8, 9]
platforms: [x64]
- os: Linux
cxxCompiler: GCC
cxxCompilerVersions: [10]
platforms: [x64]
tag: 'memcheck'
# Make Valgrind return a non-zero exit code when errors occur in order to make the job fail.
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_TESTS=ON -DMEMORYCHECK_COMMAND_OPTIONS="--error-exitcode=1 --leak-check=full"'
cmakeTestArgs: '<cmakeTestArgs> --test-action memcheck'
postSetupSteps:
- bash: |
sudo apt install valgrind
displayName: 'Install Valgrind'
- os: Linux
cxxCompiler: GCC
cxxCompilerVersions: [10]
cxxStandardLibraryDebugMode: true
cxxSanitizers: [AddressSanitizer, UndefinedBehaviorSanitizer]
platforms: [x64]
tag: 'sanitize'
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_TESTS=ON'
cmakeBuildArgs: '<cmakeBuildArgs> --target gsl-lite-v0-cpp17.t gsl-lite-v1-cpp17.t'
cmakeTestArgs: '<cmakeTestArgs> --tests-regex gsl-lite-v0-cpp17|gsl-lite-v1-cpp17'
# Clang 3.5, 3.6, 3.7, 3.8, and 3.9 are tested with Travis
#- os: Linux
# cxxCompiler: Clang
# cxxCompilerVersions: [4]
# platforms: [x64]
- os: Linux
cxxCompiler: Clang
cxxCompilerVersions: [4, 5, 6, 7, 8, 9, 10]
platforms: [x64]
- os: Linux
cxxCompiler: Clang
cxxCompilerVersions: [11]
cxxStandardLibraryDebugMode: true
cxxSanitizers: [AddressSanitizer, UndefinedBehaviorSanitizer, ImplicitIntegerArithmeticValueChange]
platforms: [x64]
tag: 'sanitize'
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_TESTS=ON'
cmakeBuildArgs: '<cmakeBuildArgs> --target gsl-lite-v0-cpp17.t gsl-lite-v1-cpp17.t'
cmakeTestArgs: '<cmakeTestArgs> --tests-regex gsl-lite-v0-cpp17|gsl-lite-v1-cpp17'
- os: Linux
cxxCompiler: Clang
cxxCompilerVersions: [11]
cxxStandardLibrary: libstdc++
platforms: [x64]
tag: 'libstdc++'
- os: Linux
cxxCompiler: GCC
cxxCompilerVersions: [9]
cudaCompiler: NVCC
cudaCompilerVersions: [11_0, 11_1, 11_2]
platforms: [x64]
cmakeConfigArgs: '-DGSL_LITE_OPT_BUILD_CUDA_TESTS=ON'
- os: MacOS
cxxCompiler: GCC
cxxCompilerVersions: [6, 7, 8, 9, 10]
platforms: [x64]
- os: MacOS
cxxCompiler: AppleClang
cxxCompilerVersions: [9_1, 10, 10_0_1, 11, 11_0_3, 12]
platforms: [x64]