1565739dc98bcdd0f22432e84135c706c0c5dafc
[releng.git] / jjb / functest / xtesting.yaml
1 ---
2 - xtesting-containers: &xtesting-containers
3     name: 'xtesting-containers'
4     repo: '{repo}'
5     port: '{port}'
6     container: '{container}'
7     tag: '{tag}'
8
9 - xtesting-params: &xtesting-params
10     name: 'xtesting-params'
11     repo: 'opnfv'
12     port:
13     tag:
14       - latest:
15           from:
16           buildargs:
17           branch: master
18           slave: lf-virtual1
19           dependency: 3.13
20       - wallaby:
21           from:
22           buildargs:
23           branch: stable/wallaby
24           slave: lf-virtual1
25           dependency: 3.13
26       - leguer:
27           from:
28           buildargs:
29           branch: stable/leguer
30           slave: lf-virtual1
31           dependency: 3.12
32       - kali:
33           from:
34           buildargs:
35           branch: stable/kali
36           slave: lf-virtual1
37           dependency: 3.11
38       - jerma:
39           from:
40           buildargs:
41           branch: stable/jerma
42           slave: lf-virtual1
43           dependency: 3.10
44
45 - xtesting-jobs: &xtesting-jobs
46     name: 'xtesting-jobs'
47     current-parameters: true
48
49 - parameter:
50     name: xtesting-slave
51     parameters:
52       - label:
53           name: slave
54           default: '{slave}'
55
56 - parameter:
57     name: xtesting-build_tag
58     parameters:
59       - random-string:
60           name: build_tag
61
62 - xtesting-run-containers: &xtesting-run-containers
63     name: 'xtesting-run-containers'
64     <<: *xtesting-containers
65     test: '{test}'
66     privileged: '{privileged}'
67     network: '{network}'
68
69 - builder:
70     name: xtesting-pull-containers
71     builders:
72       - shell: |
73           set +x
74           if [ "{repo}" = "_" ]; then
75             image={container}:{tag}
76           elif [ "{port}" = "None" ]; then
77             image={repo}/{container}:{tag}
78           else
79             image={repo}:{port}/{container}:{tag}
80           fi
81           sudo docker pull $image
82
83 - builder:
84     name: xtesting-run-containers
85     builders:
86       - shell: |
87           set +x
88           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
89           if [ "{repo}" = "_" ]; then
90             image={container}:{tag}
91           elif [ "{port}" = "None" ]; then
92             image={repo}/{container}:{tag}
93           else
94             image={repo}:{port}/{container}:{tag}
95           fi
96           sudo docker run --rm \
97             --privileged={privileged} \
98             --network={network} \
99             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
100             -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
101             -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting/$BUILD_TAG/$JOB_NAME-$BUILD_ID \
102             -v /home/opnfv/xtesting/.boto:/root/.boto \
103             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
104             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
105             -e NODE_NAME=$slave \
106             -e BUILD_TAG=$BUILD_TAG \
107             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
108             $image run_tests -t {test} -p -r
109
110 - builder:
111     name: xtesting-remove-images
112     builders:
113       - shell: |
114           set +x
115           if [ "{repo}" = "_" ]; then
116             image={container}:{tag}
117           elif [ "{port}" = "None" ]; then
118             image={repo}/{container}:{tag}
119           else
120             image={repo}:{port}/{container}:{tag}
121           fi
122           sudo docker rmi $image || true
123
124 - job-template:
125     name: 'xtesting-{repo}-{container}-{tag}-pull'
126     parameters:
127       - xtesting-slave:
128           slave: '{slave}'
129     builders:
130       - xtesting-pull-containers:
131           <<: *xtesting-containers
132
133 - project:
134     name: 'xtesting-opnfv-xtesting-pull'
135     <<: *xtesting-params
136     container: 'xtesting'
137     jobs:
138       - 'xtesting-{repo}-{container}-{tag}-pull'
139
140 - project:
141     name: 'xtesting-opnfv-xtesting-mts-pull'
142     <<: *xtesting-params
143     container: 'xtesting-mts'
144     jobs:
145       - 'xtesting-{repo}-{container}-{tag}-pull'
146
147 - job-template:
148     name: 'xtesting-{repo}-{container}-{tag}-rmi'
149     parameters:
150       - xtesting-slave:
151           slave: '{slave}'
152     builders:
153       - xtesting-remove-images:
154           <<: *xtesting-containers
155
156 - project:
157     name: 'xtesting-opnfv-xtesting-rmi'
158     <<: *xtesting-params
159     container: 'xtesting'
160     jobs:
161       - 'xtesting-{repo}-{container}-{tag}-rmi'
162
163 - project:
164     name: 'xtesting-opnfv-xtesting-mts-rmi'
165     <<: *xtesting-params
166     container: 'xtesting-mts'
167     jobs:
168       - 'xtesting-{repo}-{container}-{tag}-rmi'
169
170 - job-template:
171     name: 'xtesting-{repo}-{container}-{tag}-{test}-run'
172     parameters:
173       - xtesting-slave:
174           slave: '{slave}'
175       - xtesting-build_tag:
176           build_tag: ''
177     builders:
178       - xtesting-run-containers:
179           <<: *xtesting-run-containers
180
181 - project:
182     name: 'xtesting-opnfv-xtesting'
183     <<: *xtesting-params
184     container: 'xtesting'
185     test:
186       - first
187       - second
188       - third
189       - fourth
190       - fifth
191       - sixth
192       - eighth
193     privileged: 'false'
194     network: bridge
195     exclude:
196       - tag: leguer
197         test: eighth
198       - tag: kali
199         test: eighth
200       - tag: jerma
201         test: eighth
202     jobs:
203       - 'xtesting-{repo}-{container}-{tag}-{test}-run'
204
205 - project:
206     name: 'xtesting-opnfv-xtesting-mts'
207     <<: *xtesting-params
208     container: 'xtesting-mts'
209     test:
210       - seventh
211     privileged: 'false'
212     network: bridge
213     jobs:
214       - 'xtesting-{repo}-{container}-{tag}-{test}-run'
215
216 - builder:
217     name: xtesting-zip
218     builders:
219       - shell: |
220           set +x
221           [ ! -z "$WORKSPACE" ] && sudo rm -rf $WORKSPACE/results || true
222           if [ "{repo}" = "_" ]; then
223             image={container}:{tag}
224           elif [ "{port}" = "None" ]; then
225             image={repo}/{container}:{tag}
226           else
227             image={repo}:{port}/{container}:{tag}
228           fi
229           sudo docker run --rm \
230             -e S3_ENDPOINT_URL=https://storage.googleapis.com \
231             -e S3_DST_URL=s3://artifacts.opnfv.org/xtesting \
232             -e HTTP_DST_URL=http://artifacts.opnfv.org/xtesting \
233             -v /home/opnfv/xtesting/.boto:/root/.boto \
234             -e TEST_DB_URL=http://testresults.opnfv.org/test/api/v1/results \
235             -e TEST_DB_EXT_URL=http://testresults.opnfv.org/test/api/v1/results \
236             -e BUILD_TAG=$BUILD_TAG \
237             -v $WORKSPACE/../$JOB_NAME/results:/var/lib/xtesting/results \
238             $image zip_campaign
239
240 - job-template:
241     name: 'xtesting-{tag}-zip'
242     parameters:
243       - xtesting-slave:
244           slave: '{slave}'
245       - xtesting-build_tag:
246           build_tag: ''
247     builders:
248       - xtesting-zip:
249           <<: *xtesting-containers
250
251 - project:
252     name: 'xtesting-{tag}-zip'
253     <<: *xtesting-params
254     container: 'xtesting'
255     jobs:
256       - 'xtesting-{tag}-zip'
257
258 - job-template:
259     name: 'xtesting-{tag}-daily'
260     project-type: multijob
261     triggers:
262       - timed: '@daily'
263     parameters:
264       - xtesting-slave:
265           slave: '{slave}'
266       - xtesting-build_tag:
267           build_tag: ''
268     # PyYAML and yamllint differ here
269     # see https://github.com/yaml/pyyaml/issues/234
270     # yamllint disable rule:indentation
271     properties:
272       - build-blocker:
273           blocking-jobs:
274           - ^xtesting-(pi-)*{tag}-(daily|docker|review)$
275     # yamllint enable rule:indentation
276     builders:
277       - multijob:
278           name: remove former images
279           projects:
280             - name: 'xtesting-opnfv-xtesting-{tag}-rmi'
281               <<: *xtesting-jobs
282             - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi'
283               <<: *xtesting-jobs
284       - multijob:
285           name: pull containers
286           projects:
287             - name: 'xtesting-opnfv-xtesting-{tag}-pull'
288               <<: *xtesting-jobs
289             - name: 'xtesting-opnfv-xtesting-mts-{tag}-pull'
290               <<: *xtesting-jobs
291       - multijob:
292           name: opnfv/xtesting:{tag}
293           projects:
294             - name: 'xtesting-opnfv-xtesting-{tag}-first-run'
295               <<: *xtesting-jobs
296             - name: 'xtesting-opnfv-xtesting-{tag}-second-run'
297               <<: *xtesting-jobs
298             - name: 'xtesting-opnfv-xtesting-{tag}-third-run'
299               <<: *xtesting-jobs
300             - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run'
301               <<: *xtesting-jobs
302             - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run'
303               <<: *xtesting-jobs
304             - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run'
305               <<: *xtesting-jobs
306             - name: 'xtesting-opnfv-xtesting-{tag}-eighth-run'
307               <<: *xtesting-jobs
308       - multijob:
309           name: opnfv/xtesting-mts:{tag}
310           projects:
311             - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run'
312               <<: *xtesting-jobs
313       - multijob:
314           name: dump all campaign data
315           projects:
316             - name: 'xtesting-{tag}-zip'
317               <<: *xtesting-jobs
318
319 - project:
320     name: 'xtesting-daily'
321     <<: *xtesting-params
322     jobs:
323       - 'xtesting-{tag}-daily'
324
325 - view:
326     name: xtesting
327     view-type: list
328     columns:
329       - status
330       - weather
331       - job
332       - last-success
333       - last-failure
334       - last-duration
335     regex: ^xtesting-[a-z0-9.]+-daily$
336
337 - xtesting-build-containers: &xtesting-build-containers
338     name: 'xtesting-build-containers'
339     <<: *xtesting-containers
340     ref_arg: '{ref_arg}'
341     path: '{path}'
342     buildargs: '{buildargs}'
343     from: '{from}'
344
345 - builder:
346     name: xtesting-build-containers
347     builders:
348       - shell: |
349           set +x
350           if [ "{repo}" = "_" ]; then
351             image={container}:{tag}
352           elif [ "{port}" = "None" ]; then
353             image={repo}/{container}:{tag}
354           else
355             image={repo}:{port}/{container}:{tag}
356           fi
357           build_args=""
358           if [ "{buildargs}" != "None" ]; then
359             build_args="{buildargs}"
360           fi
361           if [ "{ref_arg}" != "None" ]; then
362             build_args="$build_args --build-arg {ref_arg}={ref}"
363           fi
364           cd {path}
365           if [ "{from}" != "None" ]; then
366               sed -i {from} Dockerfile
367           fi
368           sudo docker build $build_args \
369             --pull=false --no-cache --force-rm=true \
370             -t $image .
371
372 - scm:
373     name: xtesting-scm
374     scm:
375       - git:
376           url: 'https://gerrit.opnfv.org/gerrit/functest-xtesting'
377           refspec: '+refs/heads/*:refs/remotes/origin/* +refs/changes/*:refs/changes/*'
378           branches:
379             - '{ref}'
380
381 - xtesting-dep: &xtesting-dep
382     name: 'xtesting-containers'
383     repo: '{repo}'
384     port: '{port}'
385     tag: '{tag}'
386     dependency: '{dependency}'
387
388 - builder:
389     name: xtesting-pull-dep-images
390     builders:
391       - shell: |
392           set +x
393           if [ "_" = "_" ]; then
394             image=alpine:{dependency}
395           elif [ "" = "None" ]; then
396             image=_/alpine:{dependency}
397           else
398             image=_:/alpine:{dependency}
399           fi
400           sudo docker pull $image || true
401
402 - builder:
403     name: xtesting-remove-dep-images
404     builders:
405       - shell: |
406           set +x
407           if [ "_" = "_" ]; then
408             image=alpine:{dependency}
409           elif [ "" = "None" ]; then
410             image=_/alpine:{dependency}
411           else
412             image=_:/alpine:{dependency}
413           fi
414           sudo docker rmi $image || true
415
416 - job-template:
417     name: 'xtesting-{repo}-{tag}-dep-pull'
418     parameters:
419       - xtesting-slave:
420           slave: '{slave}'
421     builders:
422       - xtesting-pull-dep-images:
423           <<: *xtesting-dep
424
425 - project:
426     name: 'xtesting-{repo}-{tag}-dep-pull'
427     <<: *xtesting-params
428     jobs:
429       - 'xtesting-{repo}-{tag}-dep-pull'
430
431 - job-template:
432     name: 'xtesting-{repo}-{tag}-dep-rmi'
433     parameters:
434       - xtesting-slave:
435           slave: '{slave}'
436     builders:
437       - xtesting-remove-dep-images:
438           <<: *xtesting-dep
439
440 - project:
441     name: 'xtesting-{repo}-{tag}-dep-rmi'
442     <<: *xtesting-params
443     jobs:
444       - 'xtesting-{repo}-{tag}-dep-rmi'
445
446 - builder:
447     name: xtesting-tox
448     builders:
449       - shell: |
450           set +x
451           sudo apt-get update && sudo apt-get install \
452             software-properties-common gpg -y
453           sudo add-apt-repository -y ppa:deadsnakes/ppa
454           sudo apt-get update && sudo apt-get install python3.8 \
455             python3.8-dev python3.8-distutils \
456             python3.7 python3.7-dev python3.6 python3.6-dev \
457             python python-dev python3-pip enchant -y
458           sudo pip3 install tox tox-pip-version
459
460           tox
461
462 - job-template:
463     name: 'xtesting-{tag}-tox'
464     scm:
465       - xtesting-scm:
466           ref: $GERRIT_REFSPEC
467     triggers:
468       - xtesting-patchset-created:
469           branch: '{branch}'
470     parameters:
471       - xtesting-slave:
472           slave: '{slave}'
473     builders:
474       - xtesting-tox:
475
476 - project:
477     name: xtesting-tox
478     <<: *xtesting-params
479     jobs:
480       - 'xtesting-{tag}-tox'
481
482 - job-template:
483     name: 'xtesting-{repo}-{container}-{tag}-gate'
484     parameters:
485       - xtesting-slave:
486           slave: '{slave}'
487     scm:
488       - xtesting-scm:
489           ref: $GERRIT_REFSPEC
490     builders:
491       - xtesting-build-containers:
492           <<: *xtesting-build-containers
493           ref: $GERRIT_REFSPEC
494           buildargs: '{buildargs}'
495
496 - project:
497     name: xtesting-opnfv-xtesting-{tag}-gate
498     <<: *xtesting-params
499     container: xtesting
500     ref_arg: BRANCH
501     path: docker/core
502     jobs:
503       - 'xtesting-{repo}-{container}-{tag}-gate'
504
505 - project:
506     name: xtesting-opnfv-xtesting-mts-{tag}-gate
507     <<: *xtesting-params
508     container: xtesting-mts
509     ref_arg: BRANCH
510     path: docker/mts
511     jobs:
512       - 'xtesting-{repo}-{container}-{tag}-gate'
513
514 - trigger:
515     name: xtesting-patchset-created
516     triggers:
517       - gerrit:
518           trigger-on:
519             - patchset-created-event
520             - comment-added-contains-event:
521                 comment-contains-value: 'recheck'
522             - comment-added-contains-event:
523                 comment-contains-value: 'reverify'
524           projects:
525             - project-compare-type: 'ANT'
526               project-pattern: 'functest-xtesting'
527               branches:
528                 - branch-compare-type: 'ANT'
529                   branch-pattern: '**/{branch}'
530
531 - job-template:
532     name: 'xtesting-{tag}-review'
533     project-type: multijob
534     triggers:
535       - xtesting-patchset-created:
536           branch: '{branch}'
537     parameters:
538       - xtesting-slave:
539           slave: '{slave}'
540       - xtesting-build_tag:
541           build_tag: ''
542     # PyYAML and yamllint differ here
543     # see https://github.com/yaml/pyyaml/issues/234
544     # yamllint disable rule:indentation
545     properties:
546       - build-blocker:
547           blocking-jobs:
548           - ^xtesting-(pi-)*{tag}-(daily|docker|review)$
549     # yamllint enable rule:indentation
550     builders:
551       - multijob:
552           name: remove former images
553           projects:
554             - name: 'xtesting-opnfv-xtesting-{tag}-rmi'
555               <<: *xtesting-jobs
556             - name: 'xtesting-opnfv-xtesting-mts-{tag}-rmi'
557               <<: *xtesting-jobs
558       - multijob:
559           name: remove dependency
560           projects:
561             - name: 'xtesting-{repo}-{tag}-dep-rmi'
562               <<: *xtesting-jobs
563       - multijob:
564           name: pull dependency
565           projects:
566             - name: 'xtesting-{repo}-{tag}-dep-pull'
567               <<: *xtesting-jobs
568       - multijob:
569           name: opnfv/xtesting
570           projects:
571             - name: 'xtesting-opnfv-xtesting-{tag}-gate'
572               <<: *xtesting-jobs
573       - multijob:
574           name: opnfv/xtesting-mts
575           projects:
576             - name: 'xtesting-opnfv-xtesting-mts-{tag}-gate'
577               <<: *xtesting-jobs
578       - multijob:
579           name: opnfv/xtesting:{tag}
580           projects:
581             - name: 'xtesting-opnfv-xtesting-{tag}-first-run'
582               <<: *xtesting-jobs
583             - name: 'xtesting-opnfv-xtesting-{tag}-second-run'
584               <<: *xtesting-jobs
585             - name: 'xtesting-opnfv-xtesting-{tag}-third-run'
586               <<: *xtesting-jobs
587             - name: 'xtesting-opnfv-xtesting-{tag}-fourth-run'
588               <<: *xtesting-jobs
589             - name: 'xtesting-opnfv-xtesting-{tag}-fifth-run'
590               <<: *xtesting-jobs
591             - name: 'xtesting-opnfv-xtesting-{tag}-sixth-run'
592               <<: *xtesting-jobs
593             - name: 'xtesting-opnfv-xtesting-{tag}-eighth-run'
594               <<: *xtesting-jobs
595       - multijob:
596           name: opnfv/xtesting-mts:{tag}
597           projects:
598             - name: 'xtesting-opnfv-xtesting-mts-{tag}-seventh-run'
599               <<: *xtesting-jobs
600
601 - project:
602     name: 'xtesting-review'
603     <<: *xtesting-params
604     jobs:
605       - 'xtesting-{tag}-review'
606
607 - view:
608     name: xtesting-review
609     view-type: list
610     columns:
611       - status
612       - weather
613       - job
614       - last-success
615       - last-failure
616       - last-duration
617     regex: ^xtesting-[a-z0-9.]+-review$
618
619 - view:
620     name: xtesting-tox
621     view-type: list
622     columns:
623       - status
624       - weather
625       - job
626       - last-success
627       - last-failure
628       - last-duration
629     regex: ^xtesting-[a-z0-9.]+-tox$
630
631 - builder:
632     name: xtesting-push-containers
633     builders:
634       - shell: |
635           set +x
636           if [ "{repo}" = "_" ]; then
637             image={container}:{tag}
638           elif [ "{port}" = "None" ]; then
639             image={repo}/{container}:{tag}
640           else
641             image={repo}:{port}/{container}:{tag}
642           fi
643           sudo docker push $image
644
645 - trigger:
646     name: xtesting-commit
647     triggers:
648       - pollscm:
649           cron: "*/30 * * * *"
650
651 - job-template:
652     name: 'xtesting-{repo}-{container}-{tag}-build'
653     parameters:
654       - xtesting-slave:
655           slave: '{slave}'
656     scm:
657       - xtesting-scm:
658           ref: '{branch}'
659     builders:
660       - xtesting-build-containers:
661           <<: *xtesting-build-containers
662           ref: '{branch}'
663           buildargs: '{buildargs}'
664       - xtesting-push-containers:
665           <<: *xtesting-build-containers
666           ref: '{branch}'
667
668 - project:
669     name: xtesting-opnfv-xtesting-{tag}-build
670     <<: *xtesting-params
671     container: xtesting
672     ref_arg: BRANCH
673     path: docker/core
674     jobs:
675       - 'xtesting-{repo}-{container}-{tag}-build'
676
677 - project:
678     name: xtesting-opnfv-xtesting-mts-{tag}-build
679     <<: *xtesting-params
680     container: xtesting-mts
681     ref_arg: BRANCH
682     path: docker/mts
683     jobs:
684       - 'xtesting-{repo}-{container}-{tag}-build'
685
686 - job-template:
687     name: 'xtesting-{tag}-docker'
688     project-type: multijob
689     triggers:
690       - xtesting-commit
691     scm:
692       - xtesting-scm:
693           ref: '{branch}'
694     parameters:
695       - xtesting-slave:
696           slave: '{slave}'
697     # PyYAML and yamllint differ here
698     # see https://github.com/yaml/pyyaml/issues/234
699     # yamllint disable rule:indentation
700     properties:
701       - build-blocker:
702           blocking-jobs:
703           - ^xtesting-(pi-)*{tag}-(daily|docker|review)$
704     # yamllint enable rule:indentation
705     builders:
706       - multijob:
707           name: remove dependency
708           projects:
709             - name: 'xtesting-{repo}-{tag}-dep-rmi'
710               <<: *xtesting-jobs
711       - multijob:
712           name: pull dependency
713           projects:
714             - name: 'xtesting-{repo}-{tag}-dep-pull'
715               <<: *xtesting-jobs
716       - multijob:
717           name: opnfv/xtesting
718           projects:
719             - name: 'xtesting-opnfv-xtesting-{tag}-build'
720               <<: *xtesting-jobs
721       - multijob:
722           name: opnfv/xtesting-mts
723           projects:
724             - name: 'xtesting-opnfv-xtesting-mts-{tag}-build'
725               <<: *xtesting-jobs
726
727 - builder:
728     name: xtesting-trivy
729     builders:
730       - shell: |
731           sudo apt-get update && sudo apt-get install curl -y
732
733           curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sudo sh -s -- -b .
734           if [ "{repo}" = "_" ]; then
735             image={container}:{tag}
736           elif [ "{port}" = "None" ]; then
737             image={repo}/{container}:{tag}
738           else
739             image={repo}:{port}/{container}:{tag}
740           fi
741           ./trivy --exit-code 1 $image
742
743 - job-template:
744     name: 'xtesting-{repo}-{container}-{tag}-trivy'
745     triggers:
746       - timed: '@daily'
747     parameters:
748       - xtesting-slave:
749           slave: '{slave}'
750     builders:
751       - xtesting-trivy:
752           <<: *xtesting-containers
753
754 - project:
755     name: 'xtesting-opnfv-xtesting-trivy'
756     <<: *xtesting-params
757     container: 'xtesting'
758     jobs:
759       - 'xtesting-{repo}-{container}-{tag}-trivy'
760
761 - project:
762     name: 'xtesting-opnfv-xtesting-mts-trivy'
763     <<: *xtesting-params
764     container: 'xtesting-mts'
765     jobs:
766       - 'xtesting-{repo}-{container}-{tag}-trivy'
767
768 - project:
769     name: 'xtesting'
770     <<: *xtesting-params
771     jobs:
772       - 'xtesting-{tag}-docker'
773
774 - view:
775     name: xtesting-docker
776     view-type: list
777     columns:
778       - status
779       - weather
780       - job
781       - last-success
782       - last-failure
783       - last-duration
784     regex: ^xtesting-[a-z0-9.]+-docker$
785
786 - view:
787     name: xtesting-trivy
788     view-type: list
789     columns:
790       - status
791       - weather
792       - job
793       - last-success
794       - last-failure
795       - last-duration
796     regex: (?!xtesting-pi)^xtesting-[a-z-0-9.]+-trivy$