rwrap: improve logging messages by including getprogname()
[resolv_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   DEBIAN_CROSS_BUILD: buildenv-debian-cross
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     -DPICKY_DEVELOPER=ON
71     -DUNIT_TESTING=ON ..
72     && make -j$(nproc) && ctest --output-on-failure
73   tags:
74   - shared
75   except:
76   - tags
77   artifacts:
78     expire_in: 1 week
79     when: on_failure
80     paths:
81       - obj/
82
83 fedora/csbuild:
84   variables:
85     GIT_DEPTH: 20
86   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$FEDORA_BUILD
87   script:
88   - |
89     if [[ -z "$CI_COMMIT_BEFORE_SHA" ]]; then
90         export CI_COMMIT_BEFORE_SHA=$(git rev-parse "${CI_COMMIT_SHA}~15")
91     fi
92
93     # Check if the commit exists in this branch
94     # This is not the case for a force push
95     git branch --contains $CI_COMMIT_BEFORE_SHA 2>/dev/null || export CI_COMMIT_BEFORE_SHA=$(git rev-parse "${CI_COMMIT_SHA}~15")
96
97     export CI_COMMIT_RANGE="$CI_COMMIT_BEFORE_SHA..$CI_COMMIT_SHA"
98
99   - csbuild
100     --build-dir=obj-csbuild
101     --prep-cmd="cmake -DCMAKE_BUILD_TYPE=Debug -DPICKY_DEVELOPER=ON -DUNIT_TESTING=ON @SRCDIR@"
102     --build-cmd "make clean && make -j$(nproc)"
103     --git-commit-range $CI_COMMIT_RANGE
104     --color
105     --print-current --print-fixed
106   tags:
107   - shared
108   except:
109   - tags
110   artifacts:
111     expire_in: 1 week
112     when: on_failure
113     paths:
114       - obj-csbuild/
115
116 freebsd/x86_64:
117   image:
118   script:
119   - mkdir -p obj && cd obj && cmake
120     -DCMAKE_BUILD_TYPE=RelWithDebInfo
121     -DPICKY_DEVELOPER=ON
122     -DUNIT_TESTING=ON .. &&
123     make && ctest --output-on-failure
124   tags:
125   - freebsd
126   except:
127   - tags
128   only:
129   - branches@cwrap/resolv_wrapper
130   - branches@cryptomilk/resolv_wrapper
131   artifacts:
132     expire_in: 1 week
133     when: on_failure
134     paths:
135       - obj/
136
137 .Debian.cross.template: &Debian_cross_template
138   stage: test
139   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_CROSS_BUILD
140   script:
141   - build=$(dpkg-architecture -qDEB_HOST_GNU_TYPE)
142   - host="${CI_JOB_NAME#*.cross.}"
143   - mkdir -p obj && cd obj && cmake
144     -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-Debian-mips.cmake
145     -DCMAKE_BUILD_TYPE=RelWithDebInfo
146     -DUNIT_TESTING=ON .. && make -j$(nproc) &&
147     ctest --output-on-failure
148   tags:
149   - shared
150   except:
151   - tags
152   artifacts:
153     expire_in: 1 week
154     when: on_failure
155     paths:
156       - obj/
157
158 Debian.cross.mips-linux-gnu:
159   <<: *Debian_cross_template
160
161 tumbleweed/x86_64/gcc:
162   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
163   script:
164   - mkdir -p obj && cd obj && cmake
165     -DCMAKE_BUILD_TYPE=RelWithDebInfo
166     -DPICKY_DEVELOPER=ON
167     -DUNIT_TESTING=ON .. &&
168     make -j$(nproc) && ctest --output-on-failure
169   tags:
170   - shared
171   except:
172   - tags
173   artifacts:
174     expire_in: 1 week
175     when: on_failure
176     paths:
177       - obj/
178
179 tumbleweed/x86_64/gcc7:
180   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
181   script:
182   - mkdir -p obj && cd obj && cmake
183     -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7
184     -DCMAKE_BUILD_TYPE=RelWithDebInfo
185     -DPICKY_DEVELOPER=ON
186     -DUNIT_TESTING=ON .. &&
187     make -j$(nproc) && ctest --output-on-failure
188   tags:
189   - shared
190   except:
191   - tags
192   artifacts:
193     expire_in: 1 week
194     when: on_failure
195     paths:
196       - obj/
197
198 tumbleweed/x86_64/clang:
199   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
200   script:
201   - mkdir -p obj && cd obj && cmake
202     -DCMAKE_BUILD_TYPE=RelWithDebInfo
203     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
204     -DPICKY_DEVELOPER=ON
205     -DUNIT_TESTING=ON .. &&
206     make -j$(nproc) && ctest --output-on-failure
207   tags:
208   - shared
209   except:
210   - tags
211   artifacts:
212     expire_in: 1 week
213     when: on_failure
214     paths:
215       - obj/
216
217 tumbleweed/static-analysis:
218   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
219   script:
220   - export CCC_CC=clang
221   - export CCC_CXX=clang++
222   - mkdir -p obj && cd obj && scan-build cmake
223     -DCMAKE_BUILD_TYPE=Debug
224     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
225     -DPICKY_DEVELOPER=ON
226     -DUNIT_TESTING=ON .. &&
227     scan-build --status-bugs -o scan make -j$(nproc)
228   tags:
229   - shared
230   except:
231   - tags
232   artifacts:
233     expire_in: 1 week
234     when: on_failure
235     paths:
236       - obj/scan