9 - config-file-provider:
12 target: "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
15 name: lf-infra-jjbini-sandbox
16 # TODO: Consolidate this into jjbini when JJB2.0 is available.
18 - config-file-provider:
20 - file-id: jjbini-sandbox
21 target: "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
23 - lf_packer: &lf_packer_common
24 name: lf-packer-common
25 # Provide configuration common in packer jobs.
27 ######################
28 # Default parameters #
29 ######################
35 github-url: "https://github.com"
37 submodule-recursive: true
39 submodule-disable: false
40 packer-cloud-settings: packer-cloud-env
47 project-type: freestyle
49 disabled: "{disable-job}"
52 - lf-infra-properties:
57 - lf-infra-parameters:
61 - lf-packer-parameters:
62 packer-version: "{packer-version}"
66 build-timeout: "{build-timeout}"
67 jenkins-ssh-credential: "{jenkins-ssh-credential}"
73 name: lf-infra-jjb-parameters
77 default: "{jjb-version}"
78 description: Jenkins Job Builder version to download and install.
81 default: "{jjb-cache}"
82 description: Jenkins Job Builder cache location.
85 name: lf-packer-parameters
89 default: "{packer-version}"
90 description: Packer version to download and install.
93 name: lf-puppet-parameters
96 name: PUPPET_LINT_VERSION
97 default: "{puppet-lint-version}"
98 description: Puppet-lint version to download and install.
100 - lf_jjb_common: &lf_jjb_common
103 ######################
104 # Default parameters #
105 ######################
110 github-url: "https://github.com"
111 jjb-cache: "$HOME/.cache/jenkins_jobs"
114 submodule-recursive: true
115 submodule-timeout: 10
116 submodule-disable: false
117 throttle_categories: []
118 throttle-enabled: false
119 throttle-max-per-node: 1
120 throttle-max-total: 0
121 throttle-option: "project"
123 gerrit_trigger_file_paths:
124 - compare-type: REG_EXP
126 - compare-type: REG_EXP
127 pattern: "global-jjb"
128 - compare-type: REG_EXP
131 # github_included_regions MUST match gerrit_trigger_file_paths
132 github_included_regions:
137 #####################
138 # Job Configuration #
139 #####################
141 project-type: freestyle
143 disabled: "{disable-job}"
146 - lf-infra-properties:
148 build-days-to-keep: 7
150 categories: "{obj:throttle_categories}"
151 enabled: "{throttle-enabled}"
152 max-per-node: "{throttle-max-per-node}"
153 max-total: "{throttle-max-total}"
154 option: "{throttle-option}"
157 - lf-infra-parameters:
161 - lf-infra-jjb-parameters:
162 jjb-cache: "{jjb-cache}"
163 jjb-version: "{jjb-version}"
167 build-timeout: "{build-timeout}"
168 jenkins-ssh-credential: "{jenkins-ssh-credential}"
173 ######################
174 # Gerrit Branch Lock #
175 ######################
178 name: "{project-name}-gerrit-branch-lock-{stream}"
179 id: gerrit-branch-lock
181 ######################
182 # Default parameters #
183 ######################
187 git-url: "$GIT_URL/$GERRIT_PROJECT"
189 submodule-timeout: 10
190 submodule-disable: false
191 gerrit_merge_triggers:
192 - comment-added-contains-event:
193 comment-contains-value: (un)?lock branch$
195 #####################
196 # Job Configuration #
197 #####################
199 project-type: freestyle
201 disabled: "{disable-job}"
204 - lf-infra-properties:
206 build-days-to-keep: 1
209 - lf-infra-parameters:
217 jenkins-ssh-credential: "{jenkins-ssh-credential}"
220 - lf-infra-gerrit-scm:
224 submodule-recursive: false
225 submodule-timeout: "{submodule-timeout}"
226 submodule-disable: "{submodule-disable}"
227 choosing-strategy: default
228 jenkins-ssh-credential: "{jenkins-ssh-credential}"
232 server-name: "{gerrit-server-name}"
233 trigger-on: "{obj:gerrit_merge_triggers}"
235 - project-compare-type: ANT
236 project-pattern: "{project}"
238 - branch-compare-type: ANT
239 branch-pattern: "**/{branch}"
242 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
247 ##########################################
248 # Jenkins Configuration Management Merge #
249 ##########################################
252 name: lf-jenkins-cfg-clouds
256 properties-content: "jenkins_silos={jenkins-silos}"
257 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
258 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
261 name: lf-jenkins-cfg-global-vars
265 properties-content: "jenkins_silos={jenkins-silos}"
266 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
267 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
269 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
270 name: lf-jenkins-cfg-merge
272 ######################
273 # Default parameters #
274 ######################
279 git-url: "$GIT_URL/$GERRIT_PROJECT"
280 github-url: "https://github.com"
281 jenkins-silos: production sandbox
282 submodule-timeout: 10
283 submodule-disable: false
285 gerrit_merge_triggers:
286 - change-merged-event
287 - comment-added-contains-event:
288 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
290 gerrit_trigger_file_paths:
291 - compare-type: REG_EXP
292 pattern: 'jenkins-config\/.*'
294 # github_included_regions MUST match gerrit_trigger_file_paths
295 github_included_regions:
296 - 'jenkins-config\/.*'
298 #####################
299 # Job Configuration #
300 #####################
302 project-type: freestyle
305 disabled: "{disable-job}"
308 - lf-infra-properties:
310 build-days-to-keep: 1
313 - lf-infra-parameters:
321 jenkins-ssh-credential: "{jenkins-ssh-credential}"
325 - lf-jenkins-cfg-global-vars:
326 jenkins-silos: "{jenkins-silos}"
327 - lf-jenkins-cfg-clouds:
328 jenkins-silos: "{jenkins-silos}"
334 name: "{project-name}-jenkins-cfg-merge"
335 id: gerrit-jenkins-cfg-merge
336 <<: *lf_jenkins_cfg_merge
339 - lf-infra-gerrit-scm:
341 refspec: "refs/heads/{branch}"
343 submodule-recursive: true
344 submodule-timeout: "{submodule-timeout}"
345 submodule-disable: "{submodule-disable}"
346 choosing-strategy: default
347 jenkins-ssh-credential: "{jenkins-ssh-credential}"
350 - timed: "{obj:cron}"
352 server-name: "{gerrit-server-name}"
353 trigger-on: "{obj:gerrit_merge_triggers}"
355 - project-compare-type: ANT
356 project-pattern: "{project}"
358 - branch-compare-type: ANT
359 branch-pattern: "**/{branch}"
360 file-paths: "{obj:gerrit_trigger_file_paths}"
363 name: "{project-name}-jenkins-cfg-merge"
364 id: github-jenkins-cfg-merge
365 <<: *lf_jenkins_cfg_merge
368 - lf-infra-properties:
370 build-days-to-keep: 1
372 url: "{github-url}/{github-org}/{project}"
375 - lf-infra-github-scm:
376 url: "{git-clone-url}{github-org}/{project}"
378 branch: "refs/heads/{branch}"
379 submodule-recursive: true
380 submodule-timeout: "{submodule-timeout}"
381 submodule-disable: "{submodule-disable}"
382 choosing-strategy: default
383 jenkins-ssh-credential: "{jenkins-ssh-credential}"
386 - timed: "{obj:cron}"
390 - github-pull-request:
391 trigger-phrase: "^remerge$"
392 only-trigger-phrase: true
393 status-context: "Jenkins CFG Merge"
398 white-list: "{obj:github_pr_whitelist}"
399 admin-list: "{obj:github_pr_admin_list}"
400 included-regions: "{obj:github_included_regions}"
401 white-list-target-branches:
404 ###########################################
405 # Jenkins Configuration Management Verify #
406 ###########################################
408 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
409 name: lf-jenkins-cfg-verify
411 ######################
412 # Default parameters #
413 ######################
416 build-days-to-keep: 7
418 git-url: "$GIT_URL/$GERRIT_PROJECT"
419 github-url: "https://github.com"
421 submodule-timeout: 10
422 submodule-disable: false
424 gerrit_verify_triggers:
425 - patchset-created-event:
427 exclude-trivial-rebase: false
428 exclude-no-code-change: false
429 - draft-published-event
430 - comment-added-contains-event:
431 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
433 gerrit_trigger_file_paths:
434 - compare-type: REG_EXP
435 pattern: 'jenkins-config\/.*'
437 # github_included_regions MUST match gerrit_trigger_file_paths
438 github_included_regions:
439 - 'jenkins-config\/.*'
441 #####################
442 # Job Configuration #
443 #####################
445 project-type: freestyle
448 disabled: "{disable-job}"
451 - lf-infra-properties:
453 build-days-to-keep: 1
456 - lf-infra-parameters:
464 jenkins-ssh-credential: "{jenkins-ssh-credential}"
465 - config-file-provider:
466 # Listed after to override openstack-infra-wrappers clouds.yaml
469 - file-id: clouds-yaml
470 target: "$HOME/.config/openstack/clouds.yaml"
472 target: "$HOME/.npmrc"
474 target: "$HOME/.config/pip/pip.conf"
479 properties-content: OS_CLOUD={openstack-cloud}
480 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
486 name: "{project-name}-jenkins-cfg-verify"
487 id: gerrit-jenkins-cfg-verify
488 <<: *lf_jenkins_cfg_verify
491 - lf-infra-gerrit-scm:
493 refspec: "$GERRIT_REFSPEC"
494 branch: "$GERRIT_BRANCH"
495 submodule-recursive: true
496 submodule-timeout: "{submodule-timeout}"
497 submodule-disable: "{submodule-disable}"
498 choosing-strategy: gerrit
499 jenkins-ssh-credential: "{jenkins-ssh-credential}"
503 server-name: "{gerrit-server-name}"
504 trigger-on: "{obj:gerrit_verify_triggers}"
506 - project-compare-type: ANT
507 project-pattern: "{project}"
509 - branch-compare-type: ANT
510 branch-pattern: "**/{branch}"
511 file-paths: "{obj:gerrit_trigger_file_paths}"
514 name: "{project-name}-jenkins-cfg-verify"
515 id: github-jenkins-cfg-verify
516 <<: *lf_jenkins_cfg_verify
520 url: "{github-url}/{github-org}/{project}"
523 - lf-infra-github-scm:
524 url: "{git-clone-url}{github-org}/{project}"
525 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
527 submodule-recursive: true
528 submodule-timeout: "{submodule-timeout}"
529 submodule-disable: "{submodule-disable}"
530 choosing-strategy: default
531 jenkins-ssh-credential: "{jenkins-ssh-credential}"
534 - github-pull-request:
535 trigger-phrase: "^(recheck|reverify)$"
536 only-trigger-phrase: false
537 status-context: "Jenkins CFG Verify"
540 included-regions: "{obj:github_included_regions}"
541 white-list-target-branches:
544 ###########################
545 # JENKINS SANDBOX CLEANUP #
546 ###########################
548 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
549 name: lf-jenkins-sandbox-cleanup
551 ######################
552 # Default parameters #
553 ######################
556 # Run every Saturday at 08:00 UTC
560 #####################
561 # Job Configuration #
562 #####################
564 project-type: freestyle
567 disabled: "{disable-job}"
570 - lf-infra-jjb-parameters:
571 jjb-cache: "{jjb-cache}"
572 jjb-version: "{jjb-version}"
575 - timed: "{obj:cron}"
579 - shell: !include-raw-escape:
580 - ../shell/jjb-install.sh
581 - ../shell/jenkins-sandbox-cleanup.sh
582 - ../shell/jjb-cleanup.sh
585 name: "{project-name}-jenkins-sandbox-cleanup"
586 id: gerrit-jenkins-sandbox-cleanup
588 # yamllint disable-line rule:key-duplicates
589 <<: *lf_jenkins_sandbox_cleanup
592 name: "{project-name}-jenkins-sandbox-cleanup"
593 id: github-jenkins-sandbox-cleanup
595 # yamllint disable-line rule:key-duplicates
596 <<: *lf_jenkins_sandbox_cleanup
602 - lf_jjb_deploy_job: &lf_jjb_deploy_job
603 name: lf-jjb-deploy-job
605 ######################
606 # Default parameters #
607 ######################
611 # jjb-deploy should always clone $PROJECT regardless of what
612 # $GERRIT_PROJECT triggered the job.
613 git-url: "$GIT_URL/$PROJECT"
614 github-url: "https://github.com"
616 submodule-timeout: 10
617 submodule-disable: false
618 gerrit_jjb_deploy_job_triggers:
619 - comment-added-contains-event:
620 comment-contains-value: '^Patch Set\s+\d+:\s+(jjb-deploy[:]* (?!\*+$).+$)'
622 #####################
623 # Job Configuration #
624 #####################
626 project-type: freestyle
629 disabled: "{disable-job}"
632 - lf-infra-properties:
634 build-days-to-keep: 1
637 - lf-infra-parameters:
645 jenkins-ssh-credential: "{jenkins-ssh-credential}"
649 pip-packages: jenkins-job-builder
650 - lf-infra-jjbini-sandbox
651 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
657 name: "{project-name}-jjb-deploy-job"
658 id: gerrit-jjb-deploy-job
659 <<: *lf_jjb_deploy_job
662 - lf-infra-gerrit-scm:
664 refspec: "refs/heads/{branch}"
666 submodule-recursive: true
667 submodule-timeout: "{submodule-timeout}"
668 submodule-disable: "{submodule-disable}"
669 choosing-strategy: default
670 jenkins-ssh-credential: "{jenkins-ssh-credential}"
674 server-name: "{gerrit-server-name}"
675 trigger-on: "{obj:gerrit_jjb_deploy_job_triggers}"
677 - project-compare-type: ANT
678 project-pattern: "**"
680 - branch-compare-type: ANT
689 name: "{project-name}-jjb-deploy-job"
690 id: github-jjb-deploy-job
691 <<: *lf_jjb_deploy_job
694 - lf-infra-properties:
696 build-days-to-keep: 1
698 url: "{github-url}/{github-org}/{project}"
701 - lf-infra-github-scm:
702 url: "{git-clone-url}{github-org}/{project}"
703 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
705 submodule-recursive: true
706 submodule-timeout: "{submodule-timeout}"
707 submodule-disable: "{submodule-disable}"
708 choosing-strategy: default
709 jenkins-ssh-credential: "{jenkins-ssh-credential}"
712 - github-pull-request:
713 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
714 only-trigger-phrase: true
715 status-context: "JJB Deploy Job"
718 white-list-target-branches:
725 - lf_jjb_merge: &lf_jjb_merge
728 ######################
729 # Default parameters #
730 ######################
734 gerrit_merge_triggers:
735 - change-merged-event
736 - comment-added-contains-event:
737 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
739 #####################
740 # Job Configuration #
741 #####################
747 properties-content: JJB_WORKERS={jjb-workers}
748 - shell: !include-raw-escape:
749 - ../shell/jjb-install.sh
750 - ../shell/jjb-merge-job.sh
751 - ../shell/jjb-cleanup.sh
754 name: "{project-name}-jjb-merge"
757 # yamllint disable-line rule:key-duplicates
760 git-url: "$GIT_URL/$GERRIT_PROJECT"
763 - lf-infra-gerrit-scm:
767 submodule-recursive: "{submodule-recursive}"
768 submodule-timeout: "{submodule-timeout}"
769 submodule-disable: "{submodule-disable}"
770 choosing-strategy: default
771 jenkins-ssh-credential: "{jenkins-ssh-credential}"
775 server-name: "{gerrit-server-name}"
776 trigger-on: "{obj:gerrit_merge_triggers}"
778 - project-compare-type: ANT
779 project-pattern: "{project}"
781 - branch-compare-type: ANT
782 branch-pattern: "**/{branch}"
783 file-paths: "{obj:gerrit_trigger_file_paths}"
786 name: "{project-name}-jjb-merge"
789 # yamllint disable-line rule:key-duplicates
792 #####################
793 # Job Configuration #
794 #####################
797 - lf-infra-properties:
799 build-days-to-keep: 7
801 url: "{github-url}/{github-org}/{project}"
804 - lf-infra-github-scm:
805 url: "{git-clone-url}{github-org}/{project}"
807 branch: "refs/heads/{branch}"
808 submodule-recursive: "{submodule-recursive}"
809 submodule-timeout: "{submodule-timeout}"
810 submodule-disable: "{submodule-disable}"
811 choosing-strategy: default
812 jenkins-ssh-credential: "{jenkins-ssh-credential}"
818 - github-pull-request:
819 trigger-phrase: "^remerge$"
820 only-trigger-phrase: true
821 status-context: "JJB Merge"
826 white-list: "{obj:github_pr_whitelist}"
827 admin-list: "{obj:github_pr_admin_list}"
828 included-regions: "{obj:github_included_regions}"
829 white-list-target-branches:
836 - lf_jjb_verify: &lf_jjb_verify
839 ######################
840 # Default parameters #
841 ######################
843 build-concurrent: true
845 gerrit_verify_triggers:
846 - patchset-created-event:
848 exclude-trivial-rebase: false
849 exclude-no-code-change: false
850 - draft-published-event
851 - comment-added-contains-event:
852 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
854 #####################
855 # Job Configuration #
856 #####################
858 concurrent: "{build-concurrent}"
863 - shell: !include-raw-escape:
864 - ../shell/git-validate-jira-urls.sh
865 - ../shell/jjb-install.sh
866 - ../shell/jjb-verify-job.sh
867 - ../shell/jjb-check-unicode.sh
868 - ../shell/jjb-cleanup.sh
869 - lf-infra-gpg-verify-git-signature
872 name: "{project-name}-jjb-verify"
873 id: gerrit-jjb-verify
875 # yamllint disable-line rule:key-duplicates
878 ######################
879 # Default parameters #
880 ######################
882 git-url: "$GIT_URL/$GERRIT_PROJECT"
884 #####################
885 # Job Configuration #
886 #####################
889 - lf-infra-gerrit-scm:
891 refspec: "$GERRIT_REFSPEC"
892 branch: "$GERRIT_BRANCH"
893 submodule-recursive: "{submodule-recursive}"
894 submodule-timeout: "{submodule-timeout}"
895 submodule-disable: "{submodule-disable}"
896 choosing-strategy: gerrit
897 jenkins-ssh-credential: "{jenkins-ssh-credential}"
901 server-name: "{gerrit-server-name}"
902 trigger-on: "{obj:gerrit_verify_triggers}"
904 - project-compare-type: ANT
905 project-pattern: "{project}"
907 - branch-compare-type: ANT
908 branch-pattern: "**/{branch}"
909 file-paths: "{obj:gerrit_trigger_file_paths}"
912 name: "{project-name}-jjb-verify"
913 id: github-jjb-verify
915 # yamllint disable-line rule:key-duplicates
918 #####################
919 # Job Configuration #
920 #####################
923 - lf-infra-properties:
925 build-days-to-keep: 7
927 url: "{github-url}/{github-org}/{project}"
930 - lf-infra-github-scm:
931 url: "{git-clone-url}{github-org}/{project}"
932 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
934 submodule-recursive: "{submodule-recursive}"
935 submodule-timeout: "{submodule-timeout}"
936 submodule-disable: "{submodule-disable}"
937 choosing-strategy: default
938 jenkins-ssh-credential: "{jenkins-ssh-credential}"
941 - github-pull-request:
942 trigger-phrase: "^(recheck|reverify)$"
943 only-trigger-phrase: false
944 status-context: "JJB Verify"
947 included-regions: "{obj:github_included_regions}"
948 white-list-target-branches:
951 ############################
952 # JJB Verify Upstream GJJB #
953 ############################
955 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
956 name: lf-jjb-verify-upstream-gjjb
958 #####################
959 # Job Configuration #
960 #####################
967 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
968 git cherry-pick FETCH_HEAD
970 - shell: !include-raw-escape:
971 - ../shell/git-validate-jira-urls.sh
972 - ../shell/jjb-install.sh
973 - ../shell/jjb-verify-job.sh
974 - ../shell/jjb-check-unicode.sh
975 - ../shell/jjb-cleanup.sh
976 - lf-infra-gpg-verify-git-signature
979 name: "{project-name}-jjb-verify-upstream-gjjb"
980 id: gerrit-jjb-verify-upstream-gjjb
982 # yamllint disable-line rule:key-duplicates
983 <<: *lf_jjb_verify_upstream_gjjb
985 ######################
986 # Default parameters #
987 ######################
989 git-url: "$GIT_URL/$PROJECT"
990 submodule-timeout: 10
991 submodule-disable: false
993 #####################
994 # Job Configuration #
995 #####################
998 - lf-infra-gerrit-scm:
1002 submodule-recursive: true
1003 submodule-timeout: "{submodule-timeout}"
1004 submodule-disable: "{submodule-disable}"
1005 choosing-strategy: default
1006 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1010 server-name: "LinuxFoundation"
1012 - patchset-created-event:
1013 exclude-drafts: true
1014 exclude-trivial-rebase: false
1015 exclude-no-code-change: false
1016 - draft-published-event
1017 - comment-added-contains-event:
1018 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1020 - project-compare-type: ANT
1021 project-pattern: "releng/global-jjb"
1023 - branch-compare-type: ANT
1024 branch-pattern: "**/master"
1025 override-votes: true
1026 gerrit-build-failed-codereview-value: -1
1027 gerrit-build-failed-verified-value: 0
1028 gerrit-build-successful-codereview-value: 1
1029 gerrit-build-successful-verified-value: 0
1035 - lf_license_check: &lf_license_check
1036 name: lf-license-check
1038 ######################
1039 # Default parameters #
1040 ######################
1043 build-days-to-keep: 7
1052 git-url: "$GIT_URL/$PROJECT"
1053 github-url: "https://github.com"
1055 license-exclude-paths: ""
1056 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1057 project-pattern: "**"
1060 submodule-timeout: 10
1061 submodule-disable: false
1063 #####################
1064 # Job Configuration #
1065 #####################
1067 project-type: freestyle
1068 node: "{build-node}"
1070 disabled: "{disable-job}"
1073 - lf-infra-properties:
1074 build-days-to-keep: "{build-days-to-keep}"
1077 - lf-infra-parameters:
1078 project: "{project}"
1083 - lf-infra-wrappers:
1084 build-timeout: "{build-timeout}"
1085 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1089 file-patterns: "{file-patterns}"
1090 spdx-disable: "{spdx-disable}"
1091 lhc-version: "{lhc-version}"
1092 license-exclude-paths: "{license-exclude-paths}"
1093 licenses-allowed: "{licenses-allowed}"
1099 name: "{project-name}-license-check"
1100 id: gerrit-license-check
1101 <<: *lf_license_check
1103 git-url: "$GIT_URL/$GERRIT_PROJECT"
1106 - lf-infra-gerrit-scm:
1107 git-url: "{git-url}"
1108 refspec: "$GERRIT_REFSPEC"
1109 branch: "$GERRIT_BRANCH"
1110 # Submodules are out of the project's control
1111 submodule-recursive: false
1112 submodule-timeout: "{submodule-timeout}"
1113 submodule-disable: "{submodule-disable}"
1114 choosing-strategy: gerrit
1115 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1119 server-name: "{gerrit-server-name}"
1120 # Trigger should not be overridable as we want to always run
1122 - patchset-created-event:
1123 exclude-drafts: false
1124 exclude-trivial-rebase: false
1125 exclude-no-code-change: false
1126 - draft-published-event
1127 - comment-added-contains-event:
1128 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1130 - project-compare-type: ANT
1131 project-pattern: "{project-pattern}"
1133 - branch-compare-type: ANT
1134 branch-pattern: "**"
1137 name: "{project-name}-license-check"
1138 id: github-license-check
1139 <<: *lf_license_check
1142 - lf-infra-properties:
1143 build-days-to-keep: "{build-days-to-keep}"
1145 url: "{github-url}/{github-org}/{project}"
1148 - lf-infra-github-scm:
1149 url: "{git-clone-url}{github-org}/{project}"
1150 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1152 # Submodules are out of the project's control
1153 submodule-recursive: false
1154 submodule-timeout: "{submodule-timeout}"
1155 submodule-disable: "{submodule-disable}"
1156 choosing-strategy: default
1157 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1160 - github-pull-request:
1161 trigger-phrase: "^recheck$"
1162 only-trigger-phrase: false
1163 status-context: "License Check"
1166 white-list-target-branches:
1169 ####################
1170 # Info YAML Verify #
1171 ####################
1173 - lf_info_yaml_verify: &lf_info_yaml_verify
1174 name: lf-info-yaml-verify
1176 ######################
1177 # Default parameters #
1178 ######################
1180 gerrit_verify_triggers:
1181 - patchset-created-event:
1182 exclude-drafts: true
1183 exclude-trivial-rebase: false
1184 exclude-no-code-change: false
1185 - draft-published-event
1186 - comment-added-contains-event:
1187 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1189 #####################
1190 # Job Configuration #
1191 #####################
1196 - shell: !include-raw-escape:
1197 - ../shell/git-validate-info-yaml.sh
1198 - ../shell/info-file-validate.sh
1201 name: "{project-name}-info-yaml-verify"
1202 id: gerrit-info-yaml-verify
1204 # yamllint disable-line rule:key-duplicates
1205 <<: *lf_info_yaml_verify
1207 git-url: "$GIT_URL/$GERRIT_PROJECT"
1210 - lf-infra-gerrit-scm:
1211 git-url: "{git-url}"
1212 refspec: "$GERRIT_REFSPEC"
1213 branch: "$GERRIT_BRANCH"
1214 submodule-recursive: "{submodule-recursive}"
1215 submodule-timeout: "{submodule-timeout}"
1216 submodule-disable: "{submodule-disable}"
1217 choosing-strategy: gerrit
1218 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1222 server-name: "{gerrit-server-name}"
1223 trigger-on: "{obj:gerrit_verify_triggers}"
1225 - project-compare-type: ANT
1226 project-pattern: "{project}"
1228 - branch-compare-type: ANT
1229 branch-pattern: "**/{branch}"
1231 - compare-type: REG_EXP
1232 pattern: "INFO.yaml"
1235 name: "{project-name}-info-yaml-verify"
1236 id: github-info-yaml-verify
1238 # yamllint disable-line rule:key-duplicates
1239 <<: *lf_info_yaml_verify
1241 github-url: "https://github.com"
1244 url: "{github-url}/{github-org}/{project}"
1247 - lf-infra-github-scm:
1248 url: "{git-clone-url}{github-org}/{project}"
1249 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1251 submodule-recursive: "{submodule-recursive}"
1252 submodule-timeout: "{submodule-timeout}"
1253 submodule-disable: "{submodule-disable}"
1254 choosing-strategy: default
1255 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1258 - github-pull-request:
1259 trigger-phrase: "^(recheck|reverify)$"
1260 only-trigger-phrase: false
1261 status-context: "INFO File Verify"
1264 # included-regions MUST match gerrit file-paths
1265 included-regions: "INFO.yaml"
1266 white-list-target-branches:
1273 - lf_openstack_cron: &lf_openstack_cron
1274 name: lf-openstack-cron
1276 ######################
1277 # Default parameters #
1278 ######################
1281 build-days-to-keep: 7
1285 git-url: "$GIT_URL/$PROJECT"
1286 github-url: "https://github.com"
1287 openstack-cloud: vex
1288 openstack-image-cleanup: true
1289 openstack-image-cleanup-age: 30
1290 openstack-image-protect: true
1291 openstack-port-cleanup: true
1292 openstack-server-cleanup: true
1293 openstack-stack-cleanup: true
1294 openstack-volume-cleanup: true
1296 submodule-timeout: 10
1297 submodule-disable: false
1299 #####################
1300 # Job Configuration #
1301 #####################
1303 project-type: freestyle
1304 node: "{build-node}"
1306 disabled: "{disable-job}"
1309 - lf-infra-properties:
1310 build-days-to-keep: "{build-days-to-keep}"
1313 - lf-infra-parameters:
1314 project: "{project}"
1319 default: "{jenkins-urls}"
1321 Space separated list of Jenkins URLs to check for active builds.
1324 - lf-infra-wrappers:
1325 build-timeout: "{build-timeout}"
1326 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1327 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1328 - config-file-provider:
1330 - file-id: clouds-yaml
1331 target: "$HOME/.config/openstack/clouds.yaml"
1333 target: "$HOME/.npmrc"
1335 target: "$HOME/.config/pip/pip.conf"
1338 - timed: "{obj:cron}"
1341 - lf-infra-pre-build
1343 properties-content: OS_CLOUD={openstack-cloud}
1346 condition-kind: boolean-expression
1347 condition-expression: "{openstack-stack-cleanup}"
1349 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1352 condition-kind: boolean-expression
1353 condition-expression: "{openstack-server-cleanup}"
1355 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1358 condition-kind: boolean-expression
1359 condition-expression: "{openstack-port-cleanup}"
1361 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1364 condition-kind: boolean-expression
1365 condition-expression: "{openstack-volume-cleanup}"
1367 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1370 condition-kind: boolean-expression
1371 condition-expression: "{openstack-image-protect}"
1373 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1375 condition-kind: boolean-expression
1376 condition-expression: "{openstack-image-cleanup}"
1379 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1380 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1386 name: "{project-name}-openstack-cron"
1387 id: gerrit-openstack-cron
1388 <<: *lf_openstack_cron
1391 - lf-infra-gerrit-scm:
1392 git-url: "{git-url}"
1393 refspec: "refs/heads/{branch}"
1395 submodule-recursive: true
1396 submodule-timeout: "{submodule-timeout}"
1397 submodule-disable: "{submodule-disable}"
1398 choosing-strategy: default
1399 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1402 name: "{project-name}-openstack-cron"
1403 id: github-openstack-cron
1404 <<: *lf_openstack_cron
1407 - lf-infra-github-scm:
1408 url: "{git-clone-url}{github-org}/{project}"
1410 branch: "refs/heads/{branch}"
1411 submodule-recursive: true
1412 submodule-timeout: "{submodule-timeout}"
1413 submodule-disable: "{submodule-disable}"
1414 choosing-strategy: default
1415 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1421 - lf_packer_merge: &lf_packer_merge
1422 name: lf-packer-merge
1424 ######################
1425 # Default parameters #
1426 ######################
1429 openstack-cloud: vex
1431 #####################
1432 # Job Configuration #
1433 #####################
1436 - lf-infra-parameters:
1437 project: "{project}"
1440 - lf-packer-parameters:
1441 packer-version: "{packer-version}"
1444 - lf-infra-packer-build:
1445 openstack: "{openstack}"
1446 openstack-cloud: "{openstack-cloud}"
1447 packer-cloud-settings: "{packer-cloud-settings}"
1448 packer-version: "{packer-version}"
1449 platform: "{platforms}"
1450 template: "{templates}"
1451 - description-setter:
1452 description: ".*Creating the image:(.*)"
1455 name: "{project-name}-packer-merge-{platforms}-{templates}"
1456 id: gerrit-packer-merge
1457 <<: *lf_packer_common
1458 # yamllint disable-line rule:key-duplicates
1459 <<: *lf_packer_merge
1461 ######################
1462 # Default parameters #
1463 ######################
1465 git-url: "$GIT_URL/$GERRIT_PROJECT"
1467 gerrit_merge_triggers:
1468 - change-merged-event
1469 - comment-added-contains-event:
1470 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1472 #####################
1473 # Job Configuration #
1474 #####################
1477 - lf-infra-gerrit-scm:
1478 git-url: "{git-url}"
1479 refspec: "$GERRIT_REFSPEC"
1480 branch: "$GERRIT_BRANCH"
1481 submodule-recursive: "{submodule-recursive}"
1482 submodule-timeout: "{submodule-timeout}"
1483 submodule-disable: "{submodule-disable}"
1484 choosing-strategy: default
1485 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1488 - timed: "{obj:cron}"
1490 server-name: "{gerrit-server-name}"
1491 trigger-on: "{obj:gerrit_merge_triggers}"
1493 - project-compare-type: ANT
1494 project-pattern: "{project}"
1496 - branch-compare-type: ANT
1497 branch-pattern: "**/{branch}"
1499 - compare-type: REG_EXP
1500 pattern: 'packer\/provision\/.*\.sh'
1501 - compare-type: REG_EXP
1502 pattern: 'packer\/provision\/.*\.bat'
1503 - compare-type: REG_EXP
1504 pattern: 'packer\/provision\/.*\.ps1'
1505 - compare-type: REG_EXP
1506 pattern: 'packer\/provision\/{templates}\.yaml'
1507 - compare-type: REG_EXP
1508 pattern: 'packer\/provision\/local-{templates}\.yaml'
1509 - compare-type: REG_EXP
1510 pattern: 'packer\/templates\/{templates}\.json'
1511 - compare-type: REG_EXP
1512 pattern: 'packer\/vars\/{platforms}\.json'
1515 name: "{project-name}-packer-merge-{platforms}-{templates}"
1516 id: github-packer-merge
1517 <<: *lf_packer_common
1518 # yamllint disable-line rule:key-duplicates
1519 <<: *lf_packer_merge
1521 #####################
1522 # Job Configuration #
1523 #####################
1526 - lf-infra-properties:
1527 project: "{project}"
1528 build-days-to-keep: 7
1530 url: "{github-url}/{github-org}/{project}"
1533 - lf-infra-github-scm:
1534 url: "{git-clone-url}{github-org}/{project}"
1536 +refs/heads/*:refs/remotes/origin/*
1537 +refs/pull/*:refs/remotes/origin/pr/*
1538 branch: "$GERRIT_REFSPEC"
1539 submodule-recursive: "{submodule-recursive}"
1540 submodule-timeout: "{submodule-timeout}"
1541 submodule-disable: "{submodule-disable}"
1542 choosing-strategy: default
1543 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1546 - timed: "{obj:cron}"
1551 - github-pull-request:
1552 trigger-phrase: "^remerge$"
1553 only-trigger-phrase: true
1554 status-context: "Packer {platforms}-{templates} Merge"
1559 white-list: "{obj:github_pr_whitelist}"
1560 admin-list: "{obj:github_pr_admin_list}"
1561 # included-regions MUST match Gerrit Trigger file-paths
1563 - 'packer\/provision\/.*\.sh'
1564 - 'packer\/provision\/.*\.bat'
1565 - 'packer\/provision\/.*\.ps1'
1566 - 'packer\/provision\/{templates}\.yaml'
1567 - 'packer\/provision\/local-{templates}\.yaml'
1568 - 'packer\/templates\/{templates}\.json'
1569 - 'packer\/vars\/{platforms}\.json'
1570 white-list-target-branches:
1577 - lf_packer_verify: &lf_packer_verify
1578 name: lf-packer-verify
1580 ######################
1581 # Default parameters #
1582 ######################
1586 openstack-cloud: vex
1588 gerrit_verify_triggers:
1589 - patchset-created-event:
1590 exclude-drafts: true
1591 exclude-trivial-rebase: false
1592 exclude-no-code-change: false
1593 - draft-published-event
1594 - comment-added-contains-event:
1595 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1597 gerrit_trigger_file_paths:
1598 - compare-type: REG_EXP
1599 pattern: 'packer\/.*'
1601 # github_included_regions MUST match gerrit_trigger_file_paths
1602 github_included_regions:
1605 #####################
1606 # Job Configuration #
1607 #####################
1612 - lf-infra-packer-validate:
1613 openstack: "{openstack}"
1614 openstack-cloud: "{openstack-cloud}"
1615 packer-cloud-settings: "{packer-cloud-settings}"
1616 packer-version: "{packer-version}"
1619 name: "{project-name}-packer-verify"
1620 id: gerrit-packer-verify
1621 <<: *lf_packer_common
1622 # yamllint disable-line rule:key-duplicates
1623 <<: *lf_packer_verify
1625 ######################
1626 # Default parameters #
1627 ######################
1629 git-url: "$GIT_URL/$GERRIT_PROJECT"
1631 #####################
1632 # Job Configuration #
1633 #####################
1636 - lf-infra-gerrit-scm:
1637 git-url: "{git-url}"
1638 refspec: "$GERRIT_REFSPEC"
1639 branch: "$GERRIT_BRANCH"
1640 submodule-recursive: "{submodule-recursive}"
1641 submodule-timeout: "{submodule-timeout}"
1642 submodule-disable: "{submodule-disable}"
1643 choosing-strategy: gerrit
1644 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1648 server-name: "{gerrit-server-name}"
1649 trigger-on: "{obj:gerrit_verify_triggers}"
1651 - project-compare-type: ANT
1652 project-pattern: "{project}"
1654 - branch-compare-type: ANT
1655 branch-pattern: "**/{branch}"
1656 file-paths: "{obj:gerrit_trigger_file_paths}"
1659 name: "{project-name}-packer-verify"
1660 id: github-packer-verify
1661 <<: *lf_packer_common
1662 # yamllint disable-line rule:key-duplicates
1663 <<: *lf_packer_verify
1665 #####################
1666 # Job Configuration #
1667 #####################
1670 - lf-infra-properties:
1671 project: "{project}"
1672 build-days-to-keep: 7
1674 url: "{github-url}/{github-org}/{project}"
1677 - lf-infra-github-scm:
1678 url: "{git-clone-url}{github-org}/{project}"
1679 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1681 submodule-recursive: "{submodule-recursive}"
1682 submodule-timeout: "{submodule-timeout}"
1683 submodule-disable: "{submodule-disable}"
1684 choosing-strategy: default
1685 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1688 - github-pull-request:
1689 trigger-phrase: "^(recheck|reverify)$"
1690 only-trigger-phrase: false
1691 status-context: "Packer Verify"
1694 included-regions: "{obj:github_included_regions}"
1695 white-list-target-branches:
1702 - lf_puppet_verify: &lf_puppet_verify
1703 name: lf-puppet-verify
1705 ######################
1706 # Default parameters #
1707 ######################
1710 build-days-to-keep: 7
1713 git-url: "$GIT_URL/$GERRIT_PROJECT"
1714 github-url: "https://github.com"
1717 puppet-lint-version: 2.3.6
1719 submodule-recursive: true
1720 submodule-timeout: 10
1721 submodule-disable: false
1723 gerrit_trigger_file_paths:
1724 - compare-type: REG_EXP
1727 # github_included_regions MUST match gerrit_trigger_file_paths
1728 github_included_regions:
1731 #####################
1732 # Job Configuration #
1733 #####################
1735 project-type: freestyle
1736 node: "{build-node}"
1738 disabled: "{disable-job}"
1741 - lf-infra-properties:
1742 build-days-to-keep: "{build-days-to-keep}"
1745 - lf-infra-parameters:
1746 project: "{project}"
1749 - lf-puppet-parameters:
1750 puppet-lint-version: "{puppet-lint-version}"
1753 - lf-infra-wrappers:
1754 build-timeout: "{build-timeout}"
1755 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1758 - shell: !include-raw-escape: ../shell/puppet-lint.sh
1764 name: "{project-name}-puppet-verify"
1765 id: gerrit-puppet-verify
1766 <<: *lf_puppet_verify
1768 ######################
1769 # Default parameters #
1770 ######################
1772 gerrit_verify_triggers:
1773 - patchset-created-event:
1774 exclude-drafts: true
1775 exclude-trivial-rebase: false
1776 exclude-no-code-change: false
1777 - draft-published-event
1778 - comment-added-contains-event:
1779 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1781 #####################
1782 # Job Configuration #
1783 #####################
1786 - lf-infra-gerrit-scm:
1787 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1788 git-url: "{git-url}"
1789 refspec: "$GERRIT_REFSPEC"
1790 branch: "$GERRIT_BRANCH"
1791 submodule-recursive: "{submodule-recursive}"
1792 submodule-timeout: "{submodule-timeout}"
1793 submodule-disable: "{submodule-disable}"
1794 choosing-strategy: gerrit
1798 server-name: "{gerrit-server-name}"
1799 trigger-on: "{obj:gerrit_verify_triggers}"
1801 - project-compare-type: ANT
1802 project-pattern: "{project}"
1804 - branch-compare-type: ANT
1805 branch-pattern: "**/{branch}"
1806 file-paths: "{obj:gerrit_trigger_file_paths}"
1809 name: "{project-name}-puppet-verify"
1810 id: github-puppet-verify
1811 <<: *lf_puppet_verify
1813 #####################
1814 # Job Configuration #
1815 #####################
1818 - lf-infra-properties:
1819 project: "{project}"
1820 build-days-to-keep: 7
1822 url: "{github-url}/{github-org}/{project}"
1825 - lf-infra-github-scm:
1826 url: "{git-clone-url}{github-org}/{project}"
1827 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1829 submodule-recursive: "{submodule-recursive}"
1830 submodule-timeout: "{submodule-timeout}"
1831 submodule-disable: "{submodule-disable}"
1832 choosing-strategy: default
1833 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1836 - github-pull-request:
1837 trigger-phrase: "^(recheck|reverify)$"
1838 only-trigger-phrase: false
1839 status-context: "Puppet Verify"
1842 included-regions: "{obj:github_included_regions}"
1843 white-list-target-branches: