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