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}-info-yaml-jobs'
24 - gerrit-info-yaml-verify
27 name: '{project-name}-github-info-yaml-jobs'
30 - github-info-yaml-verify
33 name: '{project-name}-packer-jobs'
37 - gerrit-packer-verify
41 name: '{project-name}-github-packer-jobs'
45 - github-packer-verify
54 - config-file-provider:
57 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
60 name: lf-infra-jjbini-sandbox
61 # TODO: Consolidate this into jjbini when JJB2.0 is available.
63 - config-file-provider:
65 - file-id: jjbini-sandbox
66 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
68 - lf_packer: &lf_packer_common
69 name: lf-packer-common
70 # Provide configuration common in packer jobs.
72 ######################
73 # Default parameters #
74 ######################
80 submodule-recursive: true
81 packer-cloud-settings: packer-cloud-env
88 project-type: freestyle
92 - lf-infra-properties:
97 - lf-infra-parameters:
101 lftools-version: '{lftools-version}'
102 - lf-packer-parameters:
103 packer-version: '{packer-version}'
107 build-timeout: '{build-timeout}'
108 jenkins-ssh-credential: '{jenkins-ssh-credential}'
114 name: lf-infra-jjb-parameters
118 default: '{jjb-version}'
119 description: Jenkins Job Builder version to download and install.
122 name: lf-packer-parameters
126 default: '{packer-version}'
127 description: Packer version to download and install.
129 - lf_jjb_common: &lf_jjb_common
132 ######################
133 # Default parameters #
134 ######################
140 submodule-recursive: true
142 gerrit_trigger_file_paths:
143 - compare-type: REG_EXP
144 pattern: '.*\.groovy'
145 - compare-type: REG_EXP
147 - compare-type: REG_EXP
148 pattern: '.*\.(yaml|yml)'
149 - compare-type: REG_EXP
150 pattern: '.*\/global-jjb'
152 # github_included_regions MUST match gerrit_trigger_file_paths
153 github_included_regions:
159 #####################
160 # Job Configuration #
161 #####################
163 project-type: freestyle
167 - lf-infra-properties:
169 build-days-to-keep: 7
172 - lf-infra-parameters:
176 lftools-version: '{lftools-version}'
177 - lf-infra-jjb-parameters:
178 jjb-version: '{jjb-version}'
182 build-timeout: '{build-timeout}'
183 jenkins-ssh-credential: '{jenkins-ssh-credential}'
188 ######################
189 # Gerrit Branch Lock #
190 ######################
193 name: '{project-name}-gerrit-branch-lock-{stream}'
194 id: gerrit-branch-lock
196 ######################
197 # Default parameters #
198 ######################
201 git-url: '$GIT_URL/$GERRIT_PROJECT'
203 gerrit_merge_triggers:
204 - comment-added-contains-event:
205 comment-contains-value: (un)?lock branch$
207 #####################
208 # Job Configuration #
209 #####################
211 project-type: freestyle
215 - lf-infra-properties:
217 build-days-to-keep: 1
220 - lf-infra-parameters:
224 lftools-version: '{lftools-version}'
229 jenkins-ssh-credential: '{jenkins-ssh-credential}'
232 - lf-infra-gerrit-scm:
236 submodule-recursive: false
237 choosing-strategy: default
238 jenkins-ssh-credential: '{jenkins-ssh-credential}'
242 server-name: '{gerrit-server-name}'
243 trigger-on: '{obj:gerrit_merge_triggers}'
245 - project-compare-type: ANT
246 project-pattern: '{project}'
248 - branch-compare-type: ANT
249 branch-pattern: '**/{branch}'
252 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
258 ##########################################
259 # Jenkins Configuration Management Merge #
260 ##########################################
263 name: lf-jenkins-cfg-clouds
267 properties-content: 'jenkins_silos={jenkins-silos}'
268 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
269 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
272 name: lf-jenkins-cfg-global-vars
276 properties-content: 'jenkins_silos={jenkins-silos}'
277 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
278 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
280 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
281 name: lf-jenkins-cfg-merge
283 ######################
284 # Default parameters #
285 ######################
289 git-url: '$GIT_URL/$GERRIT_PROJECT'
290 jenkins-silos: production sandbox
292 gerrit_merge_triggers:
293 - change-merged-event
294 - comment-added-contains-event:
295 comment-contains-value: remerge$
297 gerrit_trigger_file_paths:
298 - compare-type: REG_EXP
299 pattern: 'jenkins-config\/.*'
301 # github_included_regions MUST match gerrit_trigger_file_paths
302 github_included_regions:
303 - 'jenkins-config\/.*'
305 #####################
306 # Job Configuration #
307 #####################
309 project-type: freestyle
314 - lf-infra-properties:
316 build-days-to-keep: 1
319 - lf-infra-parameters:
323 lftools-version: '{lftools-version}'
328 jenkins-ssh-credential: '{jenkins-ssh-credential}'
331 - shell: !include-raw-escape:
332 - ../shell/lftools-install.sh
333 - lf-jenkins-cfg-global-vars:
334 jenkins-silos: '{jenkins-silos}'
335 - lf-jenkins-cfg-clouds:
336 jenkins-silos: '{jenkins-silos}'
342 name: '{project-name}-jenkins-cfg-merge'
343 id: gerrit-jenkins-cfg-merge
344 <<: *lf_jenkins_cfg_merge
347 - lf-infra-gerrit-scm:
349 refspec: 'refs/heads/{branch}'
351 submodule-recursive: true
352 choosing-strategy: default
353 jenkins-ssh-credential: '{jenkins-ssh-credential}'
356 - timed: '{obj:cron}'
358 server-name: '{gerrit-server-name}'
359 trigger-on: '{obj:gerrit_merge_triggers}'
361 - project-compare-type: ANT
362 project-pattern: '{project}'
364 - branch-compare-type: ANT
365 branch-pattern: '**/{branch}'
366 file-paths: '{obj:gerrit_trigger_file_paths}'
369 name: '{project-name}-jenkins-cfg-merge'
370 id: github-jenkins-cfg-merge
371 <<: *lf_jenkins_cfg_merge
375 url: '{git-url}/{github-org}/{project}'
378 - lf-infra-github-scm:
379 url: '{git-clone-url}{github-org}/{project}'
381 branch: 'refs/heads/{branch}'
382 submodule-recursive: true
383 choosing-strategy: default
384 jenkins-ssh-credential: '{jenkins-ssh-credential}'
387 - timed: '{obj:cron}'
391 - github-pull-request:
392 trigger-phrase: '^remerge$'
393 only-trigger-phrase: true
394 status-context: 'Jenkins CFG Merge'
399 white-list: '{obj:github_pr_whitelist}'
400 admin-list: '{obj:github_pr_admin_list}'
401 included-regions: '{obj:github_included_regions}'
407 - lf_jjb_deploy_job: &lf_jjb_deploy_job
408 name: lf-jjb-deploy-job
410 ######################
411 # Default parameters #
412 ######################
415 git-url: '$GIT_URL/$GERRIT_PROJECT'
417 gerrit_jjb_deploy_job_triggers:
418 - comment-added-contains-event:
419 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
421 #####################
422 # Job Configuration #
423 #####################
425 project-type: freestyle
430 - lf-infra-properties:
432 build-days-to-keep: 1
435 - lf-infra-parameters:
439 lftools-version: '{lftools-version}'
444 jenkins-ssh-credential: '{jenkins-ssh-credential}'
448 pip-packages: jenkins-job-builder
449 - lf-infra-jjbini-sandbox
450 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
456 name: '{project-name}-jjb-deploy-job'
457 id: gerrit-jjb-deploy-job
458 <<: *lf_jjb_deploy_job
461 - lf-infra-gerrit-scm:
463 refspec: 'refs/heads/{branch}'
465 submodule-recursive: true
466 choosing-strategy: default
467 jenkins-ssh-credential: '{jenkins-ssh-credential}'
471 server-name: '{gerrit-server-name}'
472 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
474 - project-compare-type: ANT
475 project-pattern: '**'
477 - branch-compare-type: ANT
486 name: '{project-name}-jjb-deploy-job'
487 id: github-jjb-deploy-job
488 <<: *lf_jjb_deploy_job
492 url: '{git-url}/{github-org}/{project}'
495 - lf-infra-github-scm:
496 url: '{git-clone-url}{github-org}/{project}'
497 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
499 submodule-recursive: true
500 choosing-strategy: default
501 jenkins-ssh-credential: '{jenkins-ssh-credential}'
504 - github-pull-request:
505 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
506 only-trigger-phrase: true
507 status-context: 'JJB Deploy Job'
515 - lf_jjb_merge: &lf_jjb_merge
518 ######################
519 # Default parameters #
520 ######################
522 gerrit_merge_triggers:
523 - change-merged-event
524 - comment-added-contains-event:
525 comment-contains-value: remerge$
527 #####################
528 # Job Configuration #
529 #####################
533 - shell: !include-raw-escape:
534 - ../shell/jjb-install.sh
535 - ../shell/jjb-merge-job.sh
536 - ../shell/jjb-cleanup.sh
539 name: '{project-name}-jjb-merge'
542 # yamllint disable-line rule:key-duplicates
545 git-url: '$GIT_URL/$GERRIT_PROJECT'
548 - lf-infra-gerrit-scm:
552 submodule-recursive: '{submodule-recursive}'
553 choosing-strategy: default
554 jenkins-ssh-credential: '{jenkins-ssh-credential}'
558 server-name: '{gerrit-server-name}'
559 trigger-on: '{obj:gerrit_merge_triggers}'
561 - project-compare-type: ANT
562 project-pattern: '{project}'
564 - branch-compare-type: ANT
565 branch-pattern: '**/{branch}'
566 file-paths: '{obj:gerrit_trigger_file_paths}'
569 name: '{project-name}-jjb-merge'
572 # yamllint disable-line rule:key-duplicates
575 #####################
576 # Job Configuration #
577 #####################
581 url: '{git-url}/{github-org}/{project}'
584 - lf-infra-github-scm:
585 url: '{git-clone-url}{github-org}/{project}'
587 branch: 'refs/heads/{branch}'
588 submodule-recursive: '{submodule-recursive}'
589 choosing-strategy: default
590 jenkins-ssh-credential: '{jenkins-ssh-credential}'
596 - github-pull-request:
597 trigger-phrase: '^remerge$'
598 only-trigger-phrase: true
599 status-context: 'JJB Merge'
604 white-list: '{obj:github_pr_whitelist}'
605 admin-list: '{obj:github_pr_admin_list}'
606 included-regions: '{obj:github_included_regions}'
612 - lf_jjb_verify: &lf_jjb_verify
615 ######################
616 # Default parameters #
617 ######################
619 gerrit_verify_triggers:
620 - patchset-created-event:
622 exclude-trivial-rebase: false
623 exclude-no-code-change: false
624 - draft-published-event
625 - comment-added-contains-event:
626 comment-contains-value: recheck$
628 #####################
629 # Job Configuration #
630 #####################
636 - shell: !include-raw-escape:
637 - ../shell/git-validate-jira-urls.sh
638 - ../shell/jjb-install.sh
639 - ../shell/jjb-verify-job.sh
640 - ../shell/jjb-check-unicode.sh
641 - ../shell/jjb-cleanup.sh
642 - lf-infra-gpg-verify-git-signature
645 name: '{project-name}-jjb-verify'
646 id: gerrit-jjb-verify
648 # yamllint disable-line rule:key-duplicates
651 ######################
652 # Default parameters #
653 ######################
655 git-url: '$GIT_URL/$GERRIT_PROJECT'
657 #####################
658 # Job Configuration #
659 #####################
662 - lf-infra-gerrit-scm:
664 refspec: '$GERRIT_REFSPEC'
665 branch: '$GERRIT_BRANCH'
666 submodule-recursive: '{submodule-recursive}'
667 choosing-strategy: gerrit
668 jenkins-ssh-credential: '{jenkins-ssh-credential}'
672 server-name: '{gerrit-server-name}'
673 trigger-on: '{obj:gerrit_verify_triggers}'
675 - project-compare-type: ANT
676 project-pattern: '{project}'
678 - branch-compare-type: ANT
679 branch-pattern: '**/{branch}'
680 file-paths: '{obj:gerrit_trigger_file_paths}'
683 name: '{project-name}-jjb-verify'
684 id: github-jjb-verify
686 # yamllint disable-line rule:key-duplicates
689 #####################
690 # Job Configuration #
691 #####################
695 url: '{git-url}/{github-org}/{project}'
698 - lf-infra-github-scm:
699 url: '{git-clone-url}{github-org}/{project}'
700 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
702 submodule-recursive: '{submodule-recursive}'
703 choosing-strategy: default
704 jenkins-ssh-credential: '{jenkins-ssh-credential}'
707 - github-pull-request:
708 trigger-phrase: '^recheck$'
709 only-trigger-phrase: false
710 status-context: 'JJB Verify'
713 included-regions: '{obj:github_included_regions}'
719 - lf_info_yaml_verify: &lf_info_yaml_verify
720 name: lf-info-yaml-verify
722 ######################
723 # Default parameters #
724 ######################
726 gerrit_verify_triggers:
727 - patchset-created-event:
729 exclude-trivial-rebase: false
730 exclude-no-code-change: false
731 - draft-published-event
732 - comment-added-contains-event:
733 comment-contains-value: recheck$
735 #####################
736 # Job Configuration #
737 #####################
742 - shell: !include-raw-escape:
743 - ../shell/git-validate-info-yaml.sh
744 - ../shell/info-file-validate.sh
747 name: '{project-name}-info-yaml-verify'
748 id: gerrit-info-yaml-verify
750 # yamllint disable-line rule:key-duplicates
751 <<: *lf_info_yaml_verify
753 git-url: '$GIT_URL/$GERRIT_PROJECT'
756 - lf-infra-gerrit-scm:
758 refspec: '$GERRIT_REFSPEC'
759 branch: '$GERRIT_BRANCH'
760 submodule-recursive: '{submodule-recursive}'
761 choosing-strategy: gerrit
762 jenkins-ssh-credential: '{jenkins-ssh-credential}'
766 server-name: '{gerrit-server-name}'
767 trigger-on: '{obj:gerrit_verify_triggers}'
769 - project-compare-type: ANT
770 project-pattern: '{project}'
772 - branch-compare-type: ANT
773 branch-pattern: '**/{branch}'
775 - compare-type: REG_EXP
779 name: '{project-name}-info-yaml-verify'
780 id: github-info-yaml-verify
782 # yamllint disable-line rule:key-duplicates
783 <<: *lf_info_yaml_verify
787 url: '{git-url}/{github-org}/{project}'
790 - lf-infra-github-scm:
791 url: '{git-clone-url}{github-org}/{project}'
792 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
794 submodule-recursive: '{submodule-recursive}'
795 choosing-strategy: default
796 jenkins-ssh-credential: '{jenkins-ssh-credential}'
799 - github-pull-request:
800 trigger-phrase: '^recheck$'
801 only-trigger-phrase: false
802 status-context: 'INFO File Verify'
805 # included-regions MUST match gerrit file-paths
806 included-regions: 'INFO.yaml'
812 - lf_packer_merge: &lf_packer_merge
813 name: lf-packer-merge
815 #####################
816 # Job Configuration #
817 #####################
820 - lf-infra-packer-validate:
821 packer-cloud-settings: '{packer-cloud-settings}'
822 packer-version: '{packer-version}'
823 - lf-infra-packer-build:
824 packer-cloud-settings: '{packer-cloud-settings}'
825 packer-version: '{packer-version}'
826 platform: '{platforms}'
827 template: '{templates}'
830 name: '{project-name}-packer-merge-{platforms}-{templates}'
831 id: gerrit-packer-merge
832 <<: *lf_packer_common
833 # yamllint disable-line rule:key-duplicates
836 ######################
837 # Default parameters #
838 ######################
840 git-url: '$GIT_URL/$GERRIT_PROJECT'
842 gerrit_merge_triggers:
843 - change-merged-event
844 - comment-added-contains-event:
845 comment-contains-value: remerge$
847 #####################
848 # Job Configuration #
849 #####################
852 - lf-infra-gerrit-scm:
854 refspec: '$GERRIT_REFSPEC'
855 branch: '$GERRIT_BRANCH'
856 submodule-recursive: '{submodule-recursive}'
857 choosing-strategy: gerrit
858 jenkins-ssh-credential: '{jenkins-ssh-credential}'
863 server-name: '{gerrit-server-name}'
864 trigger-on: '{obj:gerrit_merge_triggers}'
866 - project-compare-type: ANT
867 project-pattern: '{project}'
869 - branch-compare-type: ANT
870 branch-pattern: '**/{branch}'
872 - compare-type: REG_EXP
873 pattern: 'packer\/provision\/.*\.sh'
874 - compare-type: REG_EXP
875 pattern: 'packer\/provision\/{templates}\.yaml'
876 - compare-type: REG_EXP
877 pattern: 'packer\/provision\/local-{templates}\.yaml'
878 - compare-type: REG_EXP
879 pattern: 'packer\/templates\/{templates}\.json'
880 - compare-type: REG_EXP
881 pattern: 'packer\/vars\/{platforms}\.json'
884 name: '{project-name}-packer-merge-{platforms}-{templates}'
885 id: github-packer-merge
886 <<: *lf_packer_common
887 # yamllint disable-line rule:key-duplicates
890 #####################
891 # Job Configuration #
892 #####################
896 url: '{git-url}/{github-org}/{project}'
899 - lf-infra-github-scm:
900 url: '{git-clone-url}{github-org}/{project}'
902 branch: 'refs/heads/{branch}'
903 submodule-recursive: '{submodule-recursive}'
904 choosing-strategy: default
905 jenkins-ssh-credential: '{jenkins-ssh-credential}'
913 - github-pull-request:
914 trigger-phrase: '^remerge$'
915 only-trigger-phrase: true
916 status-context: 'Packer {platforms}-{templates} Merge'
921 white-list: '{obj:github_pr_whitelist}'
922 admin-list: '{obj:github_pr_admin_list}'
923 # included-regions MUST match Gerrit Trigger file-paths
925 - 'packer\/provision\/.*\.sh'
926 - 'packer\/provision\/{templates}\.yaml'
927 - 'packer\/provision\/local-{templates}\.yaml'
928 - 'packer\/templates\/{templates}\.json'
929 - 'packer\/vars\/{platforms}\.json'
935 - lf_packer_verify: &lf_packer_verify
936 name: lf-packer-verify
938 ######################
939 # Default parameters #
940 ######################
944 gerrit_verify_triggers:
945 - patchset-created-event:
947 exclude-trivial-rebase: false
948 exclude-no-code-change: false
949 - draft-published-event
950 - comment-added-contains-event:
951 comment-contains-value: recheck$
953 gerrit_trigger_file_paths:
954 - compare-type: REG_EXP
955 pattern: 'packer\/.*'
957 # github_included_regions MUST match gerrit_trigger_file_paths
958 github_included_regions:
961 #####################
962 # Job Configuration #
963 #####################
968 - lf-infra-packer-validate:
969 packer-cloud-settings: '{packer-cloud-settings}'
970 packer-version: '{packer-version}'
973 name: '{project-name}-packer-verify'
974 id: gerrit-packer-verify
975 <<: *lf_packer_common
976 # yamllint disable-line rule:key-duplicates
977 <<: *lf_packer_verify
979 ######################
980 # Default parameters #
981 ######################
983 git-url: '$GIT_URL/$GERRIT_PROJECT'
985 #####################
986 # Job Configuration #
987 #####################
990 - lf-infra-gerrit-scm:
992 refspec: '$GERRIT_REFSPEC'
993 branch: '$GERRIT_BRANCH'
994 submodule-recursive: '{submodule-recursive}'
995 choosing-strategy: gerrit
996 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1000 server-name: '{gerrit-server-name}'
1001 trigger-on: '{obj:gerrit_verify_triggers}'
1003 - project-compare-type: ANT
1004 project-pattern: '{project}'
1006 - branch-compare-type: ANT
1007 branch-pattern: '**/{branch}'
1008 file-paths: '{obj:gerrit_trigger_file_paths}'
1011 name: '{project-name}-packer-verify'
1012 id: github-packer-verify
1013 <<: *lf_packer_common
1014 # yamllint disable-line rule:key-duplicates
1015 <<: *lf_packer_verify
1017 #####################
1018 # Job Configuration #
1019 #####################
1023 url: '{git-url}/{github-org}/{project}'
1026 - lf-infra-github-scm:
1027 url: '{git-clone-url}{github-org}/{project}'
1028 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1030 submodule-recursive: '{submodule-recursive}'
1031 choosing-strategy: default
1032 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1035 - github-pull-request:
1036 trigger-phrase: '^recheck$'
1037 only-trigger-phrase: false
1038 status-context: 'Packer Verify'
1041 included-regions: '{obj:github_included_regions}'