REM security notice about PostBuildScript plugin
[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           - ../shell/jjb-cleanup.sh
533
534 - job-template:
535     name: '{project-name}-jjb-merge'
536     id: gerrit-jjb-merge
537     <<: *lf_jjb_common
538     # yamllint disable-line rule:key-duplicates
539     <<: *lf_jjb_merge
540
541     git-url: '$GIT_URL/$GERRIT_PROJECT'
542
543     scm:
544       - lf-infra-gerrit-scm:
545           git-url: '{git-url}'
546           refspec: ''
547           branch: '{branch}'
548           submodule-recursive: '{submodule-recursive}'
549           choosing-strategy: default
550           jenkins-ssh-credential: '{jenkins-ssh-credential}'
551
552     triggers:
553       - gerrit:
554           server-name: '{gerrit-server-name}'
555           trigger-on: '{obj:gerrit_merge_triggers}'
556           projects:
557             - project-compare-type: ANT
558               project-pattern: '{project}'
559               branches:
560                 - branch-compare-type: ANT
561                   branch-pattern: '**/{branch}'
562               file-paths: '{obj:gerrit_trigger_file_paths}'
563
564 - job-template:
565     name: '{project-name}-jjb-merge'
566     id: github-jjb-merge
567     <<: *lf_jjb_common
568     # yamllint disable-line rule:key-duplicates
569     <<: *lf_jjb_merge
570
571     properties:
572       - github:
573           url: '{git-url}/{github-org}/{project}'
574
575     scm:
576       - lf-infra-github-scm:
577           url: '{git-clone-url}{github-org}/{project}'
578           refspec: ''
579           branch: 'refs/heads/{branch}'
580           submodule-recursive: '{submodule-recursive}'
581           choosing-strategy: default
582           jenkins-ssh-credential: '{jenkins-ssh-credential}'
583
584     triggers:
585       - github
586       - pollscm:
587           cron: ''
588       - lf-infra-github-pr-trigger:
589           trigger-phrase: '^remerge$'
590           only-trigger-phrase: true
591           status-context: 'JJB Merge'
592           permit-all: false
593           github-hooks: true
594           github-org: '{github-org}'
595           github_pr_whitelist: '{obj:github_pr_whitelist}'
596           github_pr_admin_list: '{obj:github_pr_admin_list}'
597
598 ##############
599 # JJB Verify #
600 ##############
601
602 - lf_jjb_verify: &lf_jjb_verify
603     name: lf-jjb-verify
604
605     ######################
606     # Default parameters #
607     ######################
608
609     gerrit_verify_triggers:
610       - patchset-created-event:
611           exclude-drafts: true
612           exclude-trivial-rebase: false
613           exclude-no-code-change: false
614       - draft-published-event
615       - comment-added-contains-event:
616           comment-contains-value: recheck$
617
618     #####################
619     # Job Configuration #
620     #####################
621
622     concurrent: true
623
624     builders:
625       - lf-infra-jjbini
626       - shell: !include-raw-escape:
627           - ../shell/git-validate-jira-urls.sh
628           - ../shell/jjb-install.sh
629           - ../shell/jjb-verify-job.sh
630           - ../shell/jjb-check-unicode.sh
631           - ../shell/jjb-cleanup.sh
632       - lf-infra-gpg-verify-git-signature
633
634 - job-template:
635     name: '{project-name}-jjb-verify'
636     id: gerrit-jjb-verify
637     <<: *lf_jjb_common
638     # yamllint disable-line rule:key-duplicates
639     <<: *lf_jjb_verify
640
641     git-url: '$GIT_URL/$GERRIT_PROJECT'
642
643     scm:
644       - lf-infra-gerrit-scm:
645           git-url: '{git-url}'
646           refspec: '$GERRIT_REFSPEC'
647           branch: '$GERRIT_BRANCH'
648           submodule-recursive: '{submodule-recursive}'
649           choosing-strategy: gerrit
650           jenkins-ssh-credential: '{jenkins-ssh-credential}'
651
652     triggers:
653       - gerrit:
654           server-name: '{gerrit-server-name}'
655           trigger-on: '{obj:gerrit_verify_triggers}'
656           projects:
657             - project-compare-type: ANT
658               project-pattern: '{project}'
659               branches:
660                 - branch-compare-type: ANT
661                   branch-pattern: '**/{branch}'
662               file-paths: '{obj:gerrit_trigger_file_paths}'
663
664 - job-template:
665     name: '{project-name}-jjb-verify'
666     id: github-jjb-verify
667     <<: *lf_jjb_common
668     # yamllint disable-line rule:key-duplicates
669     <<: *lf_jjb_verify
670
671     properties:
672       - github:
673           url: '{git-url}/{github-org}/{project}'
674
675     scm:
676       - lf-infra-github-scm:
677           url: '{git-clone-url}{github-org}/{project}'
678           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
679           branch: '$sha1'
680           submodule-recursive: '{submodule-recursive}'
681           choosing-strategy: default
682           jenkins-ssh-credential: '{jenkins-ssh-credential}'
683
684     triggers:
685       - lf-infra-github-pr-trigger:
686           trigger-phrase: '^recheck$'
687           only-trigger-phrase: false
688           status-context: 'JJB Verify'
689           permit-all: true
690           github-hooks: true
691           github-org: ''
692           github_pr_whitelist:
693             - ''
694           github_pr_admin_list:
695             - ''
696
697 ################
698 # Packer Merge #
699 ################
700
701 - lf_packer_merge: &lf_packer_merge
702     name: lf-packer-merge
703
704     ######################
705     # Default parameters #
706     ######################
707
708     gerrit_merge_triggers:
709       - change-merged-event
710       - comment-added-contains-event:
711           comment-contains-value: remerge$
712
713     #####################
714     # Job Configuration #
715     #####################
716
717     builders:
718       - lf-infra-packer-validate:
719           packer-cloud-settings: '{packer-cloud-settings}'
720           packer-version: '{packer-version}'
721       - lf-infra-packer-build:
722           packer-cloud-settings: '{packer-cloud-settings}'
723           packer-version: '{packer-version}'
724           platform: '{platforms}'
725           template: '{templates}'
726
727 - job-template:
728     name: '{project-name}-packer-merge-{platforms}-{templates}'
729     id: gerrit-packer-merge
730     <<: *lf_packer_common
731     # yamllint disable-line rule:key-duplicates
732     <<: *lf_packer_merge
733
734     git-url: '$GIT_URL/$GERRIT_PROJECT'
735
736     scm:
737       - lf-infra-gerrit-scm:
738           git-url: '{git-url}'
739           refspec: '$GERRIT_REFSPEC'
740           branch: '$GERRIT_BRANCH'
741           submodule-recursive: '{submodule-recursive}'
742           choosing-strategy: gerrit
743           jenkins-ssh-credential: '{jenkins-ssh-credential}'
744
745     triggers:
746       - timed: '00 10 1 * *'
747       - gerrit:
748           server-name: '{gerrit-server-name}'
749           trigger-on: '{obj:gerrit_merge_triggers}'
750           projects:
751             - project-compare-type: ANT
752               project-pattern: '{project}'
753               branches:
754                 - branch-compare-type: ANT
755                   branch-pattern: '**/{branch}'
756               <<: *lf_packer_file_paths
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     properties:
766       - github:
767           url: '{git-url}/{github-org}/{project}'
768
769     scm:
770       - lf-infra-github-scm:
771           url: '{git-clone-url}{github-org}/{project}'
772           refspec: ''
773           branch: 'refs/heads/{branch}'
774           submodule-recursive: '{submodule-recursive}'
775           choosing-strategy: default
776           jenkins-ssh-credential: '{jenkins-ssh-credential}'
777
778     triggers:
779       - timed: '00 10 1 * *'
780       - github
781       - pollscm:
782           cron: ''
783       - lf-infra-github-pr-trigger:
784           trigger-phrase: '^remerge$'
785           only-trigger-phrase: true
786           status-context: 'Packer {platforms}-${templates} Merge'
787           permit-all: false
788           github-hooks: true
789           github-org: '{github-org}'
790           github_pr_whitelist: '{obj:github_pr_whitelist}'
791           github_pr_admin_list: '{obj:github_pr_admin_list}'
792
793 #################
794 # Packer Verify #
795 #################
796
797 - lf_packer_verify: &lf_packer_verify
798     name: lf-packer-verify
799
800     ######################
801     # Default parameters #
802     ######################
803
804     build-timeout: 10
805
806     gerrit_verify_triggers:
807       - patchset-created-event:
808           exclude-drafts: true
809           exclude-trivial-rebase: false
810           exclude-no-code-change: false
811       - draft-published-event
812       - comment-added-contains-event:
813           comment-contains-value: recheck$
814
815     gerrit_trigger_file_paths:
816       - compare-type: ANT
817         pattern: 'packer/vars/**.json'
818       - compare-type: ANT
819         pattern: 'packer/templates/**.json'
820       - compare-type: ANT
821         pattern: 'packer/provision/**.sh'
822       - compare-type: ANT
823         pattern: 'packer/provision/lib/**'
824
825     #####################
826     # Job Configuration #
827     #####################
828
829     concurrent: true
830
831     builders:
832       - lf-infra-packer-validate:
833           packer-cloud-settings: '{packer-cloud-settings}'
834           packer-version: '{packer-version}'
835
836 - job-template:
837     name: '{project-name}-packer-verify'
838     id: gerrit-packer-verify
839     <<: *lf_packer_common
840     # yamllint disable-line rule:key-duplicates
841     <<: *lf_packer_verify
842
843     git-url: '$GIT_URL/$GERRIT_PROJECT'
844
845     scm:
846       - lf-infra-gerrit-scm:
847           git-url: '{git-url}'
848           refspec: '$GERRIT_REFSPEC'
849           branch: '$GERRIT_BRANCH'
850           submodule-recursive: '{submodule-recursive}'
851           choosing-strategy: gerrit
852           jenkins-ssh-credential: '{jenkins-ssh-credential}'
853
854     triggers:
855       - gerrit:
856           server-name: '{gerrit-server-name}'
857           trigger-on: '{obj:gerrit_verify_triggers}'
858           projects:
859             - project-compare-type: ANT
860               project-pattern: '{project}'
861               branches:
862                 - branch-compare-type: ANT
863                   branch-pattern: '**/{branch}'
864               file-paths: '{obj:gerrit_trigger_file_paths}'
865
866 - job-template:
867     name: '{project-name}-packer-verify'
868     id: github-packer-verify
869     <<: *lf_packer_common
870     # yamllint disable-line rule:key-duplicates
871     <<: *lf_packer_verify
872
873     properties:
874       - github:
875           url: '{git-url}/{github-org}/{project}'
876
877     scm:
878       - lf-infra-github-scm:
879           url: '{git-clone-url}{github-org}/{project}'
880           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
881           branch: '$sha1'
882           submodule-recursive: '{submodule-recursive}'
883           choosing-strategy: default
884           jenkins-ssh-credential: '{jenkins-ssh-credential}'
885
886     triggers:
887       - lf-infra-github-pr-trigger:
888           trigger-phrase: '^recheck$'
889           only-trigger-phrase: false
890           status-context: 'Packer Verify'
891           permit-all: true
892           github-hooks: true
893           github-org: ''
894           github_pr_whitelist:
895             - ''
896           github_pr_admin_list:
897             - ''