733def52429ba301faf3c888c8d64e8a7e8bea18
[releng/global-jjb.git] / jjb / lf-ci-jobs.yaml
1 ---
2
3 ####################
4 # COMMON FUNCTIONS #
5 ####################
6
7 - builder:
8     name: lf-infra-jjbini
9     builders:
10       - config-file-provider:
11           files:
12             - file-id: jjbini
13               target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
14
15 - builder:
16     name: lf-infra-jjbini-sandbox
17     # TODO: Consolidate this into jjbini when JJB2.0 is available.
18     builders:
19       - config-file-provider:
20           files:
21             - file-id: jjbini-sandbox
22               target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
23
24 - lf_packer: &lf_packer_common
25     name: lf-packer-common
26     # Provide configuration common in packer jobs.
27
28     ######################
29     # Default parameters #
30     ######################
31
32     branch: master
33     build-timeout: 90
34     cron: '@monthly'
35     disable-job: false
36     github-url: 'https://github.com'
37     stream: master
38     submodule-recursive: true
39     submodule-timeout: 10
40     packer-cloud-settings: packer-cloud-env
41     packer-version: 1.2.5
42
43     #####################
44     # Job Configuration #
45     #####################
46
47     project-type: freestyle
48     node: '{build-node}'
49     disabled: '{disable-job}'
50
51     properties:
52       - lf-infra-properties:
53           project: '{project}'
54           build-days-to-keep: 7
55
56     parameters:
57       - lf-infra-parameters:
58           project: '{project}'
59           stream: '{stream}'
60           branch: '{branch}'
61           lftools-version: '{lftools-version}'
62       - lf-packer-parameters:
63           packer-version: '{packer-version}'
64
65     wrappers:
66       - lf-infra-wrappers:
67           build-timeout: '{build-timeout}'
68           jenkins-ssh-credential: '{jenkins-ssh-credential}'
69
70     publishers:
71       - lf-infra-publish
72
73 - parameter:
74     name: lf-infra-jjb-parameters
75     parameters:
76       - string:
77           name: JJB_VERSION
78           default: '{jjb-version}'
79           description: Jenkins Job Builder version to download and install.
80
81 - parameter:
82     name: lf-packer-parameters
83     parameters:
84       - string:
85           name: PACKER_VERSION
86           default: '{packer-version}'
87           description: Packer version to download and install.
88
89 - lf_jjb_common: &lf_jjb_common
90     name: lf-jjb-common
91
92     ######################
93     # Default parameters #
94     ######################
95
96     branch: master
97     build-timeout: 10
98     disable-job: false
99     github-url: 'https://github.com'
100     jjb-version: 2.2.1
101     stream: master
102     submodule-recursive: true
103     submodule-timeout: 10
104
105     gerrit_trigger_file_paths:
106       - compare-type: REG_EXP
107         pattern: 'jjb/.*'
108       - compare-type: REG_EXP
109         pattern: 'global-jjb'
110       - compare-type: REG_EXP
111         pattern: 'shell/.*'
112
113     # github_included_regions MUST match gerrit_trigger_file_paths
114     github_included_regions:
115       - 'jjb/.*'
116       - 'global-jjb'
117       - 'shell/.*'
118
119     #####################
120     # Job Configuration #
121     #####################
122
123     project-type: freestyle
124     node: '{build-node}'
125     disabled: '{disable-job}'
126
127     properties:
128       - lf-infra-properties:
129           project: '{project}'
130           build-days-to-keep: 7
131
132     parameters:
133       - lf-infra-parameters:
134           project: '{project}'
135           stream: '{stream}'
136           branch: '{branch}'
137           lftools-version: '{lftools-version}'
138       - lf-infra-jjb-parameters:
139           jjb-version: '{jjb-version}'
140
141     wrappers:
142       - lf-infra-wrappers:
143           build-timeout: '{build-timeout}'
144           jenkins-ssh-credential: '{jenkins-ssh-credential}'
145
146     publishers:
147       - lf-infra-publish
148
149 ######################
150 # Gerrit Branch Lock #
151 ######################
152
153 - job-template:
154     name: '{project-name}-gerrit-branch-lock-{stream}'
155     id: gerrit-branch-lock
156
157     ######################
158     # Default parameters #
159     ######################
160
161     branch: master
162     disable-job: false
163     git-url: '$GIT_URL/$GERRIT_PROJECT'
164     stream: master
165     submodule-timeout: 10
166     gerrit_merge_triggers:
167       - comment-added-contains-event:
168           comment-contains-value: (un)?lock branch$
169
170     #####################
171     # Job Configuration #
172     #####################
173
174     project-type: freestyle
175     node: '{build-node}'
176     disabled: '{disable-job}'
177
178     properties:
179       - lf-infra-properties:
180           project: '{project}'
181           build-days-to-keep: 1
182
183     parameters:
184       - lf-infra-parameters:
185           project: '{project}'
186           stream: '{stream}'
187           branch: '{branch}'
188           lftools-version: '{lftools-version}'
189
190     wrappers:
191       - lf-infra-wrappers:
192           build-timeout: 5
193           jenkins-ssh-credential: '{jenkins-ssh-credential}'
194
195     scm:
196       - lf-infra-gerrit-scm:
197           git-url: '{git-url}'
198           refspec: ''
199           branch: '{branch}'
200           submodule-recursive: false
201           submodule-timeout: '{submodule-timeout}'
202           choosing-strategy: default
203           jenkins-ssh-credential: '{jenkins-ssh-credential}'
204
205     triggers:
206       - gerrit:
207           server-name: '{gerrit-server-name}'
208           trigger-on: '{obj:gerrit_merge_triggers}'
209           projects:
210             - project-compare-type: ANT
211               project-pattern: '{project}'
212               branches:
213                 - branch-compare-type: ANT
214                   branch-pattern: '**/{branch}'
215
216     builders:
217       - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
218
219
220     publishers:
221       - lf-infra-publish
222
223 ##########################################
224 # Jenkins Configuration Management Merge #
225 ##########################################
226
227 - builder:
228     name: lf-jenkins-cfg-clouds
229     builders:
230       - lf-infra-jjbini
231       - inject:
232           properties-content: 'jenkins_silos={jenkins-silos}'
233       - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
234       - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
235
236 - builder:
237     name: lf-jenkins-cfg-global-vars
238     builders:
239       - lf-infra-jjbini
240       - inject:
241           properties-content: 'jenkins_silos={jenkins-silos}'
242       - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
243       - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
244
245 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
246     name: lf-jenkins-cfg-merge
247
248     ######################
249     # Default parameters #
250     ######################
251
252     branch: master
253     cron: '@daily'
254     disable-job: false
255     git-url: '$GIT_URL/$GERRIT_PROJECT'
256     github-url: 'https://github.com'
257     jenkins-silos: production sandbox
258     submodule-timeout: 10
259
260     gerrit_merge_triggers:
261       - change-merged-event
262       - comment-added-contains-event:
263           comment-contains-value: remerge$
264
265     gerrit_trigger_file_paths:
266       - compare-type: REG_EXP
267         pattern: 'jenkins-config\/.*'
268
269     # github_included_regions MUST match gerrit_trigger_file_paths
270     github_included_regions:
271       - 'jenkins-config\/.*'
272
273     #####################
274     # Job Configuration #
275     #####################
276
277     project-type: freestyle
278     node: '{build-node}'
279     concurrent: false
280     disabled: '{disable-job}'
281
282     properties:
283       - lf-infra-properties:
284           project: '{project}'
285           build-days-to-keep: 1
286
287     parameters:
288       - lf-infra-parameters:
289           project: '{project}'
290           stream: ''
291           branch: master
292           lftools-version: '{lftools-version}'
293
294     wrappers:
295       - lf-infra-wrappers:
296           build-timeout: 10
297           jenkins-ssh-credential: '{jenkins-ssh-credential}'
298
299     builders:
300       - lf-infra-pre-build
301       - lf-jenkins-cfg-global-vars:
302           jenkins-silos: '{jenkins-silos}'
303       - lf-jenkins-cfg-clouds:
304           jenkins-silos: '{jenkins-silos}'
305
306     publishers:
307       - lf-infra-publish
308
309 - job-template:
310     name: '{project-name}-jenkins-cfg-merge'
311     id: gerrit-jenkins-cfg-merge
312     <<: *lf_jenkins_cfg_merge
313
314     scm:
315       - lf-infra-gerrit-scm:
316           git-url: '{git-url}'
317           refspec: 'refs/heads/{branch}'
318           branch: '{branch}'
319           submodule-recursive: true
320           submodule-timeout: '{submodule-timeout}'
321           choosing-strategy: default
322           jenkins-ssh-credential: '{jenkins-ssh-credential}'
323
324     triggers:
325       - timed: '{obj:cron}'
326       - gerrit:
327           server-name: '{gerrit-server-name}'
328           trigger-on: '{obj:gerrit_merge_triggers}'
329           projects:
330             - project-compare-type: ANT
331               project-pattern: '{project}'
332               branches:
333                 - branch-compare-type: ANT
334                   branch-pattern: '**/{branch}'
335               file-paths: '{obj:gerrit_trigger_file_paths}'
336
337 - job-template:
338     name: '{project-name}-jenkins-cfg-merge'
339     id: github-jenkins-cfg-merge
340     <<: *lf_jenkins_cfg_merge
341
342     properties:
343       - lf-infra-properties:
344           project: '{project}'
345           build-days-to-keep: 1
346       - github:
347           url: '{github-url}/{github-org}/{project}'
348
349     scm:
350       - lf-infra-github-scm:
351           url: '{git-clone-url}{github-org}/{project}'
352           refspec: ''
353           branch: 'refs/heads/{branch}'
354           submodule-recursive: true
355           submodule-timeout: '{submodule-timeout}'
356           choosing-strategy: default
357           jenkins-ssh-credential: '{jenkins-ssh-credential}'
358
359     triggers:
360       - timed: '{obj:cron}'
361       - github
362       - pollscm:
363           cron: ''
364       - github-pull-request:
365           trigger-phrase: '^remerge$'
366           only-trigger-phrase: true
367           status-context: 'Jenkins CFG Merge'
368           permit-all: true
369           github-hooks: true
370           org-list:
371             - '{github-org}'
372           white-list: '{obj:github_pr_whitelist}'
373           admin-list: '{obj:github_pr_admin_list}'
374           included-regions: '{obj:github_included_regions}'
375           white-list-target-branches:
376             - '{branch}'
377
378 ###########################################
379 # Jenkins Configuration Management Verify #
380 ###########################################
381
382 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
383     name: lf-jenkins-cfg-verify
384
385     ######################
386     # Default parameters #
387     ######################
388
389     branch: master
390     build-days-to-keep: 7
391     disable-job: false
392     git-url: '$GIT_URL/$GERRIT_PROJECT'
393     github-url: 'https://github.com'
394     openstack-cloud: vex
395     submodule-timeout: 10
396
397     gerrit_verify_triggers:
398       - patchset-created-event:
399           exclude-drafts: true
400           exclude-trivial-rebase: false
401           exclude-no-code-change: false
402       - draft-published-event
403       - comment-added-contains-event:
404           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
405
406     gerrit_trigger_file_paths:
407       - compare-type: REG_EXP
408         pattern: 'jenkins-config\/.*'
409
410     # github_included_regions MUST match gerrit_trigger_file_paths
411     github_included_regions:
412       - 'jenkins-config\/.*'
413
414     #####################
415     # Job Configuration #
416     #####################
417
418     project-type: freestyle
419     node: '{build-node}'
420     concurrent: true
421     disabled: '{disable-job}'
422
423     properties:
424       - lf-infra-properties:
425           project: '{project}'
426           build-days-to-keep: 1
427
428     parameters:
429       - lf-infra-parameters:
430           project: '{project}'
431           stream: ''
432           branch: master
433           lftools-version: '{lftools-version}'
434
435     wrappers:
436       - lf-infra-wrappers:
437           build-timeout: 10
438           jenkins-ssh-credential: '{jenkins-ssh-credential}'
439       - config-file-provider:
440           # Listed after to override openstack-infra-wrappers clouds.yaml
441           # definition
442           files:
443             - file-id: clouds-yaml
444               target: '$HOME/.config/openstack/clouds.yaml'
445             - file-id: npmrc
446               target: '$HOME/.npmrc'
447             - file-id: pipconf
448               target: '$HOME/.config/pip/pip.conf'
449
450     builders:
451       - lf-infra-pre-build
452       - inject:
453           properties-content: OS_CLOUD={openstack-cloud}
454       - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
455
456     publishers:
457       - lf-infra-publish
458
459 - job-template:
460     name: '{project-name}-jenkins-cfg-verify'
461     id: gerrit-jenkins-cfg-verify
462     <<: *lf_jenkins_cfg_verify
463
464     scm:
465       - lf-infra-gerrit-scm:
466           git-url: '{git-url}'
467           refspec: 'refs/heads/{branch}'
468           branch: '{branch}'
469           submodule-recursive: true
470           submodule-timeout: '{submodule-timeout}'
471           choosing-strategy: default
472           jenkins-ssh-credential: '{jenkins-ssh-credential}'
473
474     triggers:
475       - gerrit:
476           server-name: '{gerrit-server-name}'
477           trigger-on: '{obj:gerrit_verify_triggers}'
478           projects:
479             - project-compare-type: ANT
480               project-pattern: '{project}'
481               branches:
482                 - branch-compare-type: ANT
483                   branch-pattern: '**/{branch}'
484               file-paths: '{obj:gerrit_trigger_file_paths}'
485
486 - job-template:
487     name: '{project-name}-jenkins-cfg-verify'
488     id: github-jenkins-cfg-verify
489     <<: *lf_jenkins_cfg_verify
490
491     properties:
492       - github:
493           url: '{github-url}/{github-org}/{project}'
494
495     scm:
496       - lf-infra-github-scm:
497           url: '{git-clone-url}{github-org}/{project}'
498           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
499           branch: '$sha1'
500           submodule-recursive: '{submodule-recursive}'
501           submodule-timeout: '{submodule-timeout}'
502           choosing-strategy: default
503           jenkins-ssh-credential: '{jenkins-ssh-credential}'
504
505     triggers:
506       - github-pull-request:
507           trigger-phrase: '^(recheck|reverify)$'
508           only-trigger-phrase: false
509           status-context: 'Jenkins CFG Verify'
510           permit-all: true
511           github-hooks: true
512           included-regions: '{obj:github_included_regions}'
513           white-list-target-branches:
514             - '{branch}'
515
516 ###########################
517 # JENKINS SANDBOX CLEANUP #
518 ###########################
519
520 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
521     name: lf-jenkins-sandbox-cleanup
522
523     ######################
524     # Default parameters #
525     ######################
526
527     build-timeout: 30
528     # Run every Saturday at 08:00 UTC
529     cron: '0 8 * * 6'
530     disable-job: false
531
532     #####################
533     # Job Configuration #
534     #####################
535
536     project-type: freestyle
537     node: '{build-node}'
538     concurrent: true
539     disabled: '{disable-job}'
540
541     parameters:
542       - lf-infra-jjb-parameters:
543           jjb-version: '{jjb-version}'
544
545     triggers:
546       - timed: '{obj:cron}'
547
548     builders:
549       - lf-infra-jjbini
550       - shell: !include-raw-escape:
551           - ../shell/jjb-install.sh
552           - ../shell/jenkins-sandbox-cleanup.sh
553           - ../shell/jjb-cleanup.sh
554
555 - job-template:
556     name: '{project-name}-jenkins-sandbox-cleanup'
557     id: gerrit-jenkins-sandbox-cleanup
558     <<: *lf_jjb_common
559     # yamllint disable-line rule:key-duplicates
560     <<: *lf_jenkins_sandbox_cleanup
561
562 - job-template:
563     name: '{project-name}-jenkins-sandbox-cleanup'
564     id: github-jenkins-sandbox-cleanup
565     <<: *lf_jjb_common
566     # yamllint disable-line rule:key-duplicates
567     <<: *lf_jenkins_sandbox_cleanup
568
569
570 ##################
571 # JJB DEPLOY JOB #
572 ##################
573
574 - lf_jjb_deploy_job: &lf_jjb_deploy_job
575     name: lf-jjb-deploy-job
576
577     ######################
578     # Default parameters #
579     ######################
580
581     branch: master
582     disable-job: false
583     # jjb-deploy should always clone $PROJECT regardless of what
584     # $GERRIT_PROJECT triggered the job.
585     git-url: '$GIT_URL/$PROJECT'
586     github-url: 'https://github.com'
587     stream: master
588     submodule-timeout: 10
589     gerrit_jjb_deploy_job_triggers:
590       - comment-added-contains-event:
591           comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
592
593     #####################
594     # Job Configuration #
595     #####################
596
597     project-type: freestyle
598     node: '{build-node}'
599     concurrent: true
600     disabled: '{disable-job}'
601
602     properties:
603       - lf-infra-properties:
604           project: '{project}'
605           build-days-to-keep: 1
606
607     parameters:
608       - lf-infra-parameters:
609           project: '{project}'
610           stream: '{stream}'
611           branch: '{branch}'
612           lftools-version: '{lftools-version}'
613
614     wrappers:
615       - lf-infra-wrappers:
616           build-timeout: 5
617           jenkins-ssh-credential: '{jenkins-ssh-credential}'
618
619     builders:
620       - lf-pip-install:
621           pip-packages: jenkins-job-builder
622       - lf-infra-jjbini-sandbox
623       - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
624
625     publishers:
626       - lf-infra-publish
627
628 - job-template:
629     name: '{project-name}-jjb-deploy-job'
630     id: gerrit-jjb-deploy-job
631     <<: *lf_jjb_deploy_job
632
633     scm:
634       - lf-infra-gerrit-scm:
635           git-url: '{git-url}'
636           refspec: 'refs/heads/{branch}'
637           branch: '{branch}'
638           submodule-recursive: true
639           submodule-timeout: '{submodule-timeout}'
640           choosing-strategy: default
641           jenkins-ssh-credential: '{jenkins-ssh-credential}'
642
643     triggers:
644       - gerrit:
645           server-name: '{gerrit-server-name}'
646           trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
647           projects:
648             - project-compare-type: ANT
649               project-pattern: '**'
650               branches:
651                 - branch-compare-type: ANT
652                   branch-pattern: '**'
653           skip-vote:
654             success: true
655             failed: true
656             unstable: true
657             notbuilt: true
658
659 - job-template:
660     name: '{project-name}-jjb-deploy-job'
661     id: github-jjb-deploy-job
662     <<: *lf_jjb_deploy_job
663
664     properties:
665       - lf-infra-properties:
666           project: '{project}'
667           build-days-to-keep: 1
668       - github:
669           url: '{github-url}/{github-org}/{project}'
670
671     scm:
672       - lf-infra-github-scm:
673           url: '{git-clone-url}{github-org}/{project}'
674           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
675           branch: '$sha1'
676           submodule-recursive: true
677           submodule-timeout: '{submodule-timeout}'
678           choosing-strategy: default
679           jenkins-ssh-credential: '{jenkins-ssh-credential}'
680
681     triggers:
682       - github-pull-request:
683           trigger-phrase: '^jjb-deploy (?!\*+$).+$'
684           only-trigger-phrase: true
685           status-context: 'JJB Deploy Job'
686           permit-all: true
687           github-hooks: true
688           white-list-target-branches:
689             - '{branch}'
690
691 #############
692 # JJB Merge #
693 #############
694
695 - lf_jjb_merge: &lf_jjb_merge
696     name: lf-jjb-merge
697
698     ######################
699     # Default parameters #
700     ######################
701
702     gerrit_merge_triggers:
703       - change-merged-event
704       - comment-added-contains-event:
705           comment-contains-value: remerge$
706
707     #####################
708     # Job Configuration #
709     #####################
710
711     builders:
712       - lf-infra-pre-build
713       - lf-infra-jjbini
714       - shell: !include-raw-escape:
715           - ../shell/jjb-install.sh
716           - ../shell/jjb-merge-job.sh
717           - ../shell/jjb-cleanup.sh
718
719 - job-template:
720     name: '{project-name}-jjb-merge'
721     id: gerrit-jjb-merge
722     <<: *lf_jjb_common
723     # yamllint disable-line rule:key-duplicates
724     <<: *lf_jjb_merge
725
726     git-url: '$GIT_URL/$GERRIT_PROJECT'
727
728     scm:
729       - lf-infra-gerrit-scm:
730           git-url: '{git-url}'
731           refspec: ''
732           branch: '{branch}'
733           submodule-recursive: '{submodule-recursive}'
734           submodule-timeout: '{submodule-timeout}'
735           choosing-strategy: default
736           jenkins-ssh-credential: '{jenkins-ssh-credential}'
737
738     triggers:
739       - gerrit:
740           server-name: '{gerrit-server-name}'
741           trigger-on: '{obj:gerrit_merge_triggers}'
742           projects:
743             - project-compare-type: ANT
744               project-pattern: '{project}'
745               branches:
746                 - branch-compare-type: ANT
747                   branch-pattern: '**/{branch}'
748               file-paths: '{obj:gerrit_trigger_file_paths}'
749
750 - job-template:
751     name: '{project-name}-jjb-merge'
752     id: github-jjb-merge
753     <<: *lf_jjb_common
754     # yamllint disable-line rule:key-duplicates
755     <<: *lf_jjb_merge
756
757     #####################
758     # Job Configuration #
759     #####################
760
761     properties:
762       - lf-infra-properties:
763           project: '{project}'
764           build-days-to-keep: 7
765       - github:
766           url: '{github-url}/{github-org}/{project}'
767
768     scm:
769       - lf-infra-github-scm:
770           url: '{git-clone-url}{github-org}/{project}'
771           refspec: ''
772           branch: 'refs/heads/{branch}'
773           submodule-recursive: '{submodule-recursive}'
774           submodule-timeout: '{submodule-timeout}'
775           choosing-strategy: default
776           jenkins-ssh-credential: '{jenkins-ssh-credential}'
777
778     triggers:
779       - github
780       - pollscm:
781           cron: ''
782       - github-pull-request:
783           trigger-phrase: '^remerge$'
784           only-trigger-phrase: true
785           status-context: 'JJB Merge'
786           permit-all: true
787           github-hooks: true
788           org-list:
789             - '{github-org}'
790           white-list: '{obj:github_pr_whitelist}'
791           admin-list: '{obj:github_pr_admin_list}'
792           included-regions: '{obj:github_included_regions}'
793           white-list-target-branches:
794             - '{branch}'
795
796 ##############
797 # JJB Verify #
798 ##############
799
800 - lf_jjb_verify: &lf_jjb_verify
801     name: lf-jjb-verify
802
803     ######################
804     # Default parameters #
805     ######################
806
807     gerrit_verify_triggers:
808       - patchset-created-event:
809           exclude-drafts: true
810           exclude-trivial-rebase: false
811           exclude-no-code-change: false
812       - draft-published-event
813       - comment-added-contains-event:
814           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
815
816     #####################
817     # Job Configuration #
818     #####################
819
820     concurrent: true
821
822     builders:
823       - lf-infra-pre-build
824       - lf-infra-jjbini
825       - shell: !include-raw-escape:
826           - ../shell/git-validate-jira-urls.sh
827           - ../shell/jjb-install.sh
828           - ../shell/jjb-verify-job.sh
829           - ../shell/jjb-check-unicode.sh
830           - ../shell/jjb-cleanup.sh
831       - lf-infra-gpg-verify-git-signature
832
833 - job-template:
834     name: '{project-name}-jjb-verify'
835     id: gerrit-jjb-verify
836     <<: *lf_jjb_common
837     # yamllint disable-line rule:key-duplicates
838     <<: *lf_jjb_verify
839
840     ######################
841     # Default parameters #
842     ######################
843
844     git-url: '$GIT_URL/$GERRIT_PROJECT'
845
846     #####################
847     # Job Configuration #
848     #####################
849
850     scm:
851       - lf-infra-gerrit-scm:
852           git-url: '{git-url}'
853           refspec: '$GERRIT_REFSPEC'
854           branch: '$GERRIT_BRANCH'
855           submodule-recursive: '{submodule-recursive}'
856           submodule-timeout: '{submodule-timeout}'
857           choosing-strategy: gerrit
858           jenkins-ssh-credential: '{jenkins-ssh-credential}'
859
860     triggers:
861       - gerrit:
862           server-name: '{gerrit-server-name}'
863           trigger-on: '{obj:gerrit_verify_triggers}'
864           projects:
865             - project-compare-type: ANT
866               project-pattern: '{project}'
867               branches:
868                 - branch-compare-type: ANT
869                   branch-pattern: '**/{branch}'
870               file-paths: '{obj:gerrit_trigger_file_paths}'
871
872 - job-template:
873     name: '{project-name}-jjb-verify'
874     id: github-jjb-verify
875     <<: *lf_jjb_common
876     # yamllint disable-line rule:key-duplicates
877     <<: *lf_jjb_verify
878
879     #####################
880     # Job Configuration #
881     #####################
882
883     properties:
884       - lf-infra-properties:
885           project: '{project}'
886           build-days-to-keep: 7
887       - github:
888           url: '{github-url}/{github-org}/{project}'
889
890     scm:
891       - lf-infra-github-scm:
892           url: '{git-clone-url}{github-org}/{project}'
893           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
894           branch: '$sha1'
895           submodule-recursive: '{submodule-recursive}'
896           submodule-timeout: '{submodule-timeout}'
897           choosing-strategy: default
898           jenkins-ssh-credential: '{jenkins-ssh-credential}'
899
900     triggers:
901       - github-pull-request:
902           trigger-phrase: '^(recheck|reverify)$'
903           only-trigger-phrase: false
904           status-context: 'JJB Verify'
905           permit-all: true
906           github-hooks: true
907           included-regions: '{obj:github_included_regions}'
908           white-list-target-branches:
909             - '{branch}'
910
911 ############################
912 # JJB Verify Upstream GJJB #
913 ############################
914
915 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
916     name: lf-jjb-verify-upstream-gjjb
917
918     #####################
919     # Job Configuration #
920     #####################
921
922     concurrent: true
923
924     builders:
925       - shell: |
926           cd global-jjb
927           git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
928           git cherry-pick FETCH_HEAD
929       - lf-infra-jjbini
930       - shell: !include-raw-escape:
931           - ../shell/git-validate-jira-urls.sh
932           - ../shell/jjb-install.sh
933           - ../shell/jjb-verify-job.sh
934           - ../shell/jjb-check-unicode.sh
935           - ../shell/jjb-cleanup.sh
936       - lf-infra-gpg-verify-git-signature
937
938 - job-template:
939     name: '{project-name}-jjb-verify-upstream-gjjb'
940     id: gerrit-jjb-verify-upstream-gjjb
941     <<: *lf_jjb_common
942     # yamllint disable-line rule:key-duplicates
943     <<: *lf_jjb_verify_upstream_gjjb
944
945     ######################
946     # Default parameters #
947     ######################
948
949     git-url: '$GIT_URL/$PROJECT'
950     submodule-timeout: 10
951
952     #####################
953     # Job Configuration #
954     #####################
955
956     scm:
957       - lf-infra-gerrit-scm:
958           git-url: '{git-url}'
959           refspec: ''
960           branch: 'master'
961           submodule-recursive: true
962           submodule-timeout: '{submodule-timeout}'
963           choosing-strategy: default
964           jenkins-ssh-credential: '{jenkins-ssh-credential}'
965
966     triggers:
967       - gerrit:
968           server-name: 'LinuxFoundation'
969           trigger-on:
970             - patchset-created-event:
971                 exclude-drafts: true
972                 exclude-trivial-rebase: false
973                 exclude-no-code-change: false
974             - draft-published-event
975             - comment-added-contains-event:
976                 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
977           projects:
978             - project-compare-type: ANT
979               project-pattern: 'releng/global-jjb'
980               branches:
981                 - branch-compare-type: ANT
982                   branch-pattern: '**/master'
983           override-votes: true
984           gerrit-build-failed-codereview-value: -1
985           gerrit-build-failed-verified-value: 0
986           gerrit-build-successful-codereview-value: 1
987           gerrit-build-successful-verified-value: 0
988
989 #################
990 # License Check #
991 #################
992
993 - lf_license_check: &lf_license_check
994     name: lf-license-check
995
996     ######################
997     # Default parameters #
998     ######################
999
1000     branch: master
1001     build-days-to-keep: 7
1002     build-timeout: 15
1003     disable-job: false
1004     file-patterns: >
1005         *.go
1006         *.groovy
1007         *.java
1008         *.py
1009         *.sh
1010     git-url: '$GIT_URL/$PROJECT'
1011     github-url: 'https://github.com'
1012     lhc-version: 0.2.0
1013     license-exclude-paths: ''
1014     licenses-allowed: Apache-2.0,EPL-1.0,MIT
1015     project-pattern: '**'
1016     spdx-disable: false
1017     stream: master
1018     submodule-timeout: 10
1019
1020     #####################
1021     # Job Configuration #
1022     #####################
1023
1024     project-type: freestyle
1025     node: '{build-node}'
1026     concurrent: true
1027     disabled: '{disable-job}'
1028
1029     properties:
1030       - lf-infra-properties:
1031           build-days-to-keep: '{build-days-to-keep}'
1032
1033     parameters:
1034       - lf-infra-parameters:
1035           project: '{project}'
1036           branch: '{branch}'
1037           stream: '{stream}'
1038           lftools-version: '{lftools-version}'
1039
1040     wrappers:
1041       - lf-infra-wrappers:
1042           build-timeout: '{build-timeout}'
1043           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1044
1045     builders:
1046       - lf-license-check:
1047           file-patterns: '{file-patterns}'
1048           spdx-disable: '{spdx-disable}'
1049           lhc-version: '{lhc-version}'
1050           license-exclude-paths: '{license-exclude-paths}'
1051           licenses-allowed: '{licenses-allowed}'
1052
1053     publishers:
1054       - lf-infra-publish
1055
1056 - job-template:
1057     name: '{project-name}-license-check'
1058     id: gerrit-license-check
1059     <<: *lf_license_check
1060
1061     git-url: '$GIT_URL/$GERRIT_PROJECT'
1062
1063     scm:
1064       - lf-infra-gerrit-scm:
1065           git-url: '{git-url}'
1066           refspec: '$GERRIT_REFSPEC'
1067           branch: '$GERRIT_BRANCH'
1068           # Submodules are out of the project's control
1069           submodule-recursive: false
1070           submodule-timeout: '{submodule-timeout}'
1071           choosing-strategy: gerrit
1072           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1073
1074     triggers:
1075       - gerrit:
1076           server-name: '{gerrit-server-name}'
1077           # Trigger should not be overridable as we want to always run
1078           trigger-on:
1079             - patchset-created-event:
1080                 exclude-drafts: false
1081                 exclude-trivial-rebase: false
1082                 exclude-no-code-change: false
1083             - draft-published-event
1084             - comment-added-contains-event:
1085                 comment-contains-value: recheck$
1086           projects:
1087             - project-compare-type: ANT
1088               project-pattern: '{project-pattern}'
1089               branches:
1090                 - branch-compare-type: ANT
1091                   branch-pattern: '**'
1092
1093 - job-template:
1094     name: '{project-name}-license-check'
1095     id: github-license-check
1096     <<: *lf_license_check
1097
1098     properties:
1099       - lf-infra-properties:
1100           build-days-to-keep: '{build-days-to-keep}'
1101       - github:
1102           url: '{github-url}/{github-org}/{project}'
1103
1104     scm:
1105       - lf-infra-github-scm:
1106           url: '{git-clone-url}{github-org}/{project}'
1107           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1108           branch: '$sha1'
1109           # Submodules are out of the project's control
1110           submodule-recursive: false
1111           submodule-timeout: '{submodule-timeout}'
1112           choosing-strategy: default
1113           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1114
1115     triggers:
1116       - github-pull-request:
1117           trigger-phrase: '^recheck$'
1118           only-trigger-phrase: false
1119           status-context: 'License Check'
1120           permit-all: true
1121           github-hooks: true
1122           white-list-target-branches:
1123             - '{branch}'
1124
1125 ####################
1126 # Info YAML Verify #
1127 ####################
1128
1129 - lf_info_yaml_verify: &lf_info_yaml_verify
1130     name: lf-info-yaml-verify
1131
1132     ######################
1133     # Default parameters #
1134     ######################
1135
1136     gerrit_verify_triggers:
1137       - patchset-created-event:
1138           exclude-drafts: true
1139           exclude-trivial-rebase: false
1140           exclude-no-code-change: false
1141       - draft-published-event
1142       - comment-added-contains-event:
1143           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1144
1145     #####################
1146     # Job Configuration #
1147     #####################
1148
1149     concurrent: true
1150
1151     builders:
1152       - shell: !include-raw-escape:
1153           - ../shell/git-validate-info-yaml.sh
1154           - ../shell/info-file-validate.sh
1155
1156 - job-template:
1157     name: '{project-name}-info-yaml-verify'
1158     id: gerrit-info-yaml-verify
1159     <<: *lf_jjb_common
1160     # yamllint disable-line rule:key-duplicates
1161     <<: *lf_info_yaml_verify
1162
1163     git-url: '$GIT_URL/$GERRIT_PROJECT'
1164
1165     scm:
1166       - lf-infra-gerrit-scm:
1167           git-url: '{git-url}'
1168           refspec: '$GERRIT_REFSPEC'
1169           branch: '$GERRIT_BRANCH'
1170           submodule-recursive: '{submodule-recursive}'
1171           submodule-timeout: '{submodule-timeout}'
1172           choosing-strategy: gerrit
1173           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1174
1175     triggers:
1176       - gerrit:
1177           server-name: '{gerrit-server-name}'
1178           trigger-on: '{obj:gerrit_verify_triggers}'
1179           projects:
1180             - project-compare-type: ANT
1181               project-pattern: '{project}'
1182               branches:
1183                 - branch-compare-type: ANT
1184                   branch-pattern: '**/{branch}'
1185               file-paths:
1186                 - compare-type: REG_EXP
1187                   pattern: 'INFO.yaml'
1188
1189 - job-template:
1190     name: '{project-name}-info-yaml-verify'
1191     id: github-info-yaml-verify
1192     <<: *lf_jjb_common
1193     # yamllint disable-line rule:key-duplicates
1194     <<: *lf_info_yaml_verify
1195
1196     github-url: 'https://github.com'
1197     properties:
1198       - github:
1199           url: '{github-url}/{github-org}/{project}'
1200
1201     scm:
1202       - lf-infra-github-scm:
1203           url: '{git-clone-url}{github-org}/{project}'
1204           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1205           branch: '$sha1'
1206           submodule-recursive: '{submodule-recursive}'
1207           submodule-timeout: '{submodule-timeout}'
1208           choosing-strategy: default
1209           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1210
1211     triggers:
1212       - github-pull-request:
1213           trigger-phrase: '^(recheck|reverify)$'
1214           only-trigger-phrase: false
1215           status-context: 'INFO File Verify'
1216           permit-all: true
1217           github-hooks: true
1218           # included-regions MUST match gerrit file-paths
1219           included-regions: 'INFO.yaml'
1220           white-list-target-branches:
1221             - '{branch}'
1222
1223 ##################
1224 # OPENSTACK CRON #
1225 ##################
1226
1227 - lf_openstack_cron: &lf_openstack_cron
1228     name: lf-openstack-cron
1229
1230     ######################
1231     # Default parameters #
1232     ######################
1233
1234     branch: master
1235     build-days-to-keep: 7
1236     build-timeout: 10
1237     cron: '@daily'
1238     disable-job: false
1239     git-url: '$GIT_URL/$PROJECT'
1240     github-url: 'https://github.com'
1241     openstack-cloud: vex
1242     stream: master
1243     submodule-timeout: 10
1244
1245     #####################
1246     # Job Configuration #
1247     #####################
1248
1249     project-type: freestyle
1250     node: '{build-node}'
1251     concurrent: false
1252     disabled: '{disable-job}'
1253
1254     properties:
1255       - lf-infra-properties:
1256           build-days-to-keep: '{build-days-to-keep}'
1257
1258     parameters:
1259       - lf-infra-parameters:
1260           project: '{project}'
1261           stream: '{stream}'
1262           branch: '{branch}'
1263           lftools-version: '{lftools-version}'
1264
1265     wrappers:
1266       - lf-infra-wrappers:
1267           build-timeout: '{build-timeout}'
1268           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1269       # Listed after to override openstack-infra-wrappers clouds.yaml definition
1270       - config-file-provider:
1271           files:
1272             - file-id: clouds-yaml
1273               target: '$HOME/.config/openstack/clouds.yaml'
1274             - file-id: npmrc
1275               target: '$HOME/.npmrc'
1276             - file-id: pipconf
1277               target: '$HOME/.config/pip/pip.conf'
1278
1279     triggers:
1280       - timed: '{obj:cron}'
1281
1282     builders:
1283       - lf-infra-pre-build
1284       - inject:
1285           properties-content: OS_CLOUD={openstack-cloud}
1286       - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1287
1288     publishers:
1289       - lf-infra-publish
1290
1291 - job-template:
1292     name: '{project-name}-openstack-cron'
1293     id: gerrit-openstack-cron
1294     <<: *lf_openstack_cron
1295
1296     scm:
1297       - lf-infra-gerrit-scm:
1298           git-url: '{git-url}'
1299           refspec: 'refs/heads/{branch}'
1300           branch: '{branch}'
1301           submodule-recursive: true
1302           submodule-timeout: '{submodule-timeout}'
1303           choosing-strategy: default
1304           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1305
1306 - job-template:
1307     name: '{project-name}-openstack-cron'
1308     id: github-openstack-cron
1309     <<: *lf_openstack_cron
1310
1311     scm:
1312       - lf-infra-github-scm:
1313           url: '{git-clone-url}{github-org}/{project}'
1314           refspec: ''
1315           branch: 'refs/heads/{branch}'
1316           submodule-recursive: true
1317           submodule-timeout: '{submodule-timeout}'
1318           choosing-strategy: default
1319           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1320
1321 ################
1322 # Packer Merge #
1323 ################
1324
1325 - lf_packer_merge: &lf_packer_merge
1326     name: lf-packer-merge
1327
1328     ######################
1329     # Default parameters #
1330     ######################
1331
1332     openstack: true
1333     openstack-cloud: vex
1334
1335     #####################
1336     # Job Configuration #
1337     #####################
1338
1339     parameters:
1340       - lf-infra-parameters:
1341           project: '{project}'
1342           stream: '{stream}'
1343           branch: '{branch}'
1344           lftools-version: '{lftools-version}'
1345       - lf-packer-parameters:
1346           packer-version: '{packer-version}'
1347
1348     builders:
1349       - lf-infra-packer-build:
1350           openstack: '{openstack}'
1351           openstack-cloud: '{openstack-cloud}'
1352           packer-cloud-settings: '{packer-cloud-settings}'
1353           packer-version: '{packer-version}'
1354           platform: '{platforms}'
1355           template: '{templates}'
1356
1357 - job-template:
1358     name: '{project-name}-packer-merge-{platforms}-{templates}'
1359     id: gerrit-packer-merge
1360     <<: *lf_packer_common
1361     # yamllint disable-line rule:key-duplicates
1362     <<: *lf_packer_merge
1363
1364     ######################
1365     # Default parameters #
1366     ######################
1367
1368     git-url: '$GIT_URL/$GERRIT_PROJECT'
1369
1370     gerrit_merge_triggers:
1371       - change-merged-event
1372       - comment-added-contains-event:
1373           comment-contains-value: remerge$
1374
1375     #####################
1376     # Job Configuration #
1377     #####################
1378
1379     scm:
1380       - lf-infra-gerrit-scm:
1381           git-url: '{git-url}'
1382           refspec: '$GERRIT_REFSPEC'
1383           branch: '$GERRIT_BRANCH'
1384           submodule-recursive: '{submodule-recursive}'
1385           submodule-timeout: '{submodule-timeout}'
1386           choosing-strategy: gerrit
1387           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1388
1389     triggers:
1390       - timed: '{obj:cron}'
1391       - gerrit:
1392           server-name: '{gerrit-server-name}'
1393           trigger-on: '{obj:gerrit_merge_triggers}'
1394           projects:
1395             - project-compare-type: ANT
1396               project-pattern: '{project}'
1397               branches:
1398                 - branch-compare-type: ANT
1399                   branch-pattern: '**/{branch}'
1400               file-paths:
1401                 - compare-type: REG_EXP
1402                   pattern: 'packer\/provision\/.*\.sh'
1403                 - compare-type: REG_EXP
1404                   pattern: 'packer\/provision\/.*\.bat'
1405                 - compare-type: REG_EXP
1406                   pattern: 'packer\/provision\/.*\.ps1'
1407                 - compare-type: REG_EXP
1408                   pattern: 'packer\/provision\/{templates}\.yaml'
1409                 - compare-type: REG_EXP
1410                   pattern: 'packer\/provision\/local-{templates}\.yaml'
1411                 - compare-type: REG_EXP
1412                   pattern: 'packer\/templates\/{templates}\.json'
1413                 - compare-type: REG_EXP
1414                   pattern: 'packer\/vars\/{platforms}\.json'
1415
1416 - job-template:
1417     name: '{project-name}-packer-merge-{platforms}-{templates}'
1418     id: github-packer-merge
1419     <<: *lf_packer_common
1420     # yamllint disable-line rule:key-duplicates
1421     <<: *lf_packer_merge
1422
1423     #####################
1424     # Job Configuration #
1425     #####################
1426
1427     properties:
1428       - lf-infra-properties:
1429           project: '{project}'
1430           build-days-to-keep: 7
1431       - github:
1432           url: '{github-url}/{github-org}/{project}'
1433
1434     scm:
1435       - lf-infra-github-scm:
1436           url: '{git-clone-url}{github-org}/{project}'
1437           refspec: ''
1438           branch: 'refs/heads/{branch}'
1439           submodule-recursive: '{submodule-recursive}'
1440           submodule-timeout: '{submodule-timeout}'
1441           choosing-strategy: default
1442           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1443
1444     triggers:
1445       - timed: '{obj:cron}'
1446       - github
1447       - pollscm:
1448           cron: ''
1449
1450       - github-pull-request:
1451           trigger-phrase: '^remerge$'
1452           only-trigger-phrase: true
1453           status-context: 'Packer {platforms}-{templates} Merge'
1454           permit-all: true
1455           github-hooks: true
1456           org-list:
1457             - '{github-org}'
1458           white-list: '{obj:github_pr_whitelist}'
1459           admin-list: '{obj:github_pr_admin_list}'
1460           # included-regions MUST match Gerrit Trigger file-paths
1461           included-regions:
1462             - 'packer\/provision\/.*\.sh'
1463             - 'packer\/provision\/.*\.bat'
1464             - 'packer\/provision\/.*\.ps1'
1465             - 'packer\/provision\/{templates}\.yaml'
1466             - 'packer\/provision\/local-{templates}\.yaml'
1467             - 'packer\/templates\/{templates}\.json'
1468             - 'packer\/vars\/{platforms}\.json'
1469           white-list-target-branches:
1470             - '{branch}'
1471
1472 #################
1473 # Packer Verify #
1474 #################
1475
1476 - lf_packer_verify: &lf_packer_verify
1477     name: lf-packer-verify
1478
1479     ######################
1480     # Default parameters #
1481     ######################
1482
1483     build-timeout: 10
1484     openstack: true
1485     openstack-cloud: vex
1486
1487     gerrit_verify_triggers:
1488       - patchset-created-event:
1489           exclude-drafts: true
1490           exclude-trivial-rebase: false
1491           exclude-no-code-change: false
1492       - draft-published-event
1493       - comment-added-contains-event:
1494           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1495
1496     gerrit_trigger_file_paths:
1497       - compare-type: REG_EXP
1498         pattern: 'packer\/.*'
1499
1500     # github_included_regions MUST match gerrit_trigger_file_paths
1501     github_included_regions:
1502       - 'packer\/.*'
1503
1504     #####################
1505     # Job Configuration #
1506     #####################
1507
1508     concurrent: true
1509
1510     builders:
1511       - lf-infra-packer-validate:
1512           openstack: '{openstack}'
1513           openstack-cloud: '{openstack-cloud}'
1514           packer-cloud-settings: '{packer-cloud-settings}'
1515           packer-version: '{packer-version}'
1516
1517 - job-template:
1518     name: '{project-name}-packer-verify'
1519     id: gerrit-packer-verify
1520     <<: *lf_packer_common
1521     # yamllint disable-line rule:key-duplicates
1522     <<: *lf_packer_verify
1523
1524     ######################
1525     # Default parameters #
1526     ######################
1527
1528     git-url: '$GIT_URL/$GERRIT_PROJECT'
1529
1530     #####################
1531     # Job Configuration #
1532     #####################
1533
1534     scm:
1535       - lf-infra-gerrit-scm:
1536           git-url: '{git-url}'
1537           refspec: '$GERRIT_REFSPEC'
1538           branch: '$GERRIT_BRANCH'
1539           submodule-recursive: '{submodule-recursive}'
1540           submodule-timeout: '{submodule-timeout}'
1541           choosing-strategy: gerrit
1542           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1543
1544     triggers:
1545       - gerrit:
1546           server-name: '{gerrit-server-name}'
1547           trigger-on: '{obj:gerrit_verify_triggers}'
1548           projects:
1549             - project-compare-type: ANT
1550               project-pattern: '{project}'
1551               branches:
1552                 - branch-compare-type: ANT
1553                   branch-pattern: '**/{branch}'
1554               file-paths: '{obj:gerrit_trigger_file_paths}'
1555
1556 - job-template:
1557     name: '{project-name}-packer-verify'
1558     id: github-packer-verify
1559     <<: *lf_packer_common
1560     # yamllint disable-line rule:key-duplicates
1561     <<: *lf_packer_verify
1562
1563     #####################
1564     # Job Configuration #
1565     #####################
1566
1567     properties:
1568       - lf-infra-properties:
1569           project: '{project}'
1570           build-days-to-keep: 7
1571       - github:
1572           url: '{github-url}/{github-org}/{project}'
1573
1574     scm:
1575       - lf-infra-github-scm:
1576           url: '{git-clone-url}{github-org}/{project}'
1577           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1578           branch: '$sha1'
1579           submodule-recursive: '{submodule-recursive}'
1580           submodule-timeout: '{submodule-timeout}'
1581           choosing-strategy: default
1582           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1583
1584     triggers:
1585       - github-pull-request:
1586           trigger-phrase: '^(recheck|reverify)$'
1587           only-trigger-phrase: false
1588           status-context: 'Packer Verify'
1589           permit-all: true
1590           github-hooks: true
1591           included-regions: '{obj:github_included_regions}'
1592           white-list-target-branches:
1593             - '{branch}'