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
149 - compare-type: REG_EXP
151 - compare-type: REG_EXP
152 pattern: '.*\.(yaml|yml)'
153 - compare-type: REG_EXP
154 pattern: '.*\/global-jjb'
156 # github_included_regions MUST match gerrit_trigger_file_paths
157 github_included_regions:
165 #####################
166 # Job Configuration #
167 #####################
169 project-type: freestyle
173 - lf-infra-properties:
175 build-days-to-keep: 7
178 - lf-infra-parameters:
182 lftools-version: '{lftools-version}'
183 - lf-infra-jjb-parameters:
184 jjb-version: '{jjb-version}'
188 build-timeout: '{build-timeout}'
189 jenkins-ssh-credential: '{jenkins-ssh-credential}'
194 ######################
195 # Gerrit Branch Lock #
196 ######################
199 name: '{project-name}-gerrit-branch-lock-{stream}'
200 id: gerrit-branch-lock
202 ######################
203 # Default parameters #
204 ######################
207 git-url: '$GIT_URL/$GERRIT_PROJECT'
209 gerrit_merge_triggers:
210 - comment-added-contains-event:
211 comment-contains-value: (un)?lock branch$
213 #####################
214 # Job Configuration #
215 #####################
217 project-type: freestyle
221 - lf-infra-properties:
223 build-days-to-keep: 1
226 - lf-infra-parameters:
230 lftools-version: '{lftools-version}'
235 jenkins-ssh-credential: '{jenkins-ssh-credential}'
238 - lf-infra-gerrit-scm:
242 submodule-recursive: false
243 choosing-strategy: default
244 jenkins-ssh-credential: '{jenkins-ssh-credential}'
248 server-name: '{gerrit-server-name}'
249 trigger-on: '{obj:gerrit_merge_triggers}'
251 - project-compare-type: ANT
252 project-pattern: '{project}'
254 - branch-compare-type: ANT
255 branch-pattern: '**/{branch}'
258 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
264 ##########################################
265 # Jenkins Configuration Management Merge #
266 ##########################################
269 name: lf-jenkins-cfg-clouds
273 properties-content: 'jenkins_silos={jenkins-silos}'
274 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
275 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
278 name: lf-jenkins-cfg-global-vars
282 properties-content: 'jenkins_silos={jenkins-silos}'
283 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
284 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
286 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
287 name: lf-jenkins-cfg-merge
289 ######################
290 # Default parameters #
291 ######################
295 git-url: '$GIT_URL/$GERRIT_PROJECT'
296 jenkins-silos: production sandbox
298 gerrit_merge_triggers:
299 - change-merged-event
300 - comment-added-contains-event:
301 comment-contains-value: remerge$
303 gerrit_trigger_file_paths:
304 - compare-type: REG_EXP
305 pattern: 'jenkins-config\/.*'
307 # github_included_regions MUST match gerrit_trigger_file_paths
308 github_included_regions:
309 - 'jenkins-config\/.*'
311 #####################
312 # Job Configuration #
313 #####################
315 project-type: freestyle
320 - lf-infra-properties:
322 build-days-to-keep: 1
325 - lf-infra-parameters:
329 lftools-version: '{lftools-version}'
334 jenkins-ssh-credential: '{jenkins-ssh-credential}'
337 - shell: !include-raw-escape:
338 - ../shell/lftools-install.sh
339 - lf-jenkins-cfg-global-vars:
340 jenkins-silos: '{jenkins-silos}'
341 - lf-jenkins-cfg-clouds:
342 jenkins-silos: '{jenkins-silos}'
348 name: '{project-name}-jenkins-cfg-merge'
349 id: gerrit-jenkins-cfg-merge
350 <<: *lf_jenkins_cfg_merge
353 - lf-infra-gerrit-scm:
355 refspec: 'refs/heads/{branch}'
357 submodule-recursive: true
358 choosing-strategy: default
359 jenkins-ssh-credential: '{jenkins-ssh-credential}'
362 - timed: '{obj:cron}'
364 server-name: '{gerrit-server-name}'
365 trigger-on: '{obj:gerrit_merge_triggers}'
367 - project-compare-type: ANT
368 project-pattern: '{project}'
370 - branch-compare-type: ANT
371 branch-pattern: '**/{branch}'
372 file-paths: '{obj:gerrit_trigger_file_paths}'
375 name: '{project-name}-jenkins-cfg-merge'
376 id: github-jenkins-cfg-merge
377 <<: *lf_jenkins_cfg_merge
381 url: '{git-url}/{github-org}/{project}'
384 - lf-infra-github-scm:
385 url: '{git-clone-url}{github-org}/{project}'
387 branch: 'refs/heads/{branch}'
388 submodule-recursive: true
389 choosing-strategy: default
390 jenkins-ssh-credential: '{jenkins-ssh-credential}'
393 - timed: '{obj:cron}'
397 - github-pull-request:
398 trigger-phrase: '^remerge$'
399 only-trigger-phrase: true
400 status-context: 'Jenkins CFG Merge'
405 white-list: '{obj:github_pr_whitelist}'
406 admin-list: '{obj:github_pr_admin_list}'
407 included-regions: '{obj:github_included_regions}'
413 - lf_jjb_deploy_job: &lf_jjb_deploy_job
414 name: lf-jjb-deploy-job
416 ######################
417 # Default parameters #
418 ######################
421 git-url: '$GIT_URL/$GERRIT_PROJECT'
423 gerrit_jjb_deploy_job_triggers:
424 - comment-added-contains-event:
425 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
427 #####################
428 # Job Configuration #
429 #####################
431 project-type: freestyle
436 - lf-infra-properties:
438 build-days-to-keep: 1
441 - lf-infra-parameters:
445 lftools-version: '{lftools-version}'
450 jenkins-ssh-credential: '{jenkins-ssh-credential}'
454 pip-packages: jenkins-job-builder
455 - lf-infra-jjbini-sandbox
456 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
462 name: '{project-name}-jjb-deploy-job'
463 id: gerrit-jjb-deploy-job
464 <<: *lf_jjb_deploy_job
467 - lf-infra-gerrit-scm:
469 refspec: 'refs/heads/{branch}'
471 submodule-recursive: true
472 choosing-strategy: default
473 jenkins-ssh-credential: '{jenkins-ssh-credential}'
477 server-name: '{gerrit-server-name}'
478 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
480 - project-compare-type: ANT
481 project-pattern: '**'
483 - branch-compare-type: ANT
492 name: '{project-name}-jjb-deploy-job'
493 id: github-jjb-deploy-job
494 <<: *lf_jjb_deploy_job
498 url: '{git-url}/{github-org}/{project}'
501 - lf-infra-github-scm:
502 url: '{git-clone-url}{github-org}/{project}'
503 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
505 submodule-recursive: true
506 choosing-strategy: default
507 jenkins-ssh-credential: '{jenkins-ssh-credential}'
510 - github-pull-request:
511 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
512 only-trigger-phrase: true
513 status-context: 'JJB Deploy Job'
521 - lf_jjb_merge: &lf_jjb_merge
524 ######################
525 # Default parameters #
526 ######################
528 gerrit_merge_triggers:
529 - change-merged-event
530 - comment-added-contains-event:
531 comment-contains-value: remerge$
533 #####################
534 # Job Configuration #
535 #####################
539 - shell: !include-raw-escape:
540 - ../shell/jjb-install.sh
541 - ../shell/jjb-merge-job.sh
542 - ../shell/jjb-cleanup.sh
545 name: '{project-name}-jjb-merge'
548 # yamllint disable-line rule:key-duplicates
551 git-url: '$GIT_URL/$GERRIT_PROJECT'
554 - lf-infra-gerrit-scm:
558 submodule-recursive: '{submodule-recursive}'
559 choosing-strategy: default
560 jenkins-ssh-credential: '{jenkins-ssh-credential}'
564 server-name: '{gerrit-server-name}'
565 trigger-on: '{obj:gerrit_merge_triggers}'
567 - project-compare-type: ANT
568 project-pattern: '{project}'
570 - branch-compare-type: ANT
571 branch-pattern: '**/{branch}'
572 file-paths: '{obj:gerrit_trigger_file_paths}'
575 name: '{project-name}-jjb-merge'
578 # yamllint disable-line rule:key-duplicates
581 #####################
582 # Job Configuration #
583 #####################
587 url: '{git-url}/{github-org}/{project}'
590 - lf-infra-github-scm:
591 url: '{git-clone-url}{github-org}/{project}'
593 branch: 'refs/heads/{branch}'
594 submodule-recursive: '{submodule-recursive}'
595 choosing-strategy: default
596 jenkins-ssh-credential: '{jenkins-ssh-credential}'
602 - github-pull-request:
603 trigger-phrase: '^remerge$'
604 only-trigger-phrase: true
605 status-context: 'JJB Merge'
610 white-list: '{obj:github_pr_whitelist}'
611 admin-list: '{obj:github_pr_admin_list}'
612 included-regions: '{obj:github_included_regions}'
618 - lf_jjb_verify: &lf_jjb_verify
621 ######################
622 # Default parameters #
623 ######################
625 gerrit_verify_triggers:
626 - patchset-created-event:
628 exclude-trivial-rebase: false
629 exclude-no-code-change: false
630 - draft-published-event
631 - comment-added-contains-event:
632 comment-contains-value: recheck$
634 #####################
635 # Job Configuration #
636 #####################
642 - shell: !include-raw-escape:
643 - ../shell/git-validate-jira-urls.sh
644 - ../shell/jjb-install.sh
645 - ../shell/jjb-verify-job.sh
646 - ../shell/jjb-check-unicode.sh
647 - ../shell/jjb-cleanup.sh
648 - lf-infra-gpg-verify-git-signature
651 name: '{project-name}-jjb-verify'
652 id: gerrit-jjb-verify
654 # yamllint disable-line rule:key-duplicates
657 ######################
658 # Default parameters #
659 ######################
661 git-url: '$GIT_URL/$GERRIT_PROJECT'
663 #####################
664 # Job Configuration #
665 #####################
668 - lf-infra-gerrit-scm:
670 refspec: '$GERRIT_REFSPEC'
671 branch: '$GERRIT_BRANCH'
672 submodule-recursive: '{submodule-recursive}'
673 choosing-strategy: gerrit
674 jenkins-ssh-credential: '{jenkins-ssh-credential}'
678 server-name: '{gerrit-server-name}'
679 trigger-on: '{obj:gerrit_verify_triggers}'
681 - project-compare-type: ANT
682 project-pattern: '{project}'
684 - branch-compare-type: ANT
685 branch-pattern: '**/{branch}'
686 file-paths: '{obj:gerrit_trigger_file_paths}'
689 name: '{project-name}-jjb-verify'
690 id: github-jjb-verify
692 # yamllint disable-line rule:key-duplicates
695 #####################
696 # Job Configuration #
697 #####################
701 url: '{git-url}/{github-org}/{project}'
704 - lf-infra-github-scm:
705 url: '{git-clone-url}{github-org}/{project}'
706 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
708 submodule-recursive: '{submodule-recursive}'
709 choosing-strategy: default
710 jenkins-ssh-credential: '{jenkins-ssh-credential}'
713 - github-pull-request:
714 trigger-phrase: '^recheck$'
715 only-trigger-phrase: false
716 status-context: 'JJB Verify'
719 included-regions: '{obj:github_included_regions}'
725 - lf_info_yaml_verify: &lf_info_yaml_verify
726 name: lf-info-yaml-verify
728 ######################
729 # Default parameters #
730 ######################
732 gerrit_verify_triggers:
733 - patchset-created-event:
735 exclude-trivial-rebase: false
736 exclude-no-code-change: false
737 - draft-published-event
738 - comment-added-contains-event:
739 comment-contains-value: recheck$
741 #####################
742 # Job Configuration #
743 #####################
748 - shell: !include-raw-escape:
749 - ../shell/git-validate-info-yaml.sh
750 - ../shell/info-file-validate.sh
753 name: '{project-name}-info-yaml-verify'
754 id: gerrit-info-yaml-verify
756 # yamllint disable-line rule:key-duplicates
757 <<: *lf_info_yaml_verify
759 git-url: '$GIT_URL/$GERRIT_PROJECT'
762 - lf-infra-gerrit-scm:
764 refspec: '$GERRIT_REFSPEC'
765 branch: '$GERRIT_BRANCH'
766 submodule-recursive: '{submodule-recursive}'
767 choosing-strategy: gerrit
768 jenkins-ssh-credential: '{jenkins-ssh-credential}'
772 server-name: '{gerrit-server-name}'
773 trigger-on: '{obj:gerrit_verify_triggers}'
775 - project-compare-type: ANT
776 project-pattern: '{project}'
778 - branch-compare-type: ANT
779 branch-pattern: '**/{branch}'
781 - compare-type: REG_EXP
785 name: '{project-name}-info-yaml-verify'
786 id: github-info-yaml-verify
788 # yamllint disable-line rule:key-duplicates
789 <<: *lf_info_yaml_verify
793 url: '{git-url}/{github-org}/{project}'
796 - lf-infra-github-scm:
797 url: '{git-clone-url}{github-org}/{project}'
798 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
800 submodule-recursive: '{submodule-recursive}'
801 choosing-strategy: default
802 jenkins-ssh-credential: '{jenkins-ssh-credential}'
805 - github-pull-request:
806 trigger-phrase: '^recheck$'
807 only-trigger-phrase: false
808 status-context: 'INFO File Verify'
811 # included-regions MUST match gerrit file-paths
812 included-regions: 'INFO.yaml'
818 - lf_packer_merge: &lf_packer_merge
819 name: lf-packer-merge
821 #####################
822 # Job Configuration #
823 #####################
826 - lf-infra-packer-validate:
827 packer-cloud-settings: '{packer-cloud-settings}'
828 packer-version: '{packer-version}'
829 - lf-infra-packer-build:
830 packer-cloud-settings: '{packer-cloud-settings}'
831 packer-version: '{packer-version}'
832 platform: '{platforms}'
833 template: '{templates}'
836 name: '{project-name}-packer-merge-{platforms}-{templates}'
837 id: gerrit-packer-merge
838 <<: *lf_packer_common
839 # yamllint disable-line rule:key-duplicates
842 ######################
843 # Default parameters #
844 ######################
846 git-url: '$GIT_URL/$GERRIT_PROJECT'
848 gerrit_merge_triggers:
849 - change-merged-event
850 - comment-added-contains-event:
851 comment-contains-value: remerge$
853 #####################
854 # Job Configuration #
855 #####################
858 - lf-infra-gerrit-scm:
860 refspec: '$GERRIT_REFSPEC'
861 branch: '$GERRIT_BRANCH'
862 submodule-recursive: '{submodule-recursive}'
863 choosing-strategy: gerrit
864 jenkins-ssh-credential: '{jenkins-ssh-credential}'
869 server-name: '{gerrit-server-name}'
870 trigger-on: '{obj:gerrit_merge_triggers}'
872 - project-compare-type: ANT
873 project-pattern: '{project}'
875 - branch-compare-type: ANT
876 branch-pattern: '**/{branch}'
878 - compare-type: REG_EXP
879 pattern: 'packer\/provision\/.*\.sh'
880 - compare-type: REG_EXP
881 pattern: 'packer\/provision\/.*\.bat'
882 - compare-type: REG_EXP
883 pattern: 'packer\/provision\/.*\.ps1'
884 - compare-type: REG_EXP
885 pattern: 'packer\/provision\/{templates}\.yaml'
886 - compare-type: REG_EXP
887 pattern: 'packer\/provision\/local-{templates}\.yaml'
888 - compare-type: REG_EXP
889 pattern: 'packer\/templates\/{templates}\.json'
890 - compare-type: REG_EXP
891 pattern: 'packer\/vars\/{platforms}\.json'
894 name: '{project-name}-packer-merge-{platforms}-{templates}'
895 id: github-packer-merge
896 <<: *lf_packer_common
897 # yamllint disable-line rule:key-duplicates
900 #####################
901 # Job Configuration #
902 #####################
906 url: '{git-url}/{github-org}/{project}'
909 - lf-infra-github-scm:
910 url: '{git-clone-url}{github-org}/{project}'
912 branch: 'refs/heads/{branch}'
913 submodule-recursive: '{submodule-recursive}'
914 choosing-strategy: default
915 jenkins-ssh-credential: '{jenkins-ssh-credential}'
923 - github-pull-request:
924 trigger-phrase: '^remerge$'
925 only-trigger-phrase: true
926 status-context: 'Packer {platforms}-{templates} Merge'
931 white-list: '{obj:github_pr_whitelist}'
932 admin-list: '{obj:github_pr_admin_list}'
933 # included-regions MUST match Gerrit Trigger file-paths
935 - 'packer\/provision\/.*\.sh'
936 - 'packer\/provision\/.*\.bat'
937 - 'packer\/provision\/.*\.ps1'
938 - 'packer\/provision\/{templates}\.yaml'
939 - 'packer\/provision\/local-{templates}\.yaml'
940 - 'packer\/templates\/{templates}\.json'
941 - 'packer\/vars\/{platforms}\.json'
947 - lf_packer_verify: &lf_packer_verify
948 name: lf-packer-verify
950 ######################
951 # Default parameters #
952 ######################
956 gerrit_verify_triggers:
957 - patchset-created-event:
959 exclude-trivial-rebase: false
960 exclude-no-code-change: false
961 - draft-published-event
962 - comment-added-contains-event:
963 comment-contains-value: recheck$
965 gerrit_trigger_file_paths:
966 - compare-type: REG_EXP
967 pattern: 'packer\/.*'
969 # github_included_regions MUST match gerrit_trigger_file_paths
970 github_included_regions:
973 #####################
974 # Job Configuration #
975 #####################
980 - lf-infra-packer-validate:
981 packer-cloud-settings: '{packer-cloud-settings}'
982 packer-version: '{packer-version}'
985 name: '{project-name}-packer-verify'
986 id: gerrit-packer-verify
987 <<: *lf_packer_common
988 # yamllint disable-line rule:key-duplicates
989 <<: *lf_packer_verify
991 ######################
992 # Default parameters #
993 ######################
995 git-url: '$GIT_URL/$GERRIT_PROJECT'
997 #####################
998 # Job Configuration #
999 #####################
1002 - lf-infra-gerrit-scm:
1003 git-url: '{git-url}'
1004 refspec: '$GERRIT_REFSPEC'
1005 branch: '$GERRIT_BRANCH'
1006 submodule-recursive: '{submodule-recursive}'
1007 choosing-strategy: gerrit
1008 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1012 server-name: '{gerrit-server-name}'
1013 trigger-on: '{obj:gerrit_verify_triggers}'
1015 - project-compare-type: ANT
1016 project-pattern: '{project}'
1018 - branch-compare-type: ANT
1019 branch-pattern: '**/{branch}'
1020 file-paths: '{obj:gerrit_trigger_file_paths}'
1023 name: '{project-name}-packer-verify'
1024 id: github-packer-verify
1025 <<: *lf_packer_common
1026 # yamllint disable-line rule:key-duplicates
1027 <<: *lf_packer_verify
1029 #####################
1030 # Job Configuration #
1031 #####################
1035 url: '{git-url}/{github-org}/{project}'
1038 - lf-infra-github-scm:
1039 url: '{git-clone-url}{github-org}/{project}'
1040 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1042 submodule-recursive: '{submodule-recursive}'
1043 choosing-strategy: default
1044 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1047 - github-pull-request:
1048 trigger-phrase: '^recheck$'
1049 only-trigger-phrase: false
1050 status-context: 'Packer Verify'
1053 included-regions: '{obj:github_included_regions}'