Merge "Allow image protection script to be disabled"
[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     openstack-image-cleanup: true
1243     openstack-image-cleanup-age: 30
1244     openstack-image-protect: true
1245     stream: master
1246     submodule-timeout: 10
1247
1248     #####################
1249     # Job Configuration #
1250     #####################
1251
1252     project-type: freestyle
1253     node: '{build-node}'
1254     concurrent: false
1255     disabled: '{disable-job}'
1256
1257     properties:
1258       - lf-infra-properties:
1259           build-days-to-keep: '{build-days-to-keep}'
1260
1261     parameters:
1262       - lf-infra-parameters:
1263           project: '{project}'
1264           stream: '{stream}'
1265           branch: '{branch}'
1266           lftools-version: '{lftools-version}'
1267
1268     wrappers:
1269       - lf-infra-wrappers:
1270           build-timeout: '{build-timeout}'
1271           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1272       # Listed after to override openstack-infra-wrappers clouds.yaml definition
1273       - config-file-provider:
1274           files:
1275             - file-id: clouds-yaml
1276               target: '$HOME/.config/openstack/clouds.yaml'
1277             - file-id: npmrc
1278               target: '$HOME/.npmrc'
1279             - file-id: pipconf
1280               target: '$HOME/.config/pip/pip.conf'
1281
1282     triggers:
1283       - timed: '{obj:cron}'
1284
1285     builders:
1286       - lf-infra-pre-build
1287       - inject:
1288           properties-content: OS_CLOUD={openstack-cloud}
1289       # Images
1290       - conditional-step:
1291           condition-kind: boolean-expression
1292           condition-expression: '{openstack-image-protect}'
1293           steps:
1294             - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1295       - conditional-step:
1296           condition-kind: boolean-expression
1297           condition-expression: '{openstack-image-cleanup}'
1298           steps:
1299             - inject:
1300                 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1301             - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1302
1303     publishers:
1304       - lf-infra-publish
1305
1306 - job-template:
1307     name: '{project-name}-openstack-cron'
1308     id: gerrit-openstack-cron
1309     <<: *lf_openstack_cron
1310
1311     scm:
1312       - lf-infra-gerrit-scm:
1313           git-url: '{git-url}'
1314           refspec: 'refs/heads/{branch}'
1315           branch: '{branch}'
1316           submodule-recursive: true
1317           submodule-timeout: '{submodule-timeout}'
1318           choosing-strategy: default
1319           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1320
1321 - job-template:
1322     name: '{project-name}-openstack-cron'
1323     id: github-openstack-cron
1324     <<: *lf_openstack_cron
1325
1326     scm:
1327       - lf-infra-github-scm:
1328           url: '{git-clone-url}{github-org}/{project}'
1329           refspec: ''
1330           branch: 'refs/heads/{branch}'
1331           submodule-recursive: true
1332           submodule-timeout: '{submodule-timeout}'
1333           choosing-strategy: default
1334           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1335
1336 ################
1337 # Packer Merge #
1338 ################
1339
1340 - lf_packer_merge: &lf_packer_merge
1341     name: lf-packer-merge
1342
1343     ######################
1344     # Default parameters #
1345     ######################
1346
1347     openstack: true
1348     openstack-cloud: vex
1349
1350     #####################
1351     # Job Configuration #
1352     #####################
1353
1354     parameters:
1355       - lf-infra-parameters:
1356           project: '{project}'
1357           stream: '{stream}'
1358           branch: '{branch}'
1359           lftools-version: '{lftools-version}'
1360       - lf-packer-parameters:
1361           packer-version: '{packer-version}'
1362
1363     builders:
1364       - lf-infra-packer-build:
1365           openstack: '{openstack}'
1366           openstack-cloud: '{openstack-cloud}'
1367           packer-cloud-settings: '{packer-cloud-settings}'
1368           packer-version: '{packer-version}'
1369           platform: '{platforms}'
1370           template: '{templates}'
1371
1372 - job-template:
1373     name: '{project-name}-packer-merge-{platforms}-{templates}'
1374     id: gerrit-packer-merge
1375     <<: *lf_packer_common
1376     # yamllint disable-line rule:key-duplicates
1377     <<: *lf_packer_merge
1378
1379     ######################
1380     # Default parameters #
1381     ######################
1382
1383     git-url: '$GIT_URL/$GERRIT_PROJECT'
1384
1385     gerrit_merge_triggers:
1386       - change-merged-event
1387       - comment-added-contains-event:
1388           comment-contains-value: remerge$
1389
1390     #####################
1391     # Job Configuration #
1392     #####################
1393
1394     scm:
1395       - lf-infra-gerrit-scm:
1396           git-url: '{git-url}'
1397           refspec: '$GERRIT_REFSPEC'
1398           branch: '$GERRIT_BRANCH'
1399           submodule-recursive: '{submodule-recursive}'
1400           submodule-timeout: '{submodule-timeout}'
1401           choosing-strategy: gerrit
1402           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1403
1404     triggers:
1405       - timed: '{obj:cron}'
1406       - gerrit:
1407           server-name: '{gerrit-server-name}'
1408           trigger-on: '{obj:gerrit_merge_triggers}'
1409           projects:
1410             - project-compare-type: ANT
1411               project-pattern: '{project}'
1412               branches:
1413                 - branch-compare-type: ANT
1414                   branch-pattern: '**/{branch}'
1415               file-paths:
1416                 - compare-type: REG_EXP
1417                   pattern: 'packer\/provision\/.*\.sh'
1418                 - compare-type: REG_EXP
1419                   pattern: 'packer\/provision\/.*\.bat'
1420                 - compare-type: REG_EXP
1421                   pattern: 'packer\/provision\/.*\.ps1'
1422                 - compare-type: REG_EXP
1423                   pattern: 'packer\/provision\/{templates}\.yaml'
1424                 - compare-type: REG_EXP
1425                   pattern: 'packer\/provision\/local-{templates}\.yaml'
1426                 - compare-type: REG_EXP
1427                   pattern: 'packer\/templates\/{templates}\.json'
1428                 - compare-type: REG_EXP
1429                   pattern: 'packer\/vars\/{platforms}\.json'
1430
1431 - job-template:
1432     name: '{project-name}-packer-merge-{platforms}-{templates}'
1433     id: github-packer-merge
1434     <<: *lf_packer_common
1435     # yamllint disable-line rule:key-duplicates
1436     <<: *lf_packer_merge
1437
1438     #####################
1439     # Job Configuration #
1440     #####################
1441
1442     properties:
1443       - lf-infra-properties:
1444           project: '{project}'
1445           build-days-to-keep: 7
1446       - github:
1447           url: '{github-url}/{github-org}/{project}'
1448
1449     scm:
1450       - lf-infra-github-scm:
1451           url: '{git-clone-url}{github-org}/{project}'
1452           refspec: ''
1453           branch: 'refs/heads/{branch}'
1454           submodule-recursive: '{submodule-recursive}'
1455           submodule-timeout: '{submodule-timeout}'
1456           choosing-strategy: default
1457           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1458
1459     triggers:
1460       - timed: '{obj:cron}'
1461       - github
1462       - pollscm:
1463           cron: ''
1464
1465       - github-pull-request:
1466           trigger-phrase: '^remerge$'
1467           only-trigger-phrase: true
1468           status-context: 'Packer {platforms}-{templates} Merge'
1469           permit-all: true
1470           github-hooks: true
1471           org-list:
1472             - '{github-org}'
1473           white-list: '{obj:github_pr_whitelist}'
1474           admin-list: '{obj:github_pr_admin_list}'
1475           # included-regions MUST match Gerrit Trigger file-paths
1476           included-regions:
1477             - 'packer\/provision\/.*\.sh'
1478             - 'packer\/provision\/.*\.bat'
1479             - 'packer\/provision\/.*\.ps1'
1480             - 'packer\/provision\/{templates}\.yaml'
1481             - 'packer\/provision\/local-{templates}\.yaml'
1482             - 'packer\/templates\/{templates}\.json'
1483             - 'packer\/vars\/{platforms}\.json'
1484           white-list-target-branches:
1485             - '{branch}'
1486
1487 #################
1488 # Packer Verify #
1489 #################
1490
1491 - lf_packer_verify: &lf_packer_verify
1492     name: lf-packer-verify
1493
1494     ######################
1495     # Default parameters #
1496     ######################
1497
1498     build-timeout: 10
1499     openstack: true
1500     openstack-cloud: vex
1501
1502     gerrit_verify_triggers:
1503       - patchset-created-event:
1504           exclude-drafts: true
1505           exclude-trivial-rebase: false
1506           exclude-no-code-change: false
1507       - draft-published-event
1508       - comment-added-contains-event:
1509           comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1510
1511     gerrit_trigger_file_paths:
1512       - compare-type: REG_EXP
1513         pattern: 'packer\/.*'
1514
1515     # github_included_regions MUST match gerrit_trigger_file_paths
1516     github_included_regions:
1517       - 'packer\/.*'
1518
1519     #####################
1520     # Job Configuration #
1521     #####################
1522
1523     concurrent: true
1524
1525     builders:
1526       - lf-infra-packer-validate:
1527           openstack: '{openstack}'
1528           openstack-cloud: '{openstack-cloud}'
1529           packer-cloud-settings: '{packer-cloud-settings}'
1530           packer-version: '{packer-version}'
1531
1532 - job-template:
1533     name: '{project-name}-packer-verify'
1534     id: gerrit-packer-verify
1535     <<: *lf_packer_common
1536     # yamllint disable-line rule:key-duplicates
1537     <<: *lf_packer_verify
1538
1539     ######################
1540     # Default parameters #
1541     ######################
1542
1543     git-url: '$GIT_URL/$GERRIT_PROJECT'
1544
1545     #####################
1546     # Job Configuration #
1547     #####################
1548
1549     scm:
1550       - lf-infra-gerrit-scm:
1551           git-url: '{git-url}'
1552           refspec: '$GERRIT_REFSPEC'
1553           branch: '$GERRIT_BRANCH'
1554           submodule-recursive: '{submodule-recursive}'
1555           submodule-timeout: '{submodule-timeout}'
1556           choosing-strategy: gerrit
1557           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1558
1559     triggers:
1560       - gerrit:
1561           server-name: '{gerrit-server-name}'
1562           trigger-on: '{obj:gerrit_verify_triggers}'
1563           projects:
1564             - project-compare-type: ANT
1565               project-pattern: '{project}'
1566               branches:
1567                 - branch-compare-type: ANT
1568                   branch-pattern: '**/{branch}'
1569               file-paths: '{obj:gerrit_trigger_file_paths}'
1570
1571 - job-template:
1572     name: '{project-name}-packer-verify'
1573     id: github-packer-verify
1574     <<: *lf_packer_common
1575     # yamllint disable-line rule:key-duplicates
1576     <<: *lf_packer_verify
1577
1578     #####################
1579     # Job Configuration #
1580     #####################
1581
1582     properties:
1583       - lf-infra-properties:
1584           project: '{project}'
1585           build-days-to-keep: 7
1586       - github:
1587           url: '{github-url}/{github-org}/{project}'
1588
1589     scm:
1590       - lf-infra-github-scm:
1591           url: '{git-clone-url}{github-org}/{project}'
1592           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1593           branch: '$sha1'
1594           submodule-recursive: '{submodule-recursive}'
1595           submodule-timeout: '{submodule-timeout}'
1596           choosing-strategy: default
1597           jenkins-ssh-credential: '{jenkins-ssh-credential}'
1598
1599     triggers:
1600       - github-pull-request:
1601           trigger-phrase: '^(recheck|reverify)$'
1602           only-trigger-phrase: false
1603           status-context: 'Packer Verify'
1604           permit-all: true
1605           github-hooks: true
1606           included-regions: '{obj:github_included_regions}'
1607           white-list-target-branches:
1608             - '{branch}'