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