forked from cppinclude/cppinclude
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
143 lines (133 loc) · 3.79 KB
/
.gitlab-ci.yml
File metadata and controls
143 lines (133 loc) · 3.79 KB
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
130
131
132
133
134
135
136
137
138
139
140
141
142
build_gcc10:
stage: build
image: ubuntu
script:
- apt-get update
- apt-get install cmake gcc-10 g++-10 -y
- export CC=gcc-10
- export CXX=g++-10
# Build without boost
- ./build.sh
# Build with boost
- apt-get install libboost-test-dev -y
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_gcc8:
stage: build
image: ubuntu
script:
- apt-get update
- apt-get install cmake gcc-8 g++-8 libboost-test-dev -y
- export CC=gcc-8
- export CXX=g++-8
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_gcc7:
stage: build
image: ubuntu
script:
- apt-get update
- apt-get install cmake gcc-7 g++-7 libboost-test-dev -y
- export CC=gcc-7
- export CXX=g++-7
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_clang:
stage: build
image: ubuntu
script:
- apt-get update
- apt-get install cmake clang libboost-test-dev -y
- export CC=/usr/bin/clang
- export CXX=/usr/bin/clang++
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_windows:
stage: build
tags:
- vm_win
script:
#- choco install cmake -y
- $env:PATH="C:\Program Files\CMake\bin;$env:PATH"
# Build without boost
- cmd /c ".\build.bat"
# Clean build folder
- rm -r -fo ./build
- mkdir build
- cd build
# Build with boost
#- vcpkg install boost-test:x64-windows
#- vcpkg install boost-system:x64-windows
- cmake .. -G "Visual Studio 16" -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_vs2017:
stage: build
tags:
- vm_win
script:
#- choco install visualstudio2017community -y
#- choco install visualstudio2017-workload-nativedesktop -y
#- choco install cmake -y
- $env:PATH="C:\Program Files\CMake\bin;$env:PATH"
- cd build
- cmake -G "Visual Studio 15" .. -DCMAKE_BUILD_TYPE=Release
- cmake --build . --config Release
build_macos:
stage: build
tags:
- macmini
script:
# Build without boost
- ./build.sh
# Build with boost
# brew install boost
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release
# Run tests
- ctest . -C Release
build_arm_linux:
stage: build
tags:
- arm-linux
script:
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cmake --build . --config Release -j4
# Run tests
- ctest . -C Release
check_typos:
stage: build
image: ubuntu
script:
- apt-get update
- export DEBIAN_FRONTEND=noninteractive
- ln -fs /usr/share/zoneinfo/America/New_York /etc/localtime
- apt-get install -y tzdata
- dpkg-reconfigure --frontend noninteractive tzdata
- apt-get install npm -y
- npm install -g cspell
- cspell "src/**/*"
cppcheck:
stage: build
image: ubuntu
script:
- apt-get update
- apt-get install cmake gcc g++ libboost-test-dev cppcheck -y
- cd build
- cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCPPINCLUDE_BUILD_WITH_TESTS=ON
- cppcheck --project=compile_commands.json --enable=all --suppressions-list=../.cppcheck-suppressions-list --error-exitcode=1 --quiet