Use include-regions to limit JenkinsCFG build path
[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: ANT
147         pattern: '**/*.groovy'
148       - compare-type: ANT
149         pattern: '**/*.sh'
150       - compare-type: ANT
151         pattern: '**/*.yml'
152       - compare-type: ANT
153         pattern: '**/*.yaml'
154       - compare-type: ANT
155         pattern: '**/global-jjb'
156
157     #####################
158     # Job Configuration #
159     #####################
160
161     project-type: freestyle
162     node: '{build-node}'
163
164     properties:
165       - lf-infra-properties:
166           project: '{project}'
167           build-days-to-keep: 7
168
169     parameters:
170       - lf-infra-parameters:
171           project: '{project}'
172           stream: '{stream}'
173           branch: '{branch}'
174           lftools-version: '{lftools-version}'
175       - lf-infra-jjb-parameters:
176           jjb-version: '{jjb-version}'
177
178     wrappers:
179       - lf-infra-wrappers:
180           build-timeout: '{build-timeout}'
181           jenkins-ssh-credential: '{jenkins-ssh-credential}'
182
183     publishers:
184       - lf-infra-publish
185
186 ######################
187 # Gerrit Branch Lock #
188 ######################
189
190 - job-template:
191     name: '{project-name}-gerrit-branch-lock-{stream}'
192     id: gerrit-branch-lock
193
194     ######################
195     # Default parameters #
196     ######################
197
198     branch: master
199     git-url: '$GIT_URL/$GERRIT_PROJECT'
200     stream: master
201     gerrit_merge_triggers:
202       - comment-added-contains-event:
203           comment-contains-value: (un)?lock branch$
204
205     #####################
206     # Job Configuration #
207     #####################
208
209     project-type: freestyle
210     node: '{build-node}'
211
212     properties:
213       - lf-infra-properties:
214           project: '{project}'
215           build-days-to-keep: 1
216
217     parameters:
218       - lf-infra-parameters:
219           project: '{project}'
220           stream: '{stream}'
221           branch: '{branch}'
222           lftools-version: '{lftools-version}'
223
224     wrappers:
225       - lf-infra-wrappers:
226           build-timeout: 5
227           jenkins-ssh-credential: '{jenkins-ssh-credential}'
228
229     scm:
230       - lf-infra-gerrit-scm:
231           git-url: '{git-url}'
232           refspec: ''
233           branch: '{branch}'
234           submodule-recursive: false
235           choosing-strategy: default
236           jenkins-ssh-credential: '{jenkins-ssh-credential}'
237
238     triggers:
239       - gerrit:
240           server-name: '{gerrit-server-name}'
241           trigger-on: '{obj:gerrit_merge_triggers}'
242           projects:
243             - project-compare-type: ANT
244               project-pattern: '{project}'
245               branches:
246                 - branch-compare-type: ANT
247                   branch-pattern: '**/{branch}'
248
249     builders:
250       - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
251
252
253     publishers:
254       - lf-infra-publish
255
256 ##########################################
257 # Jenkins Configuration Management Merge #
258 ##########################################
259
260 - builder:
261     name: lf-jenkins-cfg-clouds
262     builders:
263       - lf-infra-jjbini
264       - inject:
265           properties-content: 'jenkins_silos={jenkins-silos}'
266       - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
267       - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
268
269 - builder:
270     name: lf-jenkins-cfg-global-vars
271     builders:
272       - lf-infra-jjbini
273       - inject:
274           properties-content: 'jenkins_silos={jenkins-silos}'
275       - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
276       - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
277
278 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
279     name: lf-jenkins-cfg-merge
280
281     ######################
282     # Default parameters #
283     ######################
284
285     branch: master
286     cron: '@daily'
287     git-url: '$GIT_URL/$GERRIT_PROJECT'
288     jenkins-silos: production sandbox
289
290     gerrit_merge_triggers:
291       - change-merged-event
292       - comment-added-contains-event:
293           comment-contains-value: remerge$
294
295     gerrit_trigger_file_paths:
296       - compare-type: REG_EXP
297         pattern: 'jenkins-config\/.*'
298
299     # github_included_regions MUST match gerrit_trigger_file_paths
300     github_included_regions:
301       - 'jenkins-config\/.*'
302
303     #####################
304     # Job Configuration #
305     #####################
306
307     project-type: freestyle
308     node: '{build-node}'
309     concurrent: false
310
311     properties:
312       - lf-infra-properties:
313           project: '{project}'
314           build-days-to-keep: 1
315
316     parameters:
317       - lf-infra-parameters:
318           project: '{project}'
319           stream: ''
320           branch: master
321           lftools-version: '{lftools-version}'
322
323     wrappers:
324       - lf-infra-wrappers:
325           build-timeout: 10
326           jenkins-ssh-credential: '{jenkins-ssh-credential}'
327
328     builders:
329       - shell: !include-raw-escape:
330           - ../shell/lftools-install.sh
331       - lf-jenkins-cfg-global-vars:
332           jenkins-silos: '{jenkins-silos}'
333       - lf-jenkins-cfg-clouds:
334           jenkins-silos: '{jenkins-silos}'
335
336     publishers:
337       - lf-infra-publish
338
339 - job-template:
340     name: '{project-name}-jenkins-cfg-merge'
341     id: gerrit-jenkins-cfg-merge
342     <<: *lf_jenkins_cfg_merge
343
344     scm:
345       - lf-infra-gerrit-scm:
346           git-url: '{git-url}'
347           refspec: 'refs/heads/{branch}'
348           branch: '{branch}'
349           submodule-recursive: true
350           choosing-strategy: default
351           jenkins-ssh-credential: '{jenkins-ssh-credential}'
352
353     triggers:
354       - timed: '{obj:cron}'
355       - gerrit:
356           server-name: '{gerrit-server-name}'
357           trigger-on: '{obj:gerrit_merge_triggers}'
358           projects:
359             - project-compare-type: ANT
360               project-pattern: '{project}'
361               branches:
362                 - branch-compare-type: ANT
363                   branch-pattern: '**/{branch}'
364               file-paths: '{obj:gerrit_trigger_file_paths}'
365
366 - job-template:
367     name: '{project-name}-jenkins-cfg-merge'
368     id: github-jenkins-cfg-merge
369     <<: *lf_jenkins_cfg_merge
370
371     properties:
372       - github:
373           url: '{git-url}/{github-org}/{project}'
374
375     scm:
376       - lf-infra-github-scm:
377           url: '{git-clone-url}{github-org}/{project}'
378           refspec: ''
379           branch: 'refs/heads/{branch}'
380           submodule-recursive: true
381           choosing-strategy: default
382           jenkins-ssh-credential: '{jenkins-ssh-credential}'
383
384     triggers:
385       - timed: '{obj:cron}'
386       - github
387       - pollscm:
388           cron: ''
389       - github-pull-request:
390           trigger-phrase: '^remerge$'
391           only-trigger-phrase: true
392           status-context: 'Jenkins CFG Merge'
393           permit-all: false
394           github-hooks: true
395           org-list:
396             - '{github-org}'
397           white-list: '{obj:github_pr_whitelist}'
398           admin-list: '{obj:github_pr_admin_list}'
399           included-regions: '{obj:github_included_regions}'
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       - lf-infra-github-pr-trigger:
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           github-org: ''
509           github_pr_whitelist:
510             - ''
511           github_pr_admin_list:
512             - ''
513
514 #############
515 # JJB Merge #
516 #############
517
518 - lf_jjb_merge: &lf_jjb_merge
519     name: lf-jjb-merge
520
521     ######################
522     # Default parameters #
523     ######################
524
525     gerrit_merge_triggers:
526       - change-merged-event
527       - comment-added-contains-event:
528           comment-contains-value: remerge$
529
530     #####################
531     # Job Configuration #
532     #####################
533
534     builders:
535       - lf-infra-jjbini
536       - shell: !include-raw-escape:
537           - ../shell/jjb-install.sh
538           - ../shell/jjb-merge-job.sh
539           - ../shell/jjb-cleanup.sh
540
541 - job-template:
542     name: '{project-name}-jjb-merge'
543     id: gerrit-jjb-merge
544     <<: *lf_jjb_common
545     # yamllint disable-line rule:key-duplicates
546     <<: *lf_jjb_merge
547
548     git-url: '$GIT_URL/$GERRIT_PROJECT'
549
550     scm:
551       - lf-infra-gerrit-scm:
552           git-url: '{git-url}'
553           refspec: ''
554           branch: '{branch}'
555           submodule-recursive: '{submodule-recursive}'
556           choosing-strategy: default
557           jenkins-ssh-credential: '{jenkins-ssh-credential}'
558
559     triggers:
560       - gerrit:
561           server-name: '{gerrit-server-name}'
562           trigger-on: '{obj:gerrit_merge_triggers}'
563           projects:
564             - project-compare-type: ANT
565               project-pattern: '{project}'
566               branches:
567                 - branch-compare-type: ANT
568                   branch-pattern: '**/{branch}'
569               file-paths: '{obj:gerrit_trigger_file_paths}'
570
571 - job-template:
572     name: '{project-name}-jjb-merge'
573     id: github-jjb-merge
574     <<: *lf_jjb_common
575     # yamllint disable-line rule:key-duplicates
576     <<: *lf_jjb_merge
577
578     properties:
579       - github:
580           url: '{git-url}/{github-org}/{project}'
581
582     scm:
583       - lf-infra-github-scm:
584           url: '{git-clone-url}{github-org}/{project}'
585           refspec: ''
586           branch: 'refs/heads/{branch}'
587           submodule-recursive: '{submodule-recursive}'
588           choosing-strategy: default
589           jenkins-ssh-credential: '{jenkins-ssh-credential}'
590
591     triggers:
592       - github
593       - pollscm:
594           cron: ''
595       - lf-infra-github-pr-trigger:
596           trigger-phrase: '^remerge$'
597           only-trigger-phrase: true
598           status-context: 'JJB Merge'
599           permit-all: false
600           github-hooks: true
601           github-org: '{github-org}'
602           github_pr_whitelist: '{obj:github_pr_whitelist}'
603           github_pr_admin_list: '{obj:github_pr_admin_list}'
604
605 ##############
606 # JJB Verify #
607 ##############
608
609 - lf_jjb_verify: &lf_jjb_verify
610     name: lf-jjb-verify
611
612     ######################
613     # Default parameters #
614     ######################
615
616     gerrit_verify_triggers:
617       - patchset-created-event:
618           exclude-drafts: true
619           exclude-trivial-rebase: false
620           exclude-no-code-change: false
621       - draft-published-event
622       - comment-added-contains-event:
623           comment-contains-value: recheck$
624
625     #####################
626     # Job Configuration #
627     #####################
628
629     concurrent: true
630
631     builders:
632       - lf-infra-jjbini
633       - shell: !include-raw-escape:
634           - ../shell/git-validate-jira-urls.sh
635           - ../shell/jjb-install.sh
636           - ../shell/jjb-verify-job.sh
637           - ../shell/jjb-check-unicode.sh
638           - ../shell/jjb-cleanup.sh
639       - lf-infra-gpg-verify-git-signature
640
641 - job-template:
642     name: '{project-name}-jjb-verify'
643     id: gerrit-jjb-verify
644     <<: *lf_jjb_common
645     # yamllint disable-line rule:key-duplicates
646     <<: *lf_jjb_verify
647
648     git-url: '$GIT_URL/$GERRIT_PROJECT'
649
650     scm:
651       - lf-infra-gerrit-scm:
652           git-url: '{git-url}'
653           refspec: '$GERRIT_REFSPEC'
654           branch: '$GERRIT_BRANCH'
655           submodule-recursive: '{submodule-recursive}'
656           choosing-strategy: gerrit
657           jenkins-ssh-credential: '{jenkins-ssh-credential}'
658
659     triggers:
660       - gerrit:
661           server-name: '{gerrit-server-name}'
662           trigger-on: '{obj:gerrit_verify_triggers}'
663           projects:
664             - project-compare-type: ANT
665               project-pattern: '{project}'
666               branches:
667                 - branch-compare-type: ANT
668                   branch-pattern: '**/{branch}'
669               file-paths: '{obj:gerrit_trigger_file_paths}'
670
671 - job-template:
672     name: '{project-name}-jjb-verify'
673     id: github-jjb-verify
674     <<: *lf_jjb_common
675     # yamllint disable-line rule:key-duplicates
676     <<: *lf_jjb_verify
677
678     properties:
679       - github:
680           url: '{git-url}/{github-org}/{project}'
681
682     scm:
683       - lf-infra-github-scm:
684           url: '{git-clone-url}{github-org}/{project}'
685           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
686           branch: '$sha1'
687           submodule-recursive: '{submodule-recursive}'
688           choosing-strategy: default
689           jenkins-ssh-credential: '{jenkins-ssh-credential}'
690
691     triggers:
692       - lf-infra-github-pr-trigger:
693           trigger-phrase: '^recheck$'
694           only-trigger-phrase: false
695           status-context: 'JJB Verify'
696           permit-all: true
697           github-hooks: true
698           github-org: ''
699           github_pr_whitelist:
700             - ''
701           github_pr_admin_list:
702             - ''
703
704 ################
705 # Packer Merge #
706 ################
707
708 - lf_packer_merge: &lf_packer_merge
709     name: lf-packer-merge
710
711     ######################
712     # Default parameters #
713     ######################
714
715     gerrit_merge_triggers:
716       - change-merged-event
717       - comment-added-contains-event:
718           comment-contains-value: remerge$
719
720     #####################
721     # Job Configuration #
722     #####################
723
724     builders:
725       - lf-infra-packer-validate:
726           packer-cloud-settings: '{packer-cloud-settings}'
727           packer-version: '{packer-version}'
728       - lf-infra-packer-build:
729           packer-cloud-settings: '{packer-cloud-settings}'
730           packer-version: '{packer-version}'
731           platform: '{platforms}'
732           template: '{templates}'
733
734 - job-template:
735     name: '{project-name}-packer-merge-{platforms}-{templates}'
736     id: gerrit-packer-merge
737     <<: *lf_packer_common
738     # yamllint disable-line rule:key-duplicates
739     <<: *lf_packer_merge
740
741     git-url: '$GIT_URL/$GERRIT_PROJECT'
742
743     scm:
744       - lf-infra-gerrit-scm:
745           git-url: '{git-url}'
746           refspec: '$GERRIT_REFSPEC'
747           branch: '$GERRIT_BRANCH'
748           submodule-recursive: '{submodule-recursive}'
749           choosing-strategy: gerrit
750           jenkins-ssh-credential: '{jenkins-ssh-credential}'
751
752     triggers:
753       - timed: '00 10 1 * *'
754       - gerrit:
755           server-name: '{gerrit-server-name}'
756           trigger-on: '{obj:gerrit_merge_triggers}'
757           projects:
758             - project-compare-type: ANT
759               project-pattern: '{project}'
760               branches:
761                 - branch-compare-type: ANT
762                   branch-pattern: '**/{branch}'
763               <<: *lf_packer_file_paths
764
765 - job-template:
766     name: '{project-name}-packer-merge-{platforms}-{templates}'
767     id: github-packer-merge
768     <<: *lf_packer_common
769     # yamllint disable-line rule:key-duplicates
770     <<: *lf_packer_merge
771
772     properties:
773       - github:
774           url: '{git-url}/{github-org}/{project}'
775
776     scm:
777       - lf-infra-github-scm:
778           url: '{git-clone-url}{github-org}/{project}'
779           refspec: ''
780           branch: 'refs/heads/{branch}'
781           submodule-recursive: '{submodule-recursive}'
782           choosing-strategy: default
783           jenkins-ssh-credential: '{jenkins-ssh-credential}'
784
785     triggers:
786       - timed: '00 10 1 * *'
787       - github
788       - pollscm:
789           cron: ''
790       - lf-infra-github-pr-trigger:
791           trigger-phrase: '^remerge$'
792           only-trigger-phrase: true
793           status-context: 'Packer {platforms}-${templates} Merge'
794           permit-all: false
795           github-hooks: true
796           github-org: '{github-org}'
797           github_pr_whitelist: '{obj:github_pr_whitelist}'
798           github_pr_admin_list: '{obj:github_pr_admin_list}'
799
800 #################
801 # Packer Verify #
802 #################
803
804 - lf_packer_verify: &lf_packer_verify
805     name: lf-packer-verify
806
807     ######################
808     # Default parameters #
809     ######################
810
811     build-timeout: 10
812
813     gerrit_verify_triggers:
814       - patchset-created-event:
815           exclude-drafts: true
816           exclude-trivial-rebase: false
817           exclude-no-code-change: false
818       - draft-published-event
819       - comment-added-contains-event:
820           comment-contains-value: recheck$
821
822     gerrit_trigger_file_paths:
823       - compare-type: ANT
824         pattern: 'packer/vars/**.json'
825       - compare-type: ANT
826         pattern: 'packer/templates/**.json'
827       - compare-type: ANT
828         pattern: 'packer/provision/**.sh'
829       - compare-type: ANT
830         pattern: 'packer/provision/lib/**'
831
832     #####################
833     # Job Configuration #
834     #####################
835
836     concurrent: true
837
838     builders:
839       - lf-infra-packer-validate:
840           packer-cloud-settings: '{packer-cloud-settings}'
841           packer-version: '{packer-version}'
842
843 - job-template:
844     name: '{project-name}-packer-verify'
845     id: gerrit-packer-verify
846     <<: *lf_packer_common
847     # yamllint disable-line rule:key-duplicates
848     <<: *lf_packer_verify
849
850     git-url: '$GIT_URL/$GERRIT_PROJECT'
851
852     scm:
853       - lf-infra-gerrit-scm:
854           git-url: '{git-url}'
855           refspec: '$GERRIT_REFSPEC'
856           branch: '$GERRIT_BRANCH'
857           submodule-recursive: '{submodule-recursive}'
858           choosing-strategy: gerrit
859           jenkins-ssh-credential: '{jenkins-ssh-credential}'
860
861     triggers:
862       - gerrit:
863           server-name: '{gerrit-server-name}'
864           trigger-on: '{obj:gerrit_verify_triggers}'
865           projects:
866             - project-compare-type: ANT
867               project-pattern: '{project}'
868               branches:
869                 - branch-compare-type: ANT
870                   branch-pattern: '**/{branch}'
871               file-paths: '{obj:gerrit_trigger_file_paths}'
872
873 - job-template:
874     name: '{project-name}-packer-verify'
875     id: github-packer-verify
876     <<: *lf_packer_common
877     # yamllint disable-line rule:key-duplicates
878     <<: *lf_packer_verify
879
880     properties:
881       - github:
882           url: '{git-url}/{github-org}/{project}'
883
884     scm:
885       - lf-infra-github-scm:
886           url: '{git-clone-url}{github-org}/{project}'
887           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
888           branch: '$sha1'
889           submodule-recursive: '{submodule-recursive}'
890           choosing-strategy: default
891           jenkins-ssh-credential: '{jenkins-ssh-credential}'
892
893     triggers:
894       - lf-infra-github-pr-trigger:
895           trigger-phrase: '^recheck$'
896           only-trigger-phrase: false
897           status-context: 'Packer Verify'
898           permit-all: true
899           github-hooks: true
900           github-org: ''
901           github_pr_whitelist:
902             - ''
903           github_pr_admin_list:
904             - ''