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