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