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