tests: Fix fake socket_wrapper_syscall_valid()
[uid_wrapper.git] / .gitlab-ci.yml
1 ---
2 variables:
3   GIT_DEPTH: 3
4   BUILD_IMAGES_PROJECT: cmocka/gitlab-build-images
5   FEDORA_BUILD: buildenv-fedora
6   CENTOS7_BUILD: buildenv-centos7
7   TUMBLEWEED_BUILD: buildenv-tumbleweed
8   MINGW_BUILD: buildenv-mingw
9   UBUNTU_BUILD: buildenv-ubuntu
10
11 stages:
12   - build
13   - test
14   - analysis
15
16 centos7/x86_64:
17   stage: test
18   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
19   script:
20     - mkdir -p obj && cd obj && cmake3
21       -DCMAKE_BUILD_TYPE=RelWithDebInfo
22       -DPICKY_DEVELOPER=ON
23       -DUNIT_TESTING=ON .. &&
24       make -j$(nproc) && ctest --output-on-failure
25   tags:
26     - shared
27   except:
28     - tags
29   artifacts:
30     expire_in: 1 week
31     when: on_failure
32     paths:
33       - obj/
34
35 fedora/x86_64:
36   stage: test
37   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
38   script:
39     - mkdir -p obj && cd obj && cmake
40       -DCMAKE_INSTALL_PREFIX=/tmp/local
41       -DCMAKE_BUILD_TYPE=RelWithDebInfo
42       -DPICKY_DEVELOPER=ON
43       -DUNIT_TESTING=ON .. &&
44       make -j$(nproc) && ctest --output-on-failure && make install
45   tags:
46     - shared
47   except:
48     - tags
49   artifacts:
50     expire_in: 1 week
51     when: on_failure
52     paths:
53       - obj/
54
55 fedora/address-sanitizer:
56   stage: build
57   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
58   script:
59     - mkdir -p obj && cd obj && cmake
60       -DCMAKE_BUILD_TYPE=AddressSanitizer
61       -DPICKY_DEVELOPER=ON
62       -DUNIT_TESTING=ON .. &&
63       make -j$(nproc) && ctest --output-on-failure
64   tags:
65     - shared
66   except:
67     - tags
68   artifacts:
69     expire_in: 1 week
70     when: on_failure
71     paths:
72       - obj/
73
74 fedora/undefined-sanitizer:
75   stage: analysis
76   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
77   script:
78     - mkdir -p obj && cd obj && cmake
79       -DCMAKE_BUILD_TYPE=UndefinedSanitizer
80       -DUNIT_TESTING=ON ..
81       && make -j$(nproc) && ctest --output-on-failure
82   tags:
83     - shared
84   except:
85     - tags
86   artifacts:
87     expire_in: 1 week
88     when: on_failure
89     paths:
90       - obj/
91
92 fedora/thread-sanitizer:
93   stage: analysis
94   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
95   script:
96     - mkdir -p obj && cd obj && cmake
97       -DCMAKE_BUILD_TYPE=ThreadSanitizer
98       -DPICKY_DEVELOPER=ON
99       -DUNIT_TESTING=ON .. &&
100       make -j$(nproc) && ctest --output-on-failure
101   tags:
102     - shared
103   except:
104     - tags
105   artifacts:
106     expire_in: 1 week
107     when: on_failure
108     paths:
109       - obj/
110
111 fedora/csbuild:
112   stage: analysis
113   variables:
114     GIT_DEPTH: 20
115   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
116   script:
117     - |
118       if [[ -z "$CI_COMMIT_BEFORE_SHA" ]]; then
119           export CI_COMMIT_BEFORE_SHA=$(git rev-parse "${CI_COMMIT_SHA}~15")
120       fi
121
122       # Check if the commit exists in this branch
123       # This is not the case for a force push
124       git branch --contains $CI_COMMIT_BEFORE_SHA 2>/dev/null || export CI_COMMIT_BEFORE_SHA=$(git rev-parse "${CI_COMMIT_SHA}~15")
125
126       export CI_COMMIT_RANGE="$CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA"
127
128     - csbuild
129       --build-dir=obj-csbuild
130       --prep-cmd="cmake -DCMAKE_BUILD_TYPE=Debug -DPICKY_DEVELOPER=ON -DUNIT_TESTING=ON @SRCDIR@"
131       --build-cmd "make clean && make -j$(nproc)"
132       --git-commit-range $CI_COMMIT_RANGE
133       --color
134       --print-current --print-fixed
135   tags:
136     - shared
137   except:
138     - tags
139   artifacts:
140     expire_in: 1 week
141     when: on_failure
142     paths:
143       - obj-csbuild/
144
145 freebsd/x86_64:
146   stage: test
147   image:
148   script:
149     - mkdir -p obj && cd obj && cmake
150       -DCMAKE_BUILD_TYPE=RelWithDebInfo
151       -DPICKY_DEVELOPER=ON
152       -DUNIT_TESTING=ON .. &&
153       make && ctest --output-on-failure
154   tags:
155     - freebsd
156   except:
157     - tags
158   only:
159     - branches@cwrap/uid_wrapper
160     - branches@cryptomilk/uid_wrapper
161     - branches@metze/uid_wrapper
162   artifacts:
163     expire_in: 1 week
164     when: on_failure
165     paths:
166       - obj/
167
168 tumbleweed/x86_64/gcc:
169   stage: test
170   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
171   script:
172     - mkdir -p obj && cd obj && cmake
173       -DCMAKE_BUILD_TYPE=RelWithDebInfo
174       -DPICKY_DEVELOPER=ON
175       -DUNIT_TESTING=ON .. &&
176       make -j$(nproc) && ctest --output-on-failure
177   tags:
178     - shared
179   except:
180     - tags
181   artifacts:
182     expire_in: 1 week
183     when: on_failure
184     paths:
185       - obj/
186
187 tumbleweed/x86_64/gcc7:
188   stage: test
189   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
190   script:
191     - mkdir -p obj && cd obj && cmake
192       -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7
193       -DCMAKE_BUILD_TYPE=RelWithDebInfo
194       -DPICKY_DEVELOPER=ON
195       -DUNIT_TESTING=ON .. &&
196       make -j$(nproc) && ctest --output-on-failure
197   tags:
198     - shared
199   except:
200     - tags
201   artifacts:
202     expire_in: 1 week
203     when: on_failure
204     paths:
205       - obj/
206
207 tumbleweed/x86_64/clang:
208   stage: test
209   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
210   script:
211     - mkdir -p obj && cd obj && cmake
212       -DCMAKE_BUILD_TYPE=RelWithDebInfo
213       -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
214       -DPICKY_DEVELOPER=ON
215       -DUNIT_TESTING=ON .. &&
216       make -j$(nproc) && ctest --output-on-failure
217   tags:
218     - shared
219   except:
220     - tags
221   artifacts:
222     expire_in: 1 week
223     when: on_failure
224     paths:
225       - obj/
226
227 tumbleweed/static-analysis:
228   stage: analysis
229   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
230   script:
231     - export CCC_CC=clang
232     - export CCC_CXX=clang++
233     - mkdir -p obj && cd obj && scan-build cmake
234       -DCMAKE_BUILD_TYPE=Debug
235       -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
236       -DPICKY_DEVELOPER=ON
237       -DUNIT_TESTING=ON .. &&
238       scan-build --status-bugs -o scan make -j$(nproc)
239   tags:
240     - shared
241   except:
242     - tags
243   artifacts:
244     expire_in: 1 week
245     when: on_failure
246     paths:
247       - obj/scan
248
249 ubuntu/x86_64:
250   stage: test
251   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$UBUNTU_BUILD
252   script:
253     - mkdir -p obj && cd obj && cmake
254       -DCMAKE_BUILD_TYPE=RelWithDebInfo
255       -DPICKY_DEVELOPER=ON
256       -DUNIT_TESTING=ON .. &&
257       make -j$(nproc) && ctest --output-on-failure
258   tags:
259     - shared
260   except:
261     - tags
262   artifacts:
263     expire_in: 1 week
264     when: on_failure
265     paths:
266       - obj/