Prepare Functest Leguer gates
[releng.git] / jjb / functest / xtesting-pi.yaml
1 ---
2 - xtesting-pi-jobs: &xtesting-pi-jobs
3     name: 'xtesting-pi-jobs'
4     current-parameters: true
5
6 - xtesting-pi-params: &xtesting-pi-params
7     name: 'xtesting-pi-params'
8     repo: 'ollivier'
9     port:
10     tag:
11       - latest:
12           branch: master
13           slave: lf-virtual1
14       - leguer:
15           branch: stable/leguer
16           slave: lf-virtual1
17       - kali:
18           branch: stable/kali
19           slave: lf-virtual1
20       - jerma:
21           branch: stable/jerma
22           slave: lf-virtual1
23       - iruya:
24           branch: stable/iruya
25           slave: lf-virtual1
26       - hunter:
27           branch: stable/hunter
28           slave: lf-virtual1
29       - arm-latest:
30           branch: master
31           slave: lf-virtual1
32       - arm-leguer:
33           branch: stable/leguer
34           slave: lf-virtual1
35       - arm-kali:
36           branch: stable/kali
37           slave: lf-virtual1
38       - arm-jerma:
39           branch: stable/jerma
40           slave: lf-virtual1
41       - arm-iruya:
42           branch: stable/iruya
43           slave: lf-virtual1
44       - arm-hunter:
45           branch: stable/hunter
46           slave: lf-virtual1
47       - arm64-latest:
48           branch: master
49           slave: lf-virtual1
50       - arm64-leguer:
51           branch: stable/leguer
52           slave: lf-virtual1
53       - arm64-kali:
54           branch: stable/kali
55           slave: lf-virtual1
56       - arm64-jerma:
57           branch: stable/jerma
58           slave: lf-virtual1
59       - arm64-iruya:
60           branch: stable/iruya
61           slave: lf-virtual1
62       - arm64-hunter:
63           branch: stable/hunter
64           slave: lf-virtual1
65
66 - parameter:
67     name: xtesting-pi-slave
68     parameters:
69       - label:
70           name: slave
71           default: '{slave}'
72
73 - parameter:
74     name: xtesting-pi-build_tag
75     parameters:
76       - random-string:
77           name: build_tag
78
79 - parameter:
80     name: xtesting-pi-branch
81     parameters:
82       - string:
83           name: branch
84           default: '{branch}'
85
86 - parameter:
87     name: xtesting-pi-DEBUG
88     parameters:
89       - string:
90           name: DEBUG
91           default: 'true'
92
93 - xtesting-pi-containers: &xtesting-pi-containers
94     name: 'xtesting-pi-containers'
95     repo: '{repo}'
96     port: '{port}'
97     container: '{container}'
98     tag: '{tag}'
99
100 - xtesting-pi-run-containers: &xtesting-pi-run-containers
101     name: 'xtesting-pi-run-containers'
102     <<: *xtesting-pi-containers
103     test: '{test}'
104     privileged: '{privileged}'
105     network: '{network}'
106
107 - builder:
108     name: xtesting-pi-pull-containers
109     builders:
110       - shell: |
111           set +x
112           if [ "{repo}" = "_" ]; then
113             image={container}:{tag}
114           elif [ "{port}" = "None" ]; then
115             image={repo}/{container}:{tag}
116           else
117             image={repo}:{port}/{container}:{tag}
118           fi
119           sudo docker pull $image
120
121 - builder:
122     name: xtesting-pi-run-containers
123     builders:
124       - shell: |
125           set +x
126           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
127           if [ "{repo}" = "_" ]; then
128             image={container}:{tag}
129           elif [ "{port}" = "None" ]; then
130             image={repo}/{container}:{tag}
131           else
132             image={repo}:{port}/{container}:{tag}
133           fi
134           sudo docker run --rm \
135             --privileged={privileged} \
136             --network={network} \
137             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
138             -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
139             -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
140             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
141             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
142             -e NODE_NAME=$slave \
143             -e BUILD_TAG=$BUILD_TAG \
144             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
145             -e DEBUG=$DEBUG \
146             -v /home/opnfv/xtesting/.boto:/root/.boto \
147             $image run_tests -t {test} -p -r
148
149 - builder:
150     name: xtesting-pi-remove-images
151     builders:
152       - shell: |
153           set +x
154           if [ "{repo}" = "_" ]; then
155             image={container}:{tag}
156           elif [ "{port}" = "None" ]; then
157             image={repo}/{container}:{tag}
158           else
159             image={repo}:{port}/{container}:{tag}
160           fi
161           sudo docker rmi $image || true
162
163
164 - job-template:
165     name: 'xtesting-pi-{repo}-{container}-{tag}-pull'
166     parameters:
167       - xtesting-pi-slave:
168           slave: '{slave}'
169     builders:
170       - xtesting-pi-pull-containers:
171           <<: *xtesting-pi-containers
172
173 - project:
174     name: 'xtesting-pi-ollivier-xtesting-pull'
175     <<: *xtesting-pi-params
176     container: 'xtesting'
177     jobs:
178       - 'xtesting-pi-{repo}-{container}-{tag}-pull'
179
180 - project:
181     name: 'xtesting-pi-ollivier-xtesting-mts-pull'
182     <<: *xtesting-pi-params
183     container: 'xtesting-mts'
184     exclude:
185       - tag: hunter
186       - tag: iruya
187       - tag: jerma
188       - tag: kali
189       - tag: arm-hunter
190       - tag: arm-iruya
191       - tag: arm-jerma
192       - tag: arm-kali
193       - tag: arm-leguer
194       - tag: arm-latest
195       - tag: arm64-hunter
196       - tag: arm64-iruya
197       - tag: arm64-jerma
198       - tag: arm64-kali
199     jobs:
200       - 'xtesting-pi-{repo}-{container}-{tag}-pull'
201
202 - job-template:
203     name: 'xtesting-pi-{repo}-{container}-{tag}-rmi'
204     parameters:
205       - xtesting-pi-slave:
206           slave: '{slave}'
207     builders:
208       - xtesting-pi-remove-images:
209           <<: *xtesting-pi-containers
210
211 - project:
212     name: 'xtesting-pi-ollivier-xtesting-rmi'
213     <<: *xtesting-pi-params
214     container: 'xtesting'
215     jobs:
216       - 'xtesting-pi-{repo}-{container}-{tag}-rmi'
217
218 - project:
219     name: 'xtesting-pi-ollivier-xtesting-mts-rmi'
220     <<: *xtesting-pi-params
221     container: 'xtesting-mts'
222     exclude:
223       - tag: hunter
224       - tag: iruya
225       - tag: jerma
226       - tag: kali
227       - tag: arm-hunter
228       - tag: arm-iruya
229       - tag: arm-jerma
230       - tag: arm-kali
231       - tag: arm-leguer
232       - tag: arm-latest
233       - tag: arm64-hunter
234       - tag: arm64-iruya
235       - tag: arm64-jerma
236       - tag: arm64-kali
237     jobs:
238       - 'xtesting-pi-{repo}-{container}-{tag}-rmi'
239
240 - job-template:
241     name: 'xtesting-pi-{repo}-{container}-{tag}-{test}-run'
242     parameters:
243       - xtesting-pi-slave:
244           slave: '{slave}'
245       - xtesting-pi-build_tag:
246           build_tag: ''
247       - xtesting-pi-DEBUG:
248           DEBUG: 'true'
249     builders:
250       - xtesting-pi-run-containers:
251           <<: *xtesting-pi-run-containers
252
253 - project:
254     name: 'xtesting-pi-ollivier-xtesting'
255     <<: *xtesting-pi-params
256     container: 'xtesting'
257     test:
258       - first
259       - second
260       - third
261       - fourth
262       - fifth
263       - sixth
264     exclude:
265       - tag: hunter
266         test: sixth
267       - tag: iruya
268         test: sixth
269       - tag: arm-hunter
270         test: sixth
271       - tag: arm-iruya
272         test: sixth
273       - tag: arm64-hunter
274         test: sixth
275       - tag: arm64-iruya
276         test: sixth
277     privileged: 'false'
278     network: bridge
279     jobs:
280       - 'xtesting-pi-{repo}-{container}-{tag}-{test}-run'
281
282 - project:
283     name: 'xtesting-pi-ollivier-xtesting-mts'
284     <<: *xtesting-pi-params
285     container: 'xtesting-mts'
286     test:
287       - seventh
288     exclude:
289       - tag: hunter
290         test: seventh
291       - tag: iruya
292         test: seventh
293       - tag: jerma
294         test: seventh
295       - tag: kali
296         test: seventh
297       - tag: arm-hunter
298         test: seventh
299       - tag: arm-iruya
300         test: seventh
301       - tag: arm-jerma
302         test: seventh
303       - tag: arm-kali
304         test: seventh
305       - tag: arm-leguer
306         test: seventh
307       - tag: arm-latest
308         test: seventh
309       - tag: arm64-hunter
310         test: seventh
311       - tag: arm64-iruya
312         test: seventh
313       - tag: arm64-jerma
314         test: seventh
315       - tag: arm64-kali
316         test: seventh
317     privileged: 'false'
318     network: bridge
319     jobs:
320       - 'xtesting-pi-{repo}-{container}-{tag}-{test}-run'
321
322
323 - builder:
324     name: xtesting-pi-zip
325     builders:
326       - shell: |
327           set +x
328           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/* || true
329           if [ "{repo}" = "_" ]; then
330             image={container}:{tag}
331           elif [ "{port}" = "None" ]; then
332             image={repo}/{container}:{tag}
333           else
334             image={repo}:{port}/{container}:{tag}
335           fi
336           sudo docker run --rm \
337             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
338             -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \
339             -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \
340             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
341             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
342             -e BUILD_TAG=$BUILD_TAG \
343             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
344             -e DEBUG=$DEBUG \
345             -v /home/opnfv/xtesting/.boto:/root/.boto \
346             $image zip_campaign
347
348 - job-template:
349     name: 'xtesting-pi-{tag}-zip'
350     parameters:
351       - xtesting-pi-slave:
352           slave: '{slave}'
353       - xtesting-pi-build_tag:
354           build_tag: ''
355       - xtesting-pi-DEBUG:
356           DEBUG: 'true'
357     builders:
358       - xtesting-pi-zip:
359           <<: *xtesting-pi-containers
360
361 - project:
362     name: 'xtesting-pi-{tag}-zip'
363     <<: *xtesting-pi-params
364     container: 'xtesting'
365     jobs:
366       - 'xtesting-pi-{tag}-zip'
367
368 - job-template:
369     name: 'xtesting-pi-{tag}-daily'
370     project-type: multijob
371     triggers:
372       - timed: '@daily'
373     parameters:
374       - xtesting-pi-slave:
375           slave: '{slave}'
376       - xtesting-pi-build_tag:
377           build_tag: ''
378       - xtesting-pi-DEBUG:
379           DEBUG: 'true'
380     properties:
381       - build-blocker:
382           use-build-blocker: true
383           blocking-level: 'NODE'
384           blocking-jobs:
385             - '^xtesting-pi-{tag}-(daily|check|gate)$'
386     builders:
387       - multijob:
388           name: remove former images
389           projects:
390             - name: 'xtesting-pi-ollivier-xtesting-{tag}-rmi'
391               <<: *xtesting-pi-jobs
392             - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-rmi'
393               <<: *xtesting-pi-jobs
394       - multijob:
395           name: pull containers
396           projects:
397             - name: 'xtesting-pi-ollivier-xtesting-{tag}-pull'
398               <<: *xtesting-pi-jobs
399             - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-pull'
400               <<: *xtesting-pi-jobs
401       - multijob:
402           name: ollivier/xtesting:{tag}
403           projects:
404             - name: 'xtesting-pi-ollivier-xtesting-{tag}-first-run'
405               <<: *xtesting-pi-jobs
406             - name: 'xtesting-pi-ollivier-xtesting-{tag}-second-run'
407               <<: *xtesting-pi-jobs
408             - name: 'xtesting-pi-ollivier-xtesting-{tag}-third-run'
409               <<: *xtesting-pi-jobs
410             - name: 'xtesting-pi-ollivier-xtesting-{tag}-fourth-run'
411               <<: *xtesting-pi-jobs
412             - name: 'xtesting-pi-ollivier-xtesting-{tag}-fifth-run'
413               <<: *xtesting-pi-jobs
414             - name: 'xtesting-pi-ollivier-xtesting-{tag}-sixth-run'
415               <<: *xtesting-pi-jobs
416       - multijob:
417           name: ollivier/xtesting-mts:{tag}
418           projects:
419             - name: 'xtesting-pi-ollivier-xtesting-mts-{tag}-seventh-run'
420               <<: *xtesting-pi-jobs
421       - multijob:
422           name: dump all campaign data
423           projects:
424             - name: 'xtesting-pi-{tag}-zip'
425               <<: *xtesting-pi-jobs
426
427
428 - project:
429     name: 'xtesting-pi'
430     <<: *xtesting-pi-params
431     jobs:
432       - 'xtesting-pi-{tag}-daily'
433
434 - view:
435     name: xtesting-pi
436     view-type: list
437     columns:
438       - status
439       - weather
440       - job
441       - last-success
442       - last-failure
443       - last-duration
444     regex: ^xtesting-pi-(arm.*-|amd64-)*[a-z]+-daily$