cpack: Set the full version not only major
[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   - branches@metze/resolv_wrapper
132   artifacts:
133     expire_in: 1 week
134     when: on_failure
135     paths:
136       - obj/
137
138 .Debian.cross.template: &Debian_cross_template
139   stage: test
140   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$DEBIAN_CROSS_BUILD
141   script:
142   - build=$(dpkg-architecture -qDEB_HOST_GNU_TYPE)
143   - host="${CI_JOB_NAME#*.cross.}"
144   - mkdir -p obj && cd obj && cmake
145     -DCMAKE_TOOLCHAIN_FILE=../cmake/Toolchain-Debian-mips.cmake
146     -DCMAKE_BUILD_TYPE=RelWithDebInfo
147     -DUNIT_TESTING=ON .. && make -j$(nproc) &&
148     ctest --output-on-failure
149   tags:
150   - shared
151   except:
152   - tags
153   artifacts:
154     expire_in: 1 week
155     when: on_failure
156     paths:
157       - obj/
158
159 Debian.cross.mips-linux-gnu:
160   <<: *Debian_cross_template
161
162 tumbleweed/x86_64/gcc:
163   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
164   script:
165   - mkdir -p obj && cd obj && cmake
166     -DCMAKE_BUILD_TYPE=RelWithDebInfo
167     -DPICKY_DEVELOPER=ON
168     -DUNIT_TESTING=ON .. &&
169     make -j$(nproc) && ctest --output-on-failure
170   tags:
171   - shared
172   except:
173   - tags
174   artifacts:
175     expire_in: 1 week
176     when: on_failure
177     paths:
178       - obj/
179
180 tumbleweed/x86_64/gcc7:
181   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
182   script:
183   - mkdir -p obj && cd obj && cmake
184     -DCMAKE_C_COMPILER=gcc-7 -DCMAKE_CXX_COMPILER=g++-7
185     -DCMAKE_BUILD_TYPE=RelWithDebInfo
186     -DPICKY_DEVELOPER=ON
187     -DUNIT_TESTING=ON .. &&
188     make -j$(nproc) && ctest --output-on-failure
189   tags:
190   - shared
191   except:
192   - tags
193   artifacts:
194     expire_in: 1 week
195     when: on_failure
196     paths:
197       - obj/
198
199 tumbleweed/x86_64/clang:
200   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
201   script:
202   - mkdir -p obj && cd obj && cmake
203     -DCMAKE_BUILD_TYPE=RelWithDebInfo
204     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
205     -DPICKY_DEVELOPER=ON
206     -DUNIT_TESTING=ON .. &&
207     make -j$(nproc) && ctest --output-on-failure
208   tags:
209   - shared
210   except:
211   - tags
212   artifacts:
213     expire_in: 1 week
214     when: on_failure
215     paths:
216       - obj/
217
218 tumbleweed/static-analysis:
219   image: $CI_REGISTRY/$BUILD_IMAGES_PROJECT:$TUMBLEWEED_BUILD
220   script:
221   - export CCC_CC=clang
222   - export CCC_CXX=clang++
223   - mkdir -p obj && cd obj && scan-build cmake
224     -DCMAKE_BUILD_TYPE=Debug
225     -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++
226     -DPICKY_DEVELOPER=ON
227     -DUNIT_TESTING=ON .. &&
228     scan-build --status-bugs -o scan make -j$(nproc)
229   tags:
230   - shared
231   except:
232   - tags
233   artifacts:
234     expire_in: 1 week
235     when: on_failure
236     paths:
237       - obj/scan