cmake: Remove configure check for pam_modutil_search_key
[pam_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   UBUNTU_BUILD: buildenv-ubuntu
8
9 centos7/x86_64:
10   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$CENTOS7_BUILD
11   script:
12   - mkdir -p obj && cd obj && cmake3
13     -DCMAKE_BUILD_TYPE=RelWithDebInfo
14     -DPICKY_DEVELOPER=ON
15     -DUNIT_TESTING=ON .. &&
16     make -j$(nproc) && ctest --output-on-failure
17   tags:
18   - shared
19   except:
20   - tags
21   artifacts:
22     expire_in: 1 week
23     when: on_failure
24     paths:
25       - obj/
26
27 fedora/x86_64:
28   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
29   script:
30   - mkdir -p obj && cd obj && cmake
31     -DCMAKE_INSTALL_PREFIX=/tmp/local
32     -DCMAKE_BUILD_TYPE=RelWithDebInfo
33     -DPICKY_DEVELOPER=ON
34     -DUNIT_TESTING=ON .. &&
35     make -j$(nproc) && ctest --output-on-failure && make install
36   tags:
37   - shared
38   except:
39   - tags
40   artifacts:
41     expire_in: 1 week
42     when: on_failure
43     paths:
44       - obj/
45
46 fedora/address-sanitizer:
47   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
48   script:
49   - mkdir -p obj && cd obj && cmake
50     -DCMAKE_BUILD_TYPE=AddressSanitizer
51     -DPICKY_DEVELOPER=ON
52     -DUNIT_TESTING=ON .. &&
53     make -j$(nproc) && ctest --output-on-failure
54   tags:
55   - shared
56   except:
57   - tags
58   artifacts:
59     expire_in: 1 week
60     when: on_failure
61     paths:
62       - obj/
63
64 fedora/undefined-sanitizer:
65   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
66   script:
67   - mkdir -p obj && cd obj && cmake
68     -DCMAKE_BUILD_TYPE=UndefinedSanitizer
69     -DPICKY_DEVELOPER=ON
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/pam_wrapper
129   - branches@cryptomilk/pam_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 # PICKY_DEVELOPER IS OFF
174 # => https://github.com/python/cpython/pull/19133
175 tumbleweed/x86_64/clang:
176   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
177   script:
178   - mkdir -p obj && cd obj && cmake
179     -DCMAKE_BUILD_TYPE=RelWithDebInfo
180     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
181     -DPICKY_DEVELOPER=OFF
182     -DUNIT_TESTING=ON .. &&
183     make -j$(nproc) && ctest --output-on-failure
184   tags:
185   - shared
186   except:
187   - tags
188   artifacts:
189     expire_in: 1 week
190     when: on_failure
191     paths:
192       - obj/
193
194 # PICKY_DEVELOPER IS OFF
195 # => https://github.com/python/cpython/pull/19133
196 tumbleweed/static-analysis:
197   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
198   script:
199   - export CCC_CC=clang
200   - export CCC_CXX=clang++
201   - mkdir -p obj && cd obj && scan-build cmake
202     -DCMAKE_BUILD_TYPE=Debug
203     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
204     -DPICKY_DEVELOPER=OFF
205     -DUNIT_TESTING=ON .. &&
206     scan-build --status-bugs -o scan make -j$(nproc)
207   tags:
208   - shared
209   except:
210   - tags
211   artifacts:
212     expire_in: 1 week
213     when: on_failure
214     paths:
215       - obj/scan
216
217 ubuntu/x86_64:
218   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$UBUNTU_BUILD
219   script:
220   - mkdir -p obj && cd obj && cmake
221     -DCMAKE_BUILD_TYPE=RelWithDebInfo
222     -DPICKY_DEVELOPER=ON
223     -DUNIT_TESTING=ON .. &&
224     make -j$(nproc) && ctest --output-on-failure
225   tags:
226   - shared
227   except:
228   - tags
229   artifacts:
230     expire_in: 1 week
231     when: on_failure
232     paths:
233       - obj/