Use include-regions to limit JJB build paths
[releng/global-jjb.git] / jjb / lf-ci-jobs.yaml
1 ---
2 - job-group:
3     name: '{project-name}-ci-jobs'
4
5     jobs:
6       - gerrit-jenkins-cfg-merge
7       - gerrit-jjb-deploy-job
8       - gerrit-jjb-merge
9       - gerrit-jjb-verify
10
11 - job-group:
12     name: '{project-name}-github-ci-jobs'
13
14     jobs:
15       - github-jenkins-cfg-merge
16       - github-jjb-deploy-job
17       - github-jjb-merge
18       - github-jjb-verify
19
20 - job-group:
21     name: '{project-name}-packer-jobs'
22
23     jobs:
24       - gerrit-packer-merge
25       - gerrit-packer-verify
26
27
28 - job-group:
29     name: '{project-name}-github-packer-jobs'
30
31     jobs:
32       - github-packer-merge
33       - github-packer-verify
34
35 ####################
36 # COMMON FUNCTIONS #
37 ####################
38
39 - builder:
40     name: lf-infra-jjbini
41     builders:
42       - config-file-provider:
43           files:
44             - file-id: jjbini
45               target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
46
47 - builder:
48     name: lf-infra-jjbini-sandbox
49     # TODO: Consolidate this into jjbini when JJB2.0 is available.
50     builders:
51       - config-file-provider:
52           files:
53             - file-id: jjbini-sandbox
54               target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
55
56 - lf_packer_file_paths: &lf_packer_file_paths
57     name: lf-packer-file-paths
58     file-paths:
59       - compare-type: ANT
60         pattern: 'packer/vars/{platforms}.json'
61       - compare-type: ANT
62         pattern: 'packer/templates/{templates}.json'
63       - compare-type: ANT
64         pattern: 'packer/provision/*.sh'
65       - compare-type: ANT
66         pattern: 'packer/provision/{templates}.yaml'
67       - compare-type: ANT
68         pattern: 'packer/provision/local-{templates}.yaml'
69       - compare-type: ANT
70         pattern: 'packer/provision/lib/**'
71
72 - lf_packer: &lf_packer_common
73     name: lf-packer-common
74     # Provide configuration common in packer jobs.
75
76     ######################
77     # Default parameters #
78     ######################
79
80     branch: master
81     build-timeout: 90
82     stream: master
83     submodule-recursive: true
84     packer-cloud-settings: packer-cloud-env
85     packer-version: 1.2.2
86
87     #####################
88     # Job Configuration #
89     #####################
90
91     project-type: freestyle
92     node: '{build-node}'
93
94     properties:
95       - lf-infra-properties:
96           project: '{project}'
97           build-days-to-keep: 7
98
99     parameters:
100       - lf-infra-parameters:
101           project: '{project}'
102           stream: '{stream}'
103           branch: '{branch}'
104           lftools-version: '{lftools-version}'
105       - lf-packer-parameters:
106           packer-version: '{packer-version}'
107
108     wrappers:
109       - lf-infra-wrappers:
110           build-timeout: '{build-timeout}'
111           jenkins-ssh-credential: '{jenkins-ssh-credential}'
112
113     publishers:
114       - lf-infra-publish
115
116 - parameter:
117     name: lf-infra-jjb-parameters
118     parameters:
119       - string:
120           name: JJB_VERSION
121           default: '{jjb-version}'
122           description: Jenkins Job Builder version to download and install.
123
124 - parameter:
125     name: lf-packer-parameters
126     parameters:
127       - string:
128           name: PACKER_VERSION
129           default: '{packer-version}'
130           description: Packer version to download and install.
131
132 - lf_jjb_common: &lf_jjb_common
133     name: lf-jjb-common
134
135     ######################
136     # Default parameters #
137     ######################
138
139     branch: master
140     build-timeout: 10
141     jjb-version: 2.0.5
142     stream: master
143     submodule-recursive: true
144
145     gerrit_trigger_file_paths:
146       - compare-type: REG_EXP
147         pattern: '.*\.groovy'
148       - compare-type: REG_EXP
149         pattern: '.*\.sh'
150       - compare-type: REG_EXP
151         pattern: '.*\.(yaml|yml)'
152       - compare-type: REG_EXP
153         pattern: '.*\/global-jjb'
154
155     # github_included_regions MUST match gerrit_trigger_file_paths
156     github_included_regions:
157       - '.*\.groovy'
158       - '.*\.sh'
159       - '.*\.(yaml|yml)'
160       - '.*\/global-jjb'
161
162     #####################
163     # Job Configuration #
164     #####################
165
166     project-type: freestyle
167     node: '{build-node}'
168
169     properties:
170       - lf-infra-properties:
171           project: '{project}'
172           build-days-to-keep: 7
173
174     parameters:
175       - lf-infra-parameters:
176           project: '{project}'
177           stream: '{stream}'
178           branch: '{branch}'
179           lftools-version: '{lftools-version}'
180       - lf-infra-jjb-parameters:
181           jjb-version: '{jjb-version}'
182
183     wrappers:
184       - lf-infra-wrappers:
185           build-timeout: '{build-timeout}'
186           jenkins-ssh-credential: '{jenkins-ssh-credential}'
187
188     publishers:
189       - lf-infra-publish
190
191 ######################
192 # Gerrit Branch Lock #
193 ######################
194
195 - job-template:
196     name: '{project-name}-gerrit-branch-lock-{stream}'
197     id: gerrit-branch-lock
198
199     ######################
200     # Default parameters #
201     ######################
202
203     branch: master
204     git-url: '$GIT_URL/$GERRIT_PROJECT'
205     stream: master
206     gerrit_merge_triggers:
207       - comment-added-contains-event:
208           comment-contains-value: (un)?lock branch$
209
210     #####################
211     # Job Configuration #
212     #####################
213
214     project-type: freestyle
215     node: '{build-node}'
216
217     properties:
218       - lf-infra-properties:
219           project: '{project}'
220           build-days-to-keep: 1
221
222     parameters:
223       - lf-infra-parameters:
224           project: '{project}'
225           stream: '{stream}'
226           branch: '{branch}'
227           lftools-version: '{lftools-version}'
228
229     wrappers:
230       - lf-infra-wrappers:
231           build-timeout: 5
232           jenkins-ssh-credential: '{jenkins-ssh-credential}'
233
234     scm:
235       - lf-infra-gerrit-scm:
236           git-url: '{git-url}'
237           refspec: ''
238           branch: '{branch}'
239           submodule-recursive: false
240           choosing-strategy: default
241           jenkins-ssh-credential: '{jenkins-ssh-credential}'
242
243     triggers:
244       - gerrit:
245           server-name: '{gerrit-server-name}'
246           trigger-on: '{obj:gerrit_merge_triggers}'
247           projects:
248             - project-compare-type: ANT
249               project-pattern: '{project}'
250               branches:
251                 - branch-compare-type: ANT
252                   branch-pattern: '**/{branch}'
253
254     builders:
255       - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
256
257
258     publishers:
259       - lf-infra-publish
260
261 ##########################################
262 # Jenkins Configuration Management Merge #
263 ##########################################
264
265 - builder:
266     name: lf-jenkins-cfg-clouds
267     builders:
268       - lf-infra-jjbini
269       - inject:
270           properties-content: 'jenkins_silos={jenkins-silos}'
271       - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
272       - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
273
274 - builder:
275     name: lf-jenkins-cfg-global-vars
276     builders:
277       - lf-infra-jjbini
278       - inject:
279           properties-content: 'jenkins_silos={jenkins-silos}'
280       - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
281       - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
282
283 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
284     name: lf-jenkins-cfg-merge
285
286     ######################
287     # Default parameters #
288     ######################
289
290     branch: master
291     cron: '@daily'
292     git-url: '$GIT_URL/$GERRIT_PROJECT'
293     jenkins-silos: production sandbox
294
295     gerrit_merge_triggers:
296       - change-merged-event
297       - comment-added-contains-event:
298           comment-contains-value: remerge$
299
300     gerrit_trigger_file_paths:
301       - compare-type: ANT
302         pattern: 'jenkins-config/**'
303
304     #####################
305     # Job Configuration #
306     #####################
307
308     project-type: freestyle
309     node: '{build-node}'
310     concurrent: false
311
312     properties:
313       - lf-infra-properties:
314           project: '{project}'
315           build-days-to-keep: 1
316
317     parameters:
318       - lf-infra-parameters:
319           project: '{project}'
320           stream: ''
321           branch: master
322           lftools-version: '{lftools-version}'
323
324     wrappers:
325       - lf-infra-wrappers:
326           build-timeout: 10
327           jenkins-ssh-credential: '{jenkins-ssh-credential}'
328
329     builders:
330       - shell: !include-raw-escape:
331           - ../shell/lftools-install.sh
332       - lf-jenkins-cfg-global-vars:
333           jenkins-silos: '{jenkins-silos}'
334       - lf-jenkins-cfg-clouds:
335           jenkins-silos: '{jenkins-silos}'
336
337     publishers:
338       - lf-infra-publish
339
340 - job-template:
341     name: '{project-name}-jenkins-cfg-merge'
342     id: gerrit-jenkins-cfg-merge
343     <<: *lf_jenkins_cfg_merge
344
345     scm:
346       - lf-infra-gerrit-scm:
347           git-url: '{git-url}'
348           refspec: 'refs/heads/{branch}'
349           branch: '{branch}'
350           submodule-recursive: true
351           choosing-strategy: default
352           jenkins-ssh-credential: '{jenkins-ssh-credential}'
353
354     triggers:
355       - timed: '{obj:cron}'
356       - gerrit:
357           server-name: '{gerrit-server-name}'
358           trigger-on: '{obj:gerrit_merge_triggers}'
359           projects:
360             - project-compare-type: ANT
361               project-pattern: '{project}'
362               branches:
363                 - branch-compare-type: ANT
364                   branch-pattern: '**/{branch}'
365               file-paths: '{obj:gerrit_trigger_file_paths}'
366
367 - job-template:
368     name: '{project-name}-jenkins-cfg-merge'
369     id: github-jenkins-cfg-merge
370     <<: *lf_jenkins_cfg_merge
371
372     properties:
373       - github:
374           url: '{git-url}/{github-org}/{project}'
375
376     scm:
377       - lf-infra-github-scm:
378           url: '{git-clone-url}{github-org}/{project}'
379           refspec: ''
380           branch: 'refs/heads/{branch}'
381           submodule-recursive: true
382           choosing-strategy: default
383           jenkins-ssh-credential: '{jenkins-ssh-credential}'
384
385     triggers:
386       - timed: '{obj:cron}'
387       - github
388       - pollscm:
389           cron: ''
390       - lf-infra-github-pr-trigger:
391           trigger-phrase: '^remerge$'
392           only-trigger-phrase: true
393           status-context: 'Jenkins CFG Merge'
394           permit-all: false
395           github-hooks: true
396           github-org: '{github-org}'
397           github_pr_whitelist: '{obj:github_pr_whitelist}'
398           github_pr_admin_list: '{obj:github_pr_admin_list}'
399
400
401 ##################
402 # JJB DEPLOY JOB #
403 ##################
404
405 - lf_jjb_deploy_job: &lf_jjb_deploy_job
406     name: lf-jjb-deploy-job
407
408     ######################
409     # Default parameters #
410     ######################
411
412     branch: master
413     git-url: '$GIT_URL/$GERRIT_PROJECT'
414     stream: master
415     gerrit_jjb_deploy_job_triggers:
416       - comment-added-contains-event:
417           comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
418
419     #####################
420     # Job Configuration #
421     #####################
422
423     project-type: freestyle
424     node: '{build-node}'
425     concurrent: true
426
427     properties:
428       - lf-infra-properties:
429           project: '{project}'
430           build-days-to-keep: 1
431
432     parameters:
433       - lf-infra-parameters:
434           project: '{project}'
435           stream: '{stream}'
436           branch: '{branch}'
437           lftools-version: '{lftools-version}'
438
439     wrappers:
440       - lf-infra-wrappers:
441           build-timeout: 5
442           jenkins-ssh-credential: '{jenkins-ssh-credential}'
443
444     builders:
445       - lf-pip-install:
446           pip-packages: jenkins-job-builder
447       - lf-infra-jjbini-sandbox
448       - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
449
450     publishers:
451       - lf-infra-publish
452
453 - job-template:
454     name: '{project-name}-jjb-deploy-job'
455     id: gerrit-jjb-deploy-job
456     <<: *lf_jjb_deploy_job
457
458     scm:
459       - lf-infra-gerrit-scm:
460           git-url: '{git-url}'
461           refspec: 'refs/heads/{branch}'
462           branch: '{branch}'
463           submodule-recursive: true
464           choosing-strategy: default
465           jenkins-ssh-credential: '{jenkins-ssh-credential}'
466
467     triggers:
468       - gerrit:
469           server-name: '{gerrit-server-name}'
470           trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
471           projects:
472             - project-compare-type: ANT
473               project-pattern: '**'
474               branches:
475                 - branch-compare-type: ANT
476                   branch-pattern: '**'
477           skip-vote:
478             success: true
479             failed: true
480             unstable: true
481             notbuilt: true
482
483 - job-template:
484     name: '{project-name}-jjb-deploy-job'
485     id: github-jjb-deploy-job
486     <<: *lf_jjb_deploy_job
487
488     properties:
489       - github:
490           url: '{git-url}/{github-org}/{project}'
491
492     scm:
493       - lf-infra-github-scm:
494           url: '{git-clone-url}{github-org}/{project}'
495           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
496           branch: '$sha1'
497           submodule-recursive: true
498           choosing-strategy: default
499           jenkins-ssh-credential: '{jenkins-ssh-credential}'
500
501     triggers:
502       - github-pull-request:
503           trigger-phrase: '^jjb-deploy (?!\*+$).+$'
504           only-trigger-phrase: true
505           status-context: 'JJB Deploy Job'
506           permit-all: true
507           github-hooks: true
508
509 #############
510 # JJB Merge #
511 #############
512
513 - lf_jjb_merge: &lf_jjb_merge
514     name: lf-jjb-merge
515
516     ######################
517     # Default parameters #
518     ######################
519
520     gerrit_merge_triggers:
521       - change-merged-event
522       - comment-added-contains-event:
523           comment-contains-value: remerge$
524
525     #####################
526     # Job Configuration #
527     #####################
528
529     builders:
530       - lf-infra-jjbini
531       - shell: !include-raw-escape:
532           - ../shell/jjb-install.sh
533           - ../shell/jjb-merge-job.sh
534           - ../shell/jjb-cleanup.sh
535
536 - job-template:
537     name: '{project-name}-jjb-merge'
538     id: gerrit-jjb-merge
539     <<: *lf_jjb_common
540     # yamllint disable-line rule:key-duplicates
541     <<: *lf_jjb_merge
542
543     git-url: '$GIT_URL/$GERRIT_PROJECT'
544
545     scm:
546       - lf-infra-gerrit-scm:
547           git-url: '{git-url}'
548           refspec: ''
549           branch: '{branch}'
550           submodule-recursive: '{submodule-recursive}'
551           choosing-strategy: default
552           jenkins-ssh-credential: '{jenkins-ssh-credential}'
553
554     triggers:
555       - gerrit:
556           server-name: '{gerrit-server-name}'
557           trigger-on: '{obj:gerrit_merge_triggers}'
558           projects:
559             - project-compare-type: ANT
560               project-pattern: '{project}'
561               branches:
562                 - branch-compare-type: ANT
563                   branch-pattern: '**/{branch}'
564               file-paths: '{obj:gerrit_trigger_file_paths}'
565
566 - job-template:
567     name: '{project-name}-jjb-merge'
568     id: github-jjb-merge
569     <<: *lf_jjb_common
570     # yamllint disable-line rule:key-duplicates
571     <<: *lf_jjb_merge
572
573     #####################
574     # Job Configuration #
575     #####################
576
577     properties:
578       - github:
579           url: '{git-url}/{github-org}/{project}'
580
581     scm:
582       - lf-infra-github-scm:
583           url: '{git-clone-url}{github-org}/{project}'
584           refspec: ''
585           branch: 'refs/heads/{branch}'
586           submodule-recursive: '{submodule-recursive}'
587           choosing-strategy: default
588           jenkins-ssh-credential: '{jenkins-ssh-credential}'
589
590     triggers:
591       - github
592       - pollscm:
593           cron: ''
594       - github-pull-request:
595           trigger-phrase: '^remerge$'
596           only-trigger-phrase: true
597           status-context: 'JJB Merge'
598           permit-all: false
599           github-hooks: true
600           org-list:
601             - '{github-org}'
602           white-list: '{obj:github_pr_whitelist}'
603           admin-list: '{obj:github_pr_admin_list}'
604           included-regions: '{obj:github_included_regions}'
605
606 ##############
607 # JJB Verify #
608 ##############
609
610 - lf_jjb_verify: &lf_jjb_verify
611     name: lf-jjb-verify
612
613     ######################
614     # Default parameters #
615     ######################
616
617     gerrit_verify_triggers:
618       - patchset-created-event:
619           exclude-drafts: true
620           exclude-trivial-rebase: false
621           exclude-no-code-change: false
622       - draft-published-event
623       - comment-added-contains-event:
624           comment-contains-value: recheck$
625
626     #####################
627     # Job Configuration #
628     #####################
629
630     concurrent: true
631
632     builders:
633       - lf-infra-jjbini
634       - shell: !include-raw-escape:
635           - ../shell/git-validate-jira-urls.sh
636           - ../shell/jjb-install.sh
637           - ../shell/jjb-verify-job.sh
638           - ../shell/jjb-check-unicode.sh
639           - ../shell/jjb-cleanup.sh
640       - lf-infra-gpg-verify-git-signature
641
642 - job-template:
643     name: '{project-name}-jjb-verify'
644     id: gerrit-jjb-verify
645     <<: *lf_jjb_common
646     # yamllint disable-line rule:key-duplicates
647     <<: *lf_jjb_verify
648
649     ######################
650     # Default parameters #
651     ######################
652
653     git-url: '$GIT_URL/$GERRIT_PROJECT'
654
655     #####################
656     # Job Configuration #
657     #####################
658
659     scm:
660       - lf-infra-gerrit-scm:
661           git-url: '{git-url}'
662           refspec: '$GERRIT_REFSPEC'
663           branch: '$GERRIT_BRANCH'
664           submodule-recursive: '{submodule-recursive}'
665           choosing-strategy: gerrit
666           jenkins-ssh-credential: '{jenkins-ssh-credential}'
667
668     triggers:
669       - gerrit:
670           server-name: '{gerrit-server-name}'
671           trigger-on: '{obj:gerrit_verify_triggers}'
672           projects:
673             - project-compare-type: ANT
674               project-pattern: '{project}'
675               branches:
676                 - branch-compare-type: ANT
677                   branch-pattern: '**/{branch}'
678               file-paths: '{obj:gerrit_trigger_file_paths}'
679
680 - job-template:
681     name: '{project-name}-jjb-verify'
682     id: github-jjb-verify
683     <<: *lf_jjb_common
684     # yamllint disable-line rule:key-duplicates
685     <<: *lf_jjb_verify
686
687     #####################
688     # Job Configuration #
689     #####################
690
691     properties:
692       - github:
693           url: '{git-url}/{github-org}/{project}'
694
695     scm:
696       - lf-infra-github-scm:
697           url: '{git-clone-url}{github-org}/{project}'
698           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
699           branch: '$sha1'
700           submodule-recursive: '{submodule-recursive}'
701           choosing-strategy: default
702           jenkins-ssh-credential: '{jenkins-ssh-credential}'
703
704     triggers:
705       - github-pull-request:
706           trigger-phrase: '^recheck$'
707           only-trigger-phrase: false
708           status-context: 'JJB Verify'
709           permit-all: true
710           github-hooks: true
711           included-regions: '{obj:github_included_regions}'
712
713 ################
714 # Packer Merge #
715 ################
716
717 - lf_packer_merge: &lf_packer_merge
718     name: lf-packer-merge
719
720     ######################
721     # Default parameters #
722     ######################
723
724     gerrit_merge_triggers:
725       - change-merged-event
726       - comment-added-contains-event:
727           comment-contains-value: remerge$
728
729     #####################
730     # Job Configuration #
731     #####################
732
733     builders:
734       - lf-infra-packer-validate:
735           packer-cloud-settings: '{packer-cloud-settings}'
736           packer-version: '{packer-version}'
737       - lf-infra-packer-build:
738           packer-cloud-settings: '{packer-cloud-settings}'
739           packer-version: '{packer-version}'
740           platform: '{platforms}'
741           template: '{templates}'
742
743 - job-template:
744     name: '{project-name}-packer-merge-{platforms}-{templates}'
745     id: gerrit-packer-merge
746     <<: *lf_packer_common
747     # yamllint disable-line rule:key-duplicates
748     <<: *lf_packer_merge
749
750     git-url: '$GIT_URL/$GERRIT_PROJECT'
751
752     scm:
753       - lf-infra-gerrit-scm:
754           git-url: '{git-url}'
755           refspec: '$GERRIT_REFSPEC'
756           branch: '$GERRIT_BRANCH'
757           submodule-recursive: '{submodule-recursive}'
758           choosing-strategy: gerrit
759           jenkins-ssh-credential: '{jenkins-ssh-credential}'
760
761     triggers:
762       - timed: '00 10 1 * *'
763       - gerrit:
764           server-name: '{gerrit-server-name}'
765           trigger-on: '{obj:gerrit_merge_triggers}'
766           projects:
767             - project-compare-type: ANT
768               project-pattern: '{project}'
769               branches:
770                 - branch-compare-type: ANT
771                   branch-pattern: '**/{branch}'
772               <<: *lf_packer_file_paths
773
774 - job-template:
775     name: '{project-name}-packer-merge-{platforms}-{templates}'
776     id: github-packer-merge
777     <<: *lf_packer_common
778     # yamllint disable-line rule:key-duplicates
779     <<: *lf_packer_merge
780
781     properties:
782       - github:
783           url: '{git-url}/{github-org}/{project}'
784
785     scm:
786       - lf-infra-github-scm:
787           url: '{git-clone-url}{github-org}/{project}'
788           refspec: ''
789           branch: 'refs/heads/{branch}'
790           submodule-recursive: '{submodule-recursive}'
791           choosing-strategy: default
792           jenkins-ssh-credential: '{jenkins-ssh-credential}'
793
794     triggers:
795       - timed: '00 10 1 * *'
796       - github
797       - pollscm:
798           cron: ''
799       - lf-infra-github-pr-trigger:
800           trigger-phrase: '^remerge$'
801           only-trigger-phrase: true
802           status-context: 'Packer {platforms}-${templates} Merge'
803           permit-all: false
804           github-hooks: true
805           github-org: '{github-org}'
806           github_pr_whitelist: '{obj:github_pr_whitelist}'
807           github_pr_admin_list: '{obj:github_pr_admin_list}'
808
809 #################
810 # Packer Verify #
811 #################
812
813 - lf_packer_verify: &lf_packer_verify
814     name: lf-packer-verify
815
816     ######################
817     # Default parameters #
818     ######################
819
820     build-timeout: 10
821
822     gerrit_verify_triggers:
823       - patchset-created-event:
824           exclude-drafts: true
825           exclude-trivial-rebase: false
826           exclude-no-code-change: false
827       - draft-published-event
828       - comment-added-contains-event:
829           comment-contains-value: recheck$
830
831     gerrit_trigger_file_paths:
832       - compare-type: ANT
833         pattern: 'packer/vars/**.json'
834       - compare-type: ANT
835         pattern: 'packer/templates/**.json'
836       - compare-type: ANT
837         pattern: 'packer/provision/**.sh'
838       - compare-type: ANT
839         pattern: 'packer/provision/lib/**'
840
841     #####################
842     # Job Configuration #
843     #####################
844
845     concurrent: true
846
847     builders:
848       - lf-infra-packer-validate:
849           packer-cloud-settings: '{packer-cloud-settings}'
850           packer-version: '{packer-version}'
851
852 - job-template:
853     name: '{project-name}-packer-verify'
854     id: gerrit-packer-verify
855     <<: *lf_packer_common
856     # yamllint disable-line rule:key-duplicates
857     <<: *lf_packer_verify
858
859     git-url: '$GIT_URL/$GERRIT_PROJECT'
860
861     scm:
862       - lf-infra-gerrit-scm:
863           git-url: '{git-url}'
864           refspec: '$GERRIT_REFSPEC'
865           branch: '$GERRIT_BRANCH'
866           submodule-recursive: '{submodule-recursive}'
867           choosing-strategy: gerrit
868           jenkins-ssh-credential: '{jenkins-ssh-credential}'
869
870     triggers:
871       - gerrit:
872           server-name: '{gerrit-server-name}'
873           trigger-on: '{obj:gerrit_verify_triggers}'
874           projects:
875             - project-compare-type: ANT
876               project-pattern: '{project}'
877               branches:
878                 - branch-compare-type: ANT
879                   branch-pattern: '**/{branch}'
880               file-paths: '{obj:gerrit_trigger_file_paths}'
881
882 - job-template:
883     name: '{project-name}-packer-verify'
884     id: github-packer-verify
885     <<: *lf_packer_common
886     # yamllint disable-line rule:key-duplicates
887     <<: *lf_packer_verify
888
889     properties:
890       - github:
891           url: '{git-url}/{github-org}/{project}'
892
893     scm:
894       - lf-infra-github-scm:
895           url: '{git-clone-url}{github-org}/{project}'
896           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
897           branch: '$sha1'
898           submodule-recursive: '{submodule-recursive}'
899           choosing-strategy: default
900           jenkins-ssh-credential: '{jenkins-ssh-credential}'
901
902     triggers:
903       - lf-infra-github-pr-trigger:
904           trigger-phrase: '^recheck$'
905           only-trigger-phrase: false
906           status-context: 'Packer Verify'
907           permit-all: true
908           github-hooks: true
909           github-org: ''
910           github_pr_whitelist:
911             - ''
912           github_pr_admin_list:
913             - ''