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