3 name: '{project-name}-ci-jobs'
6 - gerrit-jenkins-cfg-merge
7 - gerrit-jjb-deploy-job
12 name: '{project-name}-github-ci-jobs'
15 - github-jenkins-cfg-merge
16 - github-jjb-deploy-job
21 name: '{project-name}-packer-jobs'
25 - gerrit-packer-verify
29 name: '{project-name}-github-packer-jobs'
33 - github-packer-verify
42 - config-file-provider:
45 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
48 name: lf-infra-jjbini-sandbox
49 # TODO: Consolidate this into jjbini when JJB2.0 is available.
51 - config-file-provider:
53 - file-id: jjbini-sandbox
54 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
56 - lf_packer: &lf_packer_common
57 name: lf-packer-common
58 # Provide configuration common in packer jobs.
60 ######################
61 # Default parameters #
62 ######################
67 submodule-recursive: true
68 packer-cloud-settings: packer-cloud-env
75 project-type: freestyle
79 - lf-infra-properties:
84 - lf-infra-parameters:
88 lftools-version: '{lftools-version}'
89 - lf-packer-parameters:
90 packer-version: '{packer-version}'
94 build-timeout: '{build-timeout}'
95 jenkins-ssh-credential: '{jenkins-ssh-credential}'
101 name: lf-infra-jjb-parameters
105 default: '{jjb-version}'
106 description: Jenkins Job Builder version to download and install.
109 name: lf-packer-parameters
113 default: '{packer-version}'
114 description: Packer version to download and install.
116 - lf_jjb_common: &lf_jjb_common
119 ######################
120 # Default parameters #
121 ######################
127 submodule-recursive: true
129 gerrit_trigger_file_paths:
130 - compare-type: REG_EXP
131 pattern: '.*\.groovy'
132 - compare-type: REG_EXP
134 - compare-type: REG_EXP
135 pattern: '.*\.(yaml|yml)'
136 - compare-type: REG_EXP
137 pattern: '.*\/global-jjb'
139 # github_included_regions MUST match gerrit_trigger_file_paths
140 github_included_regions:
146 #####################
147 # Job Configuration #
148 #####################
150 project-type: freestyle
154 - lf-infra-properties:
156 build-days-to-keep: 7
159 - lf-infra-parameters:
163 lftools-version: '{lftools-version}'
164 - lf-infra-jjb-parameters:
165 jjb-version: '{jjb-version}'
169 build-timeout: '{build-timeout}'
170 jenkins-ssh-credential: '{jenkins-ssh-credential}'
175 ######################
176 # Gerrit Branch Lock #
177 ######################
180 name: '{project-name}-gerrit-branch-lock-{stream}'
181 id: gerrit-branch-lock
183 ######################
184 # Default parameters #
185 ######################
188 git-url: '$GIT_URL/$GERRIT_PROJECT'
190 gerrit_merge_triggers:
191 - comment-added-contains-event:
192 comment-contains-value: (un)?lock branch$
194 #####################
195 # Job Configuration #
196 #####################
198 project-type: freestyle
202 - lf-infra-properties:
204 build-days-to-keep: 1
207 - lf-infra-parameters:
211 lftools-version: '{lftools-version}'
216 jenkins-ssh-credential: '{jenkins-ssh-credential}'
219 - lf-infra-gerrit-scm:
223 submodule-recursive: false
224 choosing-strategy: default
225 jenkins-ssh-credential: '{jenkins-ssh-credential}'
229 server-name: '{gerrit-server-name}'
230 trigger-on: '{obj:gerrit_merge_triggers}'
232 - project-compare-type: ANT
233 project-pattern: '{project}'
235 - branch-compare-type: ANT
236 branch-pattern: '**/{branch}'
239 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
245 ##########################################
246 # Jenkins Configuration Management Merge #
247 ##########################################
250 name: lf-jenkins-cfg-clouds
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"
259 name: lf-jenkins-cfg-global-vars
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"
267 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
268 name: lf-jenkins-cfg-merge
270 ######################
271 # Default parameters #
272 ######################
276 git-url: '$GIT_URL/$GERRIT_PROJECT'
277 jenkins-silos: production sandbox
279 gerrit_merge_triggers:
280 - change-merged-event
281 - comment-added-contains-event:
282 comment-contains-value: remerge$
284 gerrit_trigger_file_paths:
285 - compare-type: REG_EXP
286 pattern: 'jenkins-config\/.*'
288 # github_included_regions MUST match gerrit_trigger_file_paths
289 github_included_regions:
290 - 'jenkins-config\/.*'
292 #####################
293 # Job Configuration #
294 #####################
296 project-type: freestyle
301 - lf-infra-properties:
303 build-days-to-keep: 1
306 - lf-infra-parameters:
310 lftools-version: '{lftools-version}'
315 jenkins-ssh-credential: '{jenkins-ssh-credential}'
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}'
329 name: '{project-name}-jenkins-cfg-merge'
330 id: gerrit-jenkins-cfg-merge
331 <<: *lf_jenkins_cfg_merge
334 - lf-infra-gerrit-scm:
336 refspec: 'refs/heads/{branch}'
338 submodule-recursive: true
339 choosing-strategy: default
340 jenkins-ssh-credential: '{jenkins-ssh-credential}'
343 - timed: '{obj:cron}'
345 server-name: '{gerrit-server-name}'
346 trigger-on: '{obj:gerrit_merge_triggers}'
348 - project-compare-type: ANT
349 project-pattern: '{project}'
351 - branch-compare-type: ANT
352 branch-pattern: '**/{branch}'
353 file-paths: '{obj:gerrit_trigger_file_paths}'
356 name: '{project-name}-jenkins-cfg-merge'
357 id: github-jenkins-cfg-merge
358 <<: *lf_jenkins_cfg_merge
362 url: '{git-url}/{github-org}/{project}'
365 - lf-infra-github-scm:
366 url: '{git-clone-url}{github-org}/{project}'
368 branch: 'refs/heads/{branch}'
369 submodule-recursive: true
370 choosing-strategy: default
371 jenkins-ssh-credential: '{jenkins-ssh-credential}'
374 - timed: '{obj:cron}'
378 - github-pull-request:
379 trigger-phrase: '^remerge$'
380 only-trigger-phrase: true
381 status-context: 'Jenkins CFG Merge'
386 white-list: '{obj:github_pr_whitelist}'
387 admin-list: '{obj:github_pr_admin_list}'
388 included-regions: '{obj:github_included_regions}'
394 - lf_jjb_deploy_job: &lf_jjb_deploy_job
395 name: lf-jjb-deploy-job
397 ######################
398 # Default parameters #
399 ######################
402 git-url: '$GIT_URL/$GERRIT_PROJECT'
404 gerrit_jjb_deploy_job_triggers:
405 - comment-added-contains-event:
406 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
408 #####################
409 # Job Configuration #
410 #####################
412 project-type: freestyle
417 - lf-infra-properties:
419 build-days-to-keep: 1
422 - lf-infra-parameters:
426 lftools-version: '{lftools-version}'
431 jenkins-ssh-credential: '{jenkins-ssh-credential}'
435 pip-packages: jenkins-job-builder
436 - lf-infra-jjbini-sandbox
437 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
443 name: '{project-name}-jjb-deploy-job'
444 id: gerrit-jjb-deploy-job
445 <<: *lf_jjb_deploy_job
448 - lf-infra-gerrit-scm:
450 refspec: 'refs/heads/{branch}'
452 submodule-recursive: true
453 choosing-strategy: default
454 jenkins-ssh-credential: '{jenkins-ssh-credential}'
458 server-name: '{gerrit-server-name}'
459 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
461 - project-compare-type: ANT
462 project-pattern: '**'
464 - branch-compare-type: ANT
473 name: '{project-name}-jjb-deploy-job'
474 id: github-jjb-deploy-job
475 <<: *lf_jjb_deploy_job
479 url: '{git-url}/{github-org}/{project}'
482 - lf-infra-github-scm:
483 url: '{git-clone-url}{github-org}/{project}'
484 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
486 submodule-recursive: true
487 choosing-strategy: default
488 jenkins-ssh-credential: '{jenkins-ssh-credential}'
491 - github-pull-request:
492 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
493 only-trigger-phrase: true
494 status-context: 'JJB Deploy Job'
502 - lf_jjb_merge: &lf_jjb_merge
505 ######################
506 # Default parameters #
507 ######################
509 gerrit_merge_triggers:
510 - change-merged-event
511 - comment-added-contains-event:
512 comment-contains-value: remerge$
514 #####################
515 # Job Configuration #
516 #####################
520 - shell: !include-raw-escape:
521 - ../shell/jjb-install.sh
522 - ../shell/jjb-merge-job.sh
523 - ../shell/jjb-cleanup.sh
526 name: '{project-name}-jjb-merge'
529 # yamllint disable-line rule:key-duplicates
532 git-url: '$GIT_URL/$GERRIT_PROJECT'
535 - lf-infra-gerrit-scm:
539 submodule-recursive: '{submodule-recursive}'
540 choosing-strategy: default
541 jenkins-ssh-credential: '{jenkins-ssh-credential}'
545 server-name: '{gerrit-server-name}'
546 trigger-on: '{obj:gerrit_merge_triggers}'
548 - project-compare-type: ANT
549 project-pattern: '{project}'
551 - branch-compare-type: ANT
552 branch-pattern: '**/{branch}'
553 file-paths: '{obj:gerrit_trigger_file_paths}'
556 name: '{project-name}-jjb-merge'
559 # yamllint disable-line rule:key-duplicates
562 #####################
563 # Job Configuration #
564 #####################
568 url: '{git-url}/{github-org}/{project}'
571 - lf-infra-github-scm:
572 url: '{git-clone-url}{github-org}/{project}'
574 branch: 'refs/heads/{branch}'
575 submodule-recursive: '{submodule-recursive}'
576 choosing-strategy: default
577 jenkins-ssh-credential: '{jenkins-ssh-credential}'
583 - github-pull-request:
584 trigger-phrase: '^remerge$'
585 only-trigger-phrase: true
586 status-context: 'JJB Merge'
591 white-list: '{obj:github_pr_whitelist}'
592 admin-list: '{obj:github_pr_admin_list}'
593 included-regions: '{obj:github_included_regions}'
599 - lf_jjb_verify: &lf_jjb_verify
602 ######################
603 # Default parameters #
604 ######################
606 gerrit_verify_triggers:
607 - patchset-created-event:
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$
615 #####################
616 # Job Configuration #
617 #####################
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
632 name: '{project-name}-jjb-verify'
633 id: gerrit-jjb-verify
635 # yamllint disable-line rule:key-duplicates
638 ######################
639 # Default parameters #
640 ######################
642 git-url: '$GIT_URL/$GERRIT_PROJECT'
644 #####################
645 # Job Configuration #
646 #####################
649 - lf-infra-gerrit-scm:
651 refspec: '$GERRIT_REFSPEC'
652 branch: '$GERRIT_BRANCH'
653 submodule-recursive: '{submodule-recursive}'
654 choosing-strategy: gerrit
655 jenkins-ssh-credential: '{jenkins-ssh-credential}'
659 server-name: '{gerrit-server-name}'
660 trigger-on: '{obj:gerrit_verify_triggers}'
662 - project-compare-type: ANT
663 project-pattern: '{project}'
665 - branch-compare-type: ANT
666 branch-pattern: '**/{branch}'
667 file-paths: '{obj:gerrit_trigger_file_paths}'
670 name: '{project-name}-jjb-verify'
671 id: github-jjb-verify
673 # yamllint disable-line rule:key-duplicates
676 #####################
677 # Job Configuration #
678 #####################
682 url: '{git-url}/{github-org}/{project}'
685 - lf-infra-github-scm:
686 url: '{git-clone-url}{github-org}/{project}'
687 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
689 submodule-recursive: '{submodule-recursive}'
690 choosing-strategy: default
691 jenkins-ssh-credential: '{jenkins-ssh-credential}'
694 - github-pull-request:
695 trigger-phrase: '^recheck$'
696 only-trigger-phrase: false
697 status-context: 'JJB Verify'
700 included-regions: '{obj:github_included_regions}'
706 - lf_packer_merge: &lf_packer_merge
707 name: lf-packer-merge
709 #####################
710 # Job Configuration #
711 #####################
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}'
724 name: '{project-name}-packer-merge-{platforms}-{templates}'
725 id: gerrit-packer-merge
726 <<: *lf_packer_common
727 # yamllint disable-line rule:key-duplicates
730 ######################
731 # Default parameters #
732 ######################
734 git-url: '$GIT_URL/$GERRIT_PROJECT'
736 gerrit_merge_triggers:
737 - change-merged-event
738 - comment-added-contains-event:
739 comment-contains-value: remerge$
741 #####################
742 # Job Configuration #
743 #####################
746 - lf-infra-gerrit-scm:
748 refspec: '$GERRIT_REFSPEC'
749 branch: '$GERRIT_BRANCH'
750 submodule-recursive: '{submodule-recursive}'
751 choosing-strategy: gerrit
752 jenkins-ssh-credential: '{jenkins-ssh-credential}'
755 - timed: '00 10 1 * *'
757 server-name: '{gerrit-server-name}'
758 trigger-on: '{obj:gerrit_merge_triggers}'
760 - project-compare-type: ANT
761 project-pattern: '{project}'
763 - branch-compare-type: ANT
764 branch-pattern: '**/{branch}'
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'
778 name: '{project-name}-packer-merge-{platforms}-{templates}'
779 id: github-packer-merge
780 <<: *lf_packer_common
781 # yamllint disable-line rule:key-duplicates
784 #####################
785 # Job Configuration #
786 #####################
790 url: '{git-url}/{github-org}/{project}'
793 - lf-infra-github-scm:
794 url: '{git-clone-url}{github-org}/{project}'
796 branch: 'refs/heads/{branch}'
797 submodule-recursive: '{submodule-recursive}'
798 choosing-strategy: default
799 jenkins-ssh-credential: '{jenkins-ssh-credential}'
802 - timed: '00 10 1 * *'
807 - github-pull-request:
808 trigger-phrase: '^remerge$'
809 only-trigger-phrase: true
810 status-context: 'Packer {platforms}-{templates} Merge'
815 white-list: '{obj:github_pr_whitelist}'
816 admin-list: '{obj:github_pr_admin_list}'
817 # included-regions MUST match Gerrit Trigger file-paths
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'
829 - lf_packer_verify: &lf_packer_verify
830 name: lf-packer-verify
832 ######################
833 # Default parameters #
834 ######################
838 gerrit_verify_triggers:
839 - patchset-created-event:
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$
847 gerrit_trigger_file_paths:
848 - compare-type: REG_EXP
849 pattern: 'packer\/.*'
851 # github_included_regions MUST match gerrit_trigger_file_paths
852 github_included_regions:
855 #####################
856 # Job Configuration #
857 #####################
862 - lf-infra-packer-validate:
863 packer-cloud-settings: '{packer-cloud-settings}'
864 packer-version: '{packer-version}'
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
873 ######################
874 # Default parameters #
875 ######################
877 git-url: '$GIT_URL/$GERRIT_PROJECT'
879 #####################
880 # Job Configuration #
881 #####################
884 - lf-infra-gerrit-scm:
886 refspec: '$GERRIT_REFSPEC'
887 branch: '$GERRIT_BRANCH'
888 submodule-recursive: '{submodule-recursive}'
889 choosing-strategy: gerrit
890 jenkins-ssh-credential: '{jenkins-ssh-credential}'
894 server-name: '{gerrit-server-name}'
895 trigger-on: '{obj:gerrit_verify_triggers}'
897 - project-compare-type: ANT
898 project-pattern: '{project}'
900 - branch-compare-type: ANT
901 branch-pattern: '**/{branch}'
902 file-paths: '{obj:gerrit_trigger_file_paths}'
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
911 #####################
912 # Job Configuration #
913 #####################
917 url: '{git-url}/{github-org}/{project}'
920 - lf-infra-github-scm:
921 url: '{git-clone-url}{github-org}/{project}'
922 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
924 submodule-recursive: '{submodule-recursive}'
925 choosing-strategy: default
926 jenkins-ssh-credential: '{jenkins-ssh-credential}'
929 - github-pull-request:
930 trigger-phrase: '^recheck$'
931 only-trigger-phrase: false
932 status-context: 'Packer Verify'
935 included-regions: '{obj:github_included_regions}'