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