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