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