9 - config-file-provider:
12 target: "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
14 - lf_packer: &lf_packer_common
15 name: lf-packer-common
16 # Provide configuration common in packer jobs.
18 ######################
19 # Default parameters #
20 ######################
26 github-url: "https://github.com"
28 submodule-recursive: true
30 submodule-disable: false
31 packer-cloud-settings: packer-cloud-env
38 project-type: freestyle
40 disabled: "{disable-job}"
43 - lf-infra-properties:
48 - lf-infra-parameters:
52 - lf-packer-parameters:
53 packer-version: "{packer-version}"
57 build-timeout: "{build-timeout}"
58 jenkins-ssh-credential: "{jenkins-ssh-credential}"
64 name: lf-infra-jjb-parameters
68 default: "{jjb-version}"
69 description: Jenkins Job Builder version to download and install.
72 default: "{jjb-cache}"
73 description: Jenkins Job Builder cache location.
76 name: lf-packer-parameters
80 default: "{packer-version}"
81 description: Packer version to download and install.
84 name: lf-puppet-parameters
87 name: PUPPET_LINT_VERSION
88 default: "{puppet-lint-version}"
89 description: Puppet-lint version to download and install.
91 - lf_jjb_common: &lf_jjb_common
94 ######################
95 # Default parameters #
96 ######################
101 github-url: "https://github.com"
102 jjb-cache: "$HOME/.cache/jenkins_jobs"
105 submodule-recursive: true
106 submodule-timeout: 10
107 submodule-disable: false
108 throttle_categories: []
109 throttle-enabled: false
110 throttle-max-per-node: 1
111 throttle-max-total: 0
112 throttle-option: "project"
114 gerrit_trigger_file_paths:
115 - compare-type: REG_EXP
117 - compare-type: REG_EXP
118 pattern: "global-jjb"
119 - compare-type: REG_EXP
122 # github_included_regions MUST match gerrit_trigger_file_paths
123 github_included_regions:
128 #####################
129 # Job Configuration #
130 #####################
132 project-type: freestyle
134 disabled: "{disable-job}"
137 - lf-infra-properties:
139 build-days-to-keep: 7
141 categories: "{obj:throttle_categories}"
142 enabled: "{throttle-enabled}"
143 max-per-node: "{throttle-max-per-node}"
144 max-total: "{throttle-max-total}"
145 option: "{throttle-option}"
148 - lf-infra-parameters:
152 - lf-infra-jjb-parameters:
153 jjb-cache: "{jjb-cache}"
154 jjb-version: "{jjb-version}"
158 build-timeout: "{build-timeout}"
159 jenkins-ssh-credential: "{jenkins-ssh-credential}"
164 ######################
165 # Gerrit Branch Lock #
166 ######################
169 name: "{project-name}-gerrit-branch-lock"
170 id: gerrit-branch-lock
172 ######################
173 # Default parameters #
174 ######################
178 git-url: "$GIT_URL/$GERRIT_PROJECT"
179 submodule-timeout: 10
180 submodule-disable: true
181 gerrit_merge_triggers:
182 - comment-added-contains-event:
183 comment-contains-value: (un)?lock branch$
185 #####################
186 # Job Configuration #
187 #####################
189 project-type: freestyle
191 disabled: "{disable-job}"
194 - lf-infra-properties:
196 build-days-to-keep: 1
199 - lf-infra-parameters:
207 jenkins-ssh-credential: "{jenkins-ssh-credential}"
210 - lf-infra-gerrit-scm:
213 branch: "$GERRIT_BRANCH"
214 submodule-recursive: false
215 submodule-timeout: "{submodule-timeout}"
216 submodule-disable: "{submodule-disable}"
217 choosing-strategy: default
218 jenkins-ssh-credential: "{jenkins-ssh-credential}"
222 server-name: "{gerrit-server-name}"
223 trigger-on: "{obj:gerrit_merge_triggers}"
225 - project-compare-type: ANT
226 project-pattern: "**"
228 - branch-compare-type: ANT
229 branch-pattern: "**/{branch}"
232 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
237 ##########################################
238 # Jenkins Configuration Management Merge #
239 ##########################################
242 name: lf-jenkins-cfg-clouds
246 properties-content: "jenkins_silos={jenkins-silos}"
247 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
248 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
251 name: lf-jenkins-cfg-global-vars
255 properties-content: "jenkins_silos={jenkins-silos}"
256 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
257 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
259 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
260 name: lf-jenkins-cfg-merge
262 ######################
263 # Default parameters #
264 ######################
269 git-url: "$GIT_URL/$GERRIT_PROJECT"
270 github-url: "https://github.com"
271 jenkins-silos: production sandbox
272 submodule-timeout: 10
273 submodule-disable: false
275 gerrit_merge_triggers:
276 - change-merged-event
277 - comment-added-contains-event:
278 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
280 gerrit_trigger_file_paths:
281 - compare-type: REG_EXP
282 pattern: 'jenkins-config\/.*'
284 # github_included_regions MUST match gerrit_trigger_file_paths
285 github_included_regions:
286 - 'jenkins-config\/.*'
288 #####################
289 # Job Configuration #
290 #####################
292 project-type: freestyle
295 disabled: "{disable-job}"
298 - lf-infra-properties:
300 build-days-to-keep: 1
303 - lf-infra-parameters:
311 jenkins-ssh-credential: "{jenkins-ssh-credential}"
315 - lf-jenkins-cfg-global-vars:
316 jenkins-silos: "{jenkins-silos}"
317 - lf-jenkins-cfg-clouds:
318 jenkins-silos: "{jenkins-silos}"
324 name: "{project-name}-jenkins-cfg-merge"
325 id: gerrit-jenkins-cfg-merge
326 <<: *lf_jenkins_cfg_merge
329 - lf-infra-gerrit-scm:
331 refspec: "refs/heads/{branch}"
333 submodule-recursive: true
334 submodule-timeout: "{submodule-timeout}"
335 submodule-disable: "{submodule-disable}"
336 choosing-strategy: default
337 jenkins-ssh-credential: "{jenkins-ssh-credential}"
340 - timed: "{obj:cron}"
342 server-name: "{gerrit-server-name}"
343 trigger-on: "{obj:gerrit_merge_triggers}"
345 - project-compare-type: ANT
346 project-pattern: "{project}"
348 - branch-compare-type: ANT
349 branch-pattern: "**/{branch}"
350 file-paths: "{obj:gerrit_trigger_file_paths}"
353 name: "{project-name}-jenkins-cfg-merge"
354 id: github-jenkins-cfg-merge
355 <<: *lf_jenkins_cfg_merge
358 - lf-infra-properties:
360 build-days-to-keep: 1
362 url: "{github-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 submodule-timeout: "{submodule-timeout}"
371 submodule-disable: "{submodule-disable}"
372 choosing-strategy: default
373 jenkins-ssh-credential: "{jenkins-ssh-credential}"
376 - timed: "{obj:cron}"
380 - github-pull-request:
381 trigger-phrase: "^remerge$"
382 only-trigger-phrase: true
383 status-context: "Jenkins CFG Merge"
388 white-list: "{obj:github_pr_whitelist}"
389 admin-list: "{obj:github_pr_admin_list}"
390 included-regions: "{obj:github_included_regions}"
391 white-list-target-branches:
394 ###########################################
395 # Jenkins Configuration Management Verify #
396 ###########################################
398 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
399 name: lf-jenkins-cfg-verify
401 ######################
402 # Default parameters #
403 ######################
406 build-days-to-keep: 7
408 git-url: "$GIT_URL/$GERRIT_PROJECT"
409 github-url: "https://github.com"
410 submodule-timeout: 10
411 submodule-disable: false
413 gerrit_verify_triggers:
414 - patchset-created-event:
416 exclude-trivial-rebase: false
417 exclude-no-code-change: false
418 - draft-published-event
419 - comment-added-contains-event:
420 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
422 gerrit_trigger_file_paths:
423 - compare-type: REG_EXP
424 pattern: 'jenkins-config\/.*'
426 # github_included_regions MUST match gerrit_trigger_file_paths
427 github_included_regions:
428 - 'jenkins-config\/.*'
430 #####################
431 # Job Configuration #
432 #####################
434 project-type: freestyle
437 disabled: "{disable-job}"
440 - lf-infra-properties:
442 build-days-to-keep: 1
445 - lf-infra-parameters:
453 jenkins-ssh-credential: "{jenkins-ssh-credential}"
454 - config-file-provider:
455 # Listed after to override openstack-infra-wrappers clouds.yaml
458 - file-id: clouds-yaml
459 target: "$HOME/.config/openstack/clouds.yaml"
461 target: "$HOME/.npmrc"
463 target: "$HOME/.config/pip/pip.conf"
467 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
473 name: "{project-name}-jenkins-cfg-verify"
474 id: gerrit-jenkins-cfg-verify
475 <<: *lf_jenkins_cfg_verify
478 - lf-infra-gerrit-scm:
480 refspec: "$GERRIT_REFSPEC"
481 branch: "$GERRIT_BRANCH"
482 submodule-recursive: true
483 submodule-timeout: "{submodule-timeout}"
484 submodule-disable: "{submodule-disable}"
485 choosing-strategy: gerrit
486 jenkins-ssh-credential: "{jenkins-ssh-credential}"
490 server-name: "{gerrit-server-name}"
491 trigger-on: "{obj:gerrit_verify_triggers}"
493 - project-compare-type: ANT
494 project-pattern: "{project}"
496 - branch-compare-type: ANT
497 branch-pattern: "**/{branch}"
498 file-paths: "{obj:gerrit_trigger_file_paths}"
501 name: "{project-name}-jenkins-cfg-verify"
502 id: github-jenkins-cfg-verify
503 <<: *lf_jenkins_cfg_verify
507 url: "{github-url}/{github-org}/{project}"
510 - lf-infra-github-scm:
511 url: "{git-clone-url}{github-org}/{project}"
512 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
514 submodule-recursive: true
515 submodule-timeout: "{submodule-timeout}"
516 submodule-disable: "{submodule-disable}"
517 choosing-strategy: default
518 jenkins-ssh-credential: "{jenkins-ssh-credential}"
521 - github-pull-request:
522 trigger-phrase: "^(recheck|reverify)$"
523 only-trigger-phrase: false
524 status-context: "Jenkins CFG Verify"
527 included-regions: "{obj:github_included_regions}"
528 white-list-target-branches:
531 ###########################
532 # JENKINS SANDBOX CLEANUP #
533 ###########################
535 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
536 name: lf-jenkins-sandbox-cleanup
538 ######################
539 # Default parameters #
540 ######################
543 # Run every Saturday at 08:00 UTC
547 #####################
548 # Job Configuration #
549 #####################
551 project-type: freestyle
554 disabled: "{disable-job}"
557 - lf-infra-jjb-parameters:
558 jjb-cache: "{jjb-cache}"
559 jjb-version: "{jjb-version}"
562 - timed: "{obj:cron}"
566 - shell: !include-raw-escape:
567 - ../shell/jenkins-sandbox-cleanup.sh
570 name: "{project-name}-jenkins-sandbox-cleanup"
571 id: gerrit-jenkins-sandbox-cleanup
573 # yamllint disable-line rule:key-duplicates
574 <<: *lf_jenkins_sandbox_cleanup
577 name: "{project-name}-jenkins-sandbox-cleanup"
578 id: github-jenkins-sandbox-cleanup
580 # yamllint disable-line rule:key-duplicates
581 <<: *lf_jenkins_sandbox_cleanup
587 - lf_jjb_deploy_job: &lf_jjb_deploy_job
588 name: lf-jjb-deploy-job
590 ######################
591 # Default parameters #
592 ######################
596 # jjb-deploy should always clone $PROJECT regardless of what
597 # $GERRIT_PROJECT triggered the job.
598 git-url: "$GIT_URL/$PROJECT"
599 github-url: "https://github.com"
601 submodule-timeout: 10
602 submodule-disable: false
603 gerrit_jjb_deploy_job_triggers:
604 - comment-added-contains-event:
605 comment-contains-value: '^Patch Set\s+\d+:\s+(jjb-deploy[:]* (?!\*+$).+$)'
607 #####################
608 # Job Configuration #
609 #####################
611 project-type: freestyle
614 disabled: "{disable-job}"
617 - lf-infra-properties:
619 build-days-to-keep: 1
622 - lf-infra-parameters:
626 - lf-infra-jjb-parameters:
627 jjb-cache: "{jjb-cache}"
628 jjb-version: "{jjb-version}"
633 jenkins-ssh-credential: "{jenkins-ssh-credential}"
637 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
643 name: "{project-name}-jjb-deploy-job"
644 id: gerrit-jjb-deploy-job
646 # yamllint disable-line rule:key-duplicates
647 <<: *lf_jjb_deploy_job
650 - lf-infra-gerrit-scm:
652 refspec: "refs/heads/{branch}"
654 submodule-recursive: true
655 submodule-timeout: "{submodule-timeout}"
656 submodule-disable: "{submodule-disable}"
657 choosing-strategy: default
658 jenkins-ssh-credential: "{jenkins-ssh-credential}"
662 server-name: "{gerrit-server-name}"
663 trigger-on: "{obj:gerrit_jjb_deploy_job_triggers}"
665 - project-compare-type: ANT
666 project-pattern: "**"
668 - branch-compare-type: ANT
677 name: "{project-name}-jjb-deploy-job"
678 id: github-jjb-deploy-job
680 # yamllint disable-line rule:key-duplicates
681 <<: *lf_jjb_deploy_job
684 - lf-infra-properties:
686 build-days-to-keep: 1
688 url: "{github-url}/{github-org}/{project}"
691 - lf-infra-github-scm:
692 url: "{git-clone-url}{github-org}/{project}"
693 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
695 submodule-recursive: true
696 submodule-timeout: "{submodule-timeout}"
697 submodule-disable: "{submodule-disable}"
698 choosing-strategy: default
699 jenkins-ssh-credential: "{jenkins-ssh-credential}"
702 - github-pull-request:
703 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
704 only-trigger-phrase: true
705 status-context: "JJB Deploy Job"
708 white-list-target-branches:
715 - lf_jjb_merge: &lf_jjb_merge
718 ######################
719 # Default parameters #
720 ######################
724 gerrit_merge_triggers:
725 - change-merged-event
726 - comment-added-contains-event:
727 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
729 #####################
730 # Job Configuration #
731 #####################
737 properties-content: JJB_WORKERS={jjb-workers}
738 - shell: !include-raw-escape:
739 - ../shell/jjb-merge-job.sh
742 name: "{project-name}-jjb-merge"
745 # yamllint disable-line rule:key-duplicates
748 git-url: "$GIT_URL/$GERRIT_PROJECT"
751 - lf-infra-gerrit-scm:
755 submodule-recursive: "{submodule-recursive}"
756 submodule-timeout: "{submodule-timeout}"
757 submodule-disable: "{submodule-disable}"
758 choosing-strategy: default
759 jenkins-ssh-credential: "{jenkins-ssh-credential}"
763 server-name: "{gerrit-server-name}"
764 trigger-on: "{obj:gerrit_merge_triggers}"
766 - project-compare-type: ANT
767 project-pattern: "{project}"
769 - branch-compare-type: ANT
770 branch-pattern: "**/{branch}"
771 file-paths: "{obj:gerrit_trigger_file_paths}"
774 name: "{project-name}-jjb-merge"
777 # yamllint disable-line rule:key-duplicates
780 #####################
781 # Job Configuration #
782 #####################
785 - lf-infra-properties:
787 build-days-to-keep: 7
789 url: "{github-url}/{github-org}/{project}"
792 - lf-infra-github-scm:
793 url: "{git-clone-url}{github-org}/{project}"
795 branch: "refs/heads/{branch}"
796 submodule-recursive: "{submodule-recursive}"
797 submodule-timeout: "{submodule-timeout}"
798 submodule-disable: "{submodule-disable}"
799 choosing-strategy: default
800 jenkins-ssh-credential: "{jenkins-ssh-credential}"
806 - github-pull-request:
807 trigger-phrase: "^remerge$"
808 only-trigger-phrase: true
809 status-context: "JJB Merge"
814 white-list: "{obj:github_pr_whitelist}"
815 admin-list: "{obj:github_pr_admin_list}"
816 included-regions: "{obj:github_included_regions}"
817 white-list-target-branches:
824 - lf_jjb_verify: &lf_jjb_verify
827 ######################
828 # Default parameters #
829 ######################
831 build-concurrent: true
832 build-node-label-check: false
833 build-node-label-list: ""
835 gerrit_verify_triggers:
836 - patchset-created-event:
838 exclude-trivial-rebase: false
839 exclude-no-code-change: false
840 - draft-published-event
841 - comment-added-contains-event:
842 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
844 #####################
845 # Job Configuration #
846 #####################
848 concurrent: "{build-concurrent}"
853 - shell: !include-raw-escape:
854 - ../shell/jjb-verify-job.sh
856 condition-kind: boolean-expression
857 condition-expression: "{build-node-label-check}"
858 on-evaluation-failure: dont-run
861 properties-content: EXTERNAL_LABELS="{build-node-label-list}"
862 - shell: !include-raw-escape:
863 - ../shell/jjb-verify-build-nodes.sh
864 - lf-infra-gpg-verify-git-signature
867 name: "{project-name}-jjb-verify"
868 id: gerrit-jjb-verify
870 # yamllint disable-line rule:key-duplicates
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 submodule-timeout: "{submodule-timeout}"
890 submodule-disable: "{submodule-disable}"
891 choosing-strategy: gerrit
892 jenkins-ssh-credential: "{jenkins-ssh-credential}"
896 server-name: "{gerrit-server-name}"
897 trigger-on: "{obj:gerrit_verify_triggers}"
899 - project-compare-type: ANT
900 project-pattern: "{project}"
902 - branch-compare-type: ANT
903 branch-pattern: "**/{branch}"
904 file-paths: "{obj:gerrit_trigger_file_paths}"
907 name: "{project-name}-jjb-verify"
908 id: github-jjb-verify
910 # yamllint disable-line rule:key-duplicates
913 #####################
914 # Job Configuration #
915 #####################
918 - lf-infra-properties:
920 build-days-to-keep: 7
922 url: "{github-url}/{github-org}/{project}"
925 - lf-infra-github-scm:
926 url: "{git-clone-url}{github-org}/{project}"
927 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
929 submodule-recursive: "{submodule-recursive}"
930 submodule-timeout: "{submodule-timeout}"
931 submodule-disable: "{submodule-disable}"
932 choosing-strategy: default
933 jenkins-ssh-credential: "{jenkins-ssh-credential}"
936 - github-pull-request:
937 trigger-phrase: "^(recheck|reverify)$"
938 only-trigger-phrase: false
939 status-context: "JJB Verify"
942 included-regions: "{obj:github_included_regions}"
943 white-list-target-branches:
946 ############################
947 # JJB Verify Upstream GJJB #
948 ############################
950 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
951 name: lf-jjb-verify-upstream-gjjb
953 #####################
954 # Job Configuration #
955 #####################
962 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
963 git cherry-pick FETCH_HEAD
965 - shell: !include-raw-escape:
966 - ../shell/jjb-verify-job.sh
968 # All jobs are triggering from the same source
971 server-name: "lf-releng"
973 - patchset-created-event:
975 exclude-trivial-rebase: false
976 exclude-no-code-change: false
977 - draft-published-event
978 - comment-added-contains-event:
979 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
981 - project-compare-type: ANT
982 project-pattern: "releng/global-jjb"
984 - branch-compare-type: ANT
985 branch-pattern: "**/master"
987 gerrit-build-failed-codereview-value: -1
988 gerrit-build-failed-verified-value: 0
989 gerrit-build-successful-codereview-value: 1
990 gerrit-build-successful-verified-value: 0
993 name: "{project-name}-jjb-verify-upstream-gjjb"
994 id: gerrit-jjb-verify-upstream-gjjb
996 # yamllint disable-line rule:key-duplicates
997 <<: *lf_jjb_verify_upstream_gjjb
999 ######################
1000 # Default parameters #
1001 ######################
1003 git-url: "$GIT_URL/$PROJECT"
1004 submodule-timeout: 10
1005 submodule-disable: false
1007 #####################
1008 # Job Configuration #
1009 #####################
1012 - lf-infra-gerrit-scm:
1013 git-url: "{git-url}"
1016 submodule-recursive: true
1017 submodule-timeout: "{submodule-timeout}"
1018 submodule-disable: "{submodule-disable}"
1019 choosing-strategy: default
1020 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1023 name: "{project-name}-jjb-verify-upstream-gjjb"
1024 id: github-jjb-verify-upstream-gjjb
1026 # yamllint disable-line rule:key-duplicates
1027 <<: *lf_jjb_verify_upstream_gjjb
1029 ######################
1030 # Default parameters #
1031 ######################
1033 git-url: "$GIT_URL/$PROJECT"
1034 submodule-timeout: 10
1035 submodule-disable: false
1037 #####################
1038 # Job Configuration #
1039 #####################
1042 - lf-infra-properties:
1043 project: "{project}"
1044 build-days-to-keep: 7
1046 url: "{github-url}/{github-org}/{project}"
1049 - lf-infra-github-scm:
1050 url: "{git-clone-url}{github-org}/{project}"
1051 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1053 submodule-recursive: "{submodule-recursive}"
1054 submodule-timeout: "{submodule-timeout}"
1055 submodule-disable: "{submodule-disable}"
1056 choosing-strategy: default
1057 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1063 - lf_license_check: &lf_license_check
1064 name: lf-license-check
1066 ######################
1067 # Default parameters #
1068 ######################
1071 build-days-to-keep: 7
1080 git-url: "$GIT_URL/$PROJECT"
1081 github-url: "https://github.com"
1083 license-exclude-paths: ""
1084 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1085 project-pattern: "**"
1088 submodule-timeout: 10
1089 submodule-disable: false
1091 #####################
1092 # Job Configuration #
1093 #####################
1095 project-type: freestyle
1096 node: "{build-node}"
1098 disabled: "{disable-job}"
1101 - lf-infra-properties:
1102 build-days-to-keep: "{build-days-to-keep}"
1105 - lf-infra-parameters:
1106 project: "{project}"
1111 - lf-infra-wrappers:
1112 build-timeout: "{build-timeout}"
1113 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1117 file-patterns: "{file-patterns}"
1118 spdx-disable: "{spdx-disable}"
1119 lhc-version: "{lhc-version}"
1120 license-exclude-paths: "{license-exclude-paths}"
1121 licenses-allowed: "{licenses-allowed}"
1127 name: "{project-name}-license-check"
1128 id: gerrit-license-check
1129 <<: *lf_license_check
1131 git-url: "$GIT_URL/$GERRIT_PROJECT"
1134 - lf-infra-gerrit-scm:
1135 git-url: "{git-url}"
1136 refspec: "$GERRIT_REFSPEC"
1137 branch: "$GERRIT_BRANCH"
1138 # Submodules are out of the project's control
1139 submodule-recursive: false
1140 submodule-timeout: "{submodule-timeout}"
1141 submodule-disable: "{submodule-disable}"
1142 choosing-strategy: gerrit
1143 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1147 server-name: "{gerrit-server-name}"
1148 # Trigger should not be overridable as we want to always run
1150 - patchset-created-event:
1151 exclude-drafts: false
1152 exclude-trivial-rebase: false
1153 exclude-no-code-change: false
1154 - draft-published-event
1155 - comment-added-contains-event:
1156 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1158 - project-compare-type: ANT
1159 project-pattern: "{project-pattern}"
1161 - branch-compare-type: ANT
1162 branch-pattern: "**"
1165 name: "{project-name}-license-check"
1166 id: github-license-check
1167 <<: *lf_license_check
1170 - lf-infra-properties:
1171 build-days-to-keep: "{build-days-to-keep}"
1173 url: "{github-url}/{github-org}/{project}"
1176 - lf-infra-github-scm:
1177 url: "{git-clone-url}{github-org}/{project}"
1178 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1180 # Submodules are out of the project's control
1181 submodule-recursive: false
1182 submodule-timeout: "{submodule-timeout}"
1183 submodule-disable: "{submodule-disable}"
1184 choosing-strategy: default
1185 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1188 - github-pull-request:
1189 trigger-phrase: "^recheck$"
1190 only-trigger-phrase: false
1191 status-context: "License Check"
1194 white-list-target-branches:
1197 ####################
1198 # Info YAML Verify #
1199 ####################
1201 - lf_info_yaml_verify: &lf_info_yaml_verify
1202 name: lf-info-yaml-verify
1204 ######################
1205 # Default parameters #
1206 ######################
1208 gerrit_verify_triggers:
1209 - patchset-created-event:
1210 exclude-drafts: true
1211 exclude-trivial-rebase: false
1212 exclude-no-code-change: false
1213 - draft-published-event
1214 - comment-added-contains-event:
1215 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1217 #####################
1218 # Job Configuration #
1219 #####################
1224 - shell: !include-raw-escape:
1225 - ../shell/git-validate-info-yaml.sh
1226 - ../shell/info-file-validate.sh
1229 name: "{project-name}-info-yaml-verify"
1230 id: gerrit-info-yaml-verify
1232 # yamllint disable-line rule:key-duplicates
1233 <<: *lf_info_yaml_verify
1235 git-url: "$GIT_URL/$GERRIT_PROJECT"
1238 - lf-infra-gerrit-scm:
1239 git-url: "{git-url}"
1240 refspec: "$GERRIT_REFSPEC"
1241 branch: "$GERRIT_BRANCH"
1242 submodule-recursive: "{submodule-recursive}"
1243 submodule-timeout: "{submodule-timeout}"
1244 submodule-disable: "{submodule-disable}"
1245 choosing-strategy: gerrit
1246 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1250 server-name: "{gerrit-server-name}"
1251 trigger-on: "{obj:gerrit_verify_triggers}"
1253 - project-compare-type: ANT
1254 project-pattern: "{project}"
1256 - branch-compare-type: ANT
1257 branch-pattern: "**/{branch}"
1259 - compare-type: REG_EXP
1260 pattern: "INFO.yaml"
1263 name: "{project-name}-info-yaml-verify"
1264 id: github-info-yaml-verify
1266 # yamllint disable-line rule:key-duplicates
1267 <<: *lf_info_yaml_verify
1269 github-url: "https://github.com"
1272 url: "{github-url}/{github-org}/{project}"
1275 - lf-infra-github-scm:
1276 url: "{git-clone-url}{github-org}/{project}"
1277 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1279 submodule-recursive: "{submodule-recursive}"
1280 submodule-timeout: "{submodule-timeout}"
1281 submodule-disable: "{submodule-disable}"
1282 choosing-strategy: default
1283 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1286 - github-pull-request:
1287 trigger-phrase: "^(recheck|reverify)$"
1288 only-trigger-phrase: false
1289 status-context: "INFO File Verify"
1292 # included-regions MUST match gerrit file-paths
1293 included-regions: "INFO.yaml"
1294 white-list-target-branches:
1301 - lf_openstack_cron: &lf_openstack_cron
1302 name: lf-openstack-cron
1304 ######################
1305 # Default parameters #
1306 ######################
1309 build-days-to-keep: 7
1313 git-url: "$GIT_URL/$PROJECT"
1314 github-url: "https://github.com"
1315 openstack-cloud: vex
1316 openstack-image-cleanup: true
1317 openstack-image-cleanup-age: 30
1318 openstack-image-protect: true
1319 openstack-port-cleanup: true
1320 openstack-server-cleanup: true
1321 openstack-stack-cleanup: true
1322 openstack-volume-cleanup: true
1324 submodule-timeout: 10
1325 submodule-disable: false
1327 #####################
1328 # Job Configuration #
1329 #####################
1331 project-type: freestyle
1332 node: "{build-node}"
1334 disabled: "{disable-job}"
1337 - lf-infra-properties:
1338 build-days-to-keep: "{build-days-to-keep}"
1341 - lf-infra-parameters:
1342 project: "{project}"
1347 default: "{jenkins-urls}"
1349 Space separated list of Jenkins URLs to check for active builds.
1352 - lf-infra-wrappers:
1353 build-timeout: "{build-timeout}"
1354 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1355 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1356 - config-file-provider:
1358 - file-id: clouds-yaml
1359 target: "$HOME/.config/openstack/clouds.yaml"
1361 target: "$HOME/.npmrc"
1363 target: "$HOME/.config/pip/pip.conf"
1366 - timed: "{obj:cron}"
1369 - lf-infra-pre-build
1371 properties-content: OS_CLOUD={openstack-cloud}
1374 condition-kind: boolean-expression
1375 condition-expression: "{openstack-stack-cleanup}"
1377 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1380 condition-kind: boolean-expression
1381 condition-expression: "{openstack-server-cleanup}"
1383 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1386 condition-kind: boolean-expression
1387 condition-expression: "{openstack-port-cleanup}"
1389 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1392 condition-kind: boolean-expression
1393 condition-expression: "{openstack-volume-cleanup}"
1395 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1398 condition-kind: boolean-expression
1399 condition-expression: "{openstack-image-protect}"
1401 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1403 condition-kind: boolean-expression
1404 condition-expression: "{openstack-image-cleanup}"
1407 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1408 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1414 name: "{project-name}-openstack-cron"
1415 id: gerrit-openstack-cron
1416 <<: *lf_openstack_cron
1419 - lf-infra-gerrit-scm:
1420 git-url: "{git-url}"
1421 refspec: "refs/heads/{branch}"
1423 submodule-recursive: true
1424 submodule-timeout: "{submodule-timeout}"
1425 submodule-disable: "{submodule-disable}"
1426 choosing-strategy: default
1427 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1430 name: "{project-name}-openstack-cron"
1431 id: github-openstack-cron
1432 <<: *lf_openstack_cron
1435 - lf-infra-github-scm:
1436 url: "{git-clone-url}{github-org}/{project}"
1438 branch: "refs/heads/{branch}"
1439 submodule-recursive: true
1440 submodule-timeout: "{submodule-timeout}"
1441 submodule-disable: "{submodule-disable}"
1442 choosing-strategy: default
1443 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1449 - lf_packer_merge: &lf_packer_merge
1450 name: lf-packer-merge
1452 ######################
1453 # Default parameters #
1454 ######################
1457 openstack-cloud: vex
1458 update-cloud-image: false
1460 #####################
1461 # Job Configuration #
1462 #####################
1465 - lf-infra-parameters:
1466 project: "{project}"
1469 - lf-packer-parameters:
1470 packer-version: "{packer-version}"
1472 name: UPDATE_CLOUD_IMAGE
1473 default: "{update-cloud-image}"
1474 description: "Update new built image on the cloud."
1477 - lf-infra-packer-build:
1478 openstack: "{openstack}"
1479 openstack-cloud: "{openstack-cloud}"
1480 packer-cloud-settings: "{packer-cloud-settings}"
1481 packer-version: "{packer-version}"
1482 platform: "{platforms}"
1483 template: "{templates}"
1484 update-cloud-image: "{update-cloud-image}"
1485 - description-setter:
1486 regexp: '(\s+.*)(ZZCI\s+.*\d+-\d+\.\d+)'
1487 description: 'Image: \2'
1489 # - project: '{project-name}-openstack-update-cloud-image'
1491 # predefined-parameters: |
1492 # GERRIT_BRANCH=$GERRIT_BRANCH
1493 # GERRIT_PROJECT=$GERRIT_PROJECT
1494 # GERRIT_REFSPEC=$GERRIT_REFSPEC
1495 # NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1496 # property-file: variables.jenkins-trigger
1497 # property-file-fail-on-missing: true
1501 - trigger-parameterized-builds:
1502 - project: "{project-name}-openstack-update-cloud-image"
1503 condition: UNSTABLE_OR_BETTER
1504 predefined-parameters: |
1505 NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1506 property-file: variables.jenkins-trigger
1507 fail-on-missing: true
1510 name: "{project-name}-packer-merge-{platforms}-{templates}"
1511 id: gerrit-packer-merge
1512 <<: *lf_packer_common
1513 # yamllint disable-line rule:key-duplicates
1514 <<: *lf_packer_merge
1516 ######################
1517 # Default parameters #
1518 ######################
1520 git-url: "$GIT_URL/$GERRIT_PROJECT"
1522 gerrit_merge_triggers:
1523 - change-merged-event
1524 - comment-added-contains-event:
1525 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1527 #####################
1528 # Job Configuration #
1529 #####################
1532 - lf-infra-gerrit-scm:
1533 git-url: "{git-url}"
1534 refspec: "$GERRIT_REFSPEC"
1535 branch: "$GERRIT_BRANCH"
1536 submodule-recursive: "{submodule-recursive}"
1537 submodule-timeout: "{submodule-timeout}"
1538 submodule-disable: "{submodule-disable}"
1539 choosing-strategy: default
1540 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1543 - timed: "{obj:cron}"
1545 server-name: "{gerrit-server-name}"
1546 trigger-on: "{obj:gerrit_merge_triggers}"
1548 - project-compare-type: ANT
1549 project-pattern: "{project}"
1551 - branch-compare-type: ANT
1552 branch-pattern: "**/{branch}"
1554 - compare-type: REG_EXP
1555 pattern: 'packer\/provision\/.*\.sh'
1556 - compare-type: REG_EXP
1557 pattern: 'packer\/provision\/.*\.bat'
1558 - compare-type: REG_EXP
1559 pattern: 'packer\/provision\/.*\.ps1'
1560 - compare-type: REG_EXP
1561 pattern: 'packer\/provision\/{templates}\.yaml'
1562 - compare-type: REG_EXP
1563 pattern: 'packer\/provision\/local-{templates}\.yaml'
1564 - compare-type: REG_EXP
1565 pattern: 'packer\/templates\/{templates}\.json'
1566 - compare-type: REG_EXP
1567 pattern: 'packer\/vars\/{platforms}\.json'
1570 name: "{project-name}-packer-merge-{platforms}-{templates}"
1571 id: github-packer-merge
1572 <<: *lf_packer_common
1573 # yamllint disable-line rule:key-duplicates
1574 <<: *lf_packer_merge
1576 #####################
1577 # Job Configuration #
1578 #####################
1581 - lf-infra-properties:
1582 project: "{project}"
1583 build-days-to-keep: 7
1585 url: "{github-url}/{github-org}/{project}"
1588 - lf-infra-github-scm:
1589 url: "{git-clone-url}{github-org}/{project}"
1591 +refs/heads/*:refs/remotes/origin/*
1592 +refs/pull/*:refs/remotes/origin/pr/*
1593 branch: "$GERRIT_REFSPEC"
1594 submodule-recursive: "{submodule-recursive}"
1595 submodule-timeout: "{submodule-timeout}"
1596 submodule-disable: "{submodule-disable}"
1597 choosing-strategy: default
1598 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1601 - timed: "{obj:cron}"
1606 - github-pull-request:
1607 trigger-phrase: "^remerge$"
1608 only-trigger-phrase: true
1609 status-context: "Packer {platforms}-{templates} Merge"
1614 white-list: "{obj:github_pr_whitelist}"
1615 admin-list: "{obj:github_pr_admin_list}"
1616 # included-regions MUST match Gerrit Trigger file-paths
1618 - 'packer\/provision\/.*\.sh'
1619 - 'packer\/provision\/.*\.bat'
1620 - 'packer\/provision\/.*\.ps1'
1621 - 'packer\/provision\/{templates}\.yaml'
1622 - 'packer\/provision\/local-{templates}\.yaml'
1623 - 'packer\/templates\/{templates}\.json'
1624 - 'packer\/vars\/{platforms}\.json'
1625 white-list-target-branches:
1629 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1630 id: gerrit-packer-verify-build
1631 <<: *lf_packer_common
1632 # yamllint disable-line rule:key-duplicates
1633 <<: *lf_packer_merge
1635 ######################
1636 # Default parameters #
1637 ######################
1639 git-url: "$GIT_URL/$GERRIT_PROJECT"
1641 gerrit_verify_triggers:
1642 - comment-added-contains-event:
1643 comment-contains-value: '^Patch Set\s+\d+:\s+(verify-build|packer-build)\s*$'
1645 #####################
1646 # Job Configuration #
1647 #####################
1650 - lf-infra-gerrit-scm:
1651 git-url: "{git-url}"
1652 refspec: "$GERRIT_REFSPEC"
1653 branch: "$GERRIT_BRANCH"
1654 submodule-recursive: "{submodule-recursive}"
1655 submodule-timeout: "{submodule-timeout}"
1656 submodule-disable: "{submodule-disable}"
1657 choosing-strategy: gerrit
1658 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1662 server-name: "{gerrit-server-name}"
1663 trigger-on: "{obj:gerrit_verify_triggers}"
1665 - project-compare-type: ANT
1666 project-pattern: "{project}"
1668 - branch-compare-type: ANT
1669 branch-pattern: "**/{branch}"
1671 - compare-type: REG_EXP
1672 pattern: 'packer\/provision\/.*\.sh'
1673 - compare-type: REG_EXP
1674 pattern: 'packer\/provision\/.*\.bat'
1675 - compare-type: REG_EXP
1676 pattern: 'packer\/provision\/.*\.ps1'
1677 - compare-type: REG_EXP
1678 pattern: 'packer\/provision\/{templates}\.yaml'
1679 - compare-type: REG_EXP
1680 pattern: 'packer\/provision\/local-{templates}\.yaml'
1681 - compare-type: REG_EXP
1682 pattern: 'packer\/templates\/{templates}\.json'
1683 - compare-type: REG_EXP
1684 pattern: 'packer\/vars\/{platforms}\.json'
1687 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1688 id: github-packer-verify-build
1689 <<: *lf_packer_common
1690 # yamllint disable-line rule:key-duplicates
1691 <<: *lf_packer_merge
1693 #####################
1694 # Job Configuration #
1695 #####################
1698 - lf-infra-properties:
1699 project: "{project}"
1700 build-days-to-keep: 7
1702 url: "{github-url}/{github-org}/{project}"
1705 - lf-infra-github-scm:
1706 url: "{git-clone-url}{github-org}/{project}"
1707 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1709 submodule-recursive: "{submodule-recursive}"
1710 submodule-timeout: "{submodule-timeout}"
1711 submodule-disable: "{submodule-disable}"
1712 choosing-strategy: default
1713 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1716 - github-pull-request:
1717 trigger-phrase: "^(verify-build|packer-build)$"
1718 only-trigger-phrase: true
1719 status-context: "Packer {platforms}-{templates} Verify Build"
1722 white-list-target-branches:
1724 # included-regions MUST match Gerrit Trigger file-paths
1726 - 'packer\/provision\/.*\.sh'
1727 - 'packer\/provision\/.*\.bat'
1728 - 'packer\/provision\/.*\.ps1'
1729 - 'packer\/provision\/{templates}\.yaml'
1730 - 'packer\/provision\/local-{templates}\.yaml'
1731 - 'packer\/templates\/{templates}\.json'
1732 - 'packer\/vars\/{platforms}\.json'
1738 - lf_packer_verify: &lf_packer_verify
1739 name: lf-packer-verify
1741 ######################
1742 # Default parameters #
1743 ######################
1747 openstack-cloud: vex
1749 gerrit_verify_triggers:
1750 - patchset-created-event:
1751 exclude-drafts: true
1752 exclude-trivial-rebase: false
1753 exclude-no-code-change: false
1754 - draft-published-event
1755 - comment-added-contains-event:
1756 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1758 gerrit_trigger_file_paths:
1759 - compare-type: REG_EXP
1760 pattern: 'packer\/.*'
1762 # github_included_regions MUST match gerrit_trigger_file_paths
1763 github_included_regions:
1766 #####################
1767 # Job Configuration #
1768 #####################
1773 - lf-infra-packer-validate:
1774 openstack: "{openstack}"
1775 openstack-cloud: "{openstack-cloud}"
1776 packer-cloud-settings: "{packer-cloud-settings}"
1777 packer-version: "{packer-version}"
1780 name: "{project-name}-packer-verify"
1781 id: gerrit-packer-verify
1782 <<: *lf_packer_common
1783 # yamllint disable-line rule:key-duplicates
1784 <<: *lf_packer_verify
1786 ######################
1787 # Default parameters #
1788 ######################
1790 git-url: "$GIT_URL/$GERRIT_PROJECT"
1792 #####################
1793 # Job Configuration #
1794 #####################
1797 - lf-infra-gerrit-scm:
1798 git-url: "{git-url}"
1799 refspec: "$GERRIT_REFSPEC"
1800 branch: "$GERRIT_BRANCH"
1801 submodule-recursive: "{submodule-recursive}"
1802 submodule-timeout: "{submodule-timeout}"
1803 submodule-disable: "{submodule-disable}"
1804 choosing-strategy: gerrit
1805 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1809 server-name: "{gerrit-server-name}"
1810 trigger-on: "{obj:gerrit_verify_triggers}"
1812 - project-compare-type: ANT
1813 project-pattern: "{project}"
1815 - branch-compare-type: ANT
1816 branch-pattern: "**/{branch}"
1817 file-paths: "{obj:gerrit_trigger_file_paths}"
1820 name: "{project-name}-packer-verify"
1821 id: github-packer-verify
1822 <<: *lf_packer_common
1823 # yamllint disable-line rule:key-duplicates
1824 <<: *lf_packer_verify
1826 #####################
1827 # Job Configuration #
1828 #####################
1831 - lf-infra-properties:
1832 project: "{project}"
1833 build-days-to-keep: 7
1835 url: "{github-url}/{github-org}/{project}"
1838 - lf-infra-github-scm:
1839 url: "{git-clone-url}{github-org}/{project}"
1840 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1842 submodule-recursive: "{submodule-recursive}"
1843 submodule-timeout: "{submodule-timeout}"
1844 submodule-disable: "{submodule-disable}"
1845 choosing-strategy: default
1846 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1849 - github-pull-request:
1850 trigger-phrase: "^(recheck|reverify)$"
1851 only-trigger-phrase: false
1852 status-context: "Packer Verify"
1855 included-regions: "{obj:github_included_regions}"
1856 white-list-target-branches:
1859 ################################
1860 # Openstack Update Cloud Image #
1861 ################################
1863 - lf_openstack_cron: &lf_openstack_update_cloud_image
1864 name: lf-openstack-update-cloud-image
1866 ######################
1867 # Default parameters #
1868 ######################
1871 build-days-to-keep: 7
1875 git-url: "$GIT_URL/$PROJECT"
1876 github-url: "https://github.com"
1877 new-image-name: "all"
1878 openstack-cloud: vex
1880 submodule-timeout: 10
1881 submodule-disable: false
1882 update-cloud-image: false
1884 #####################
1885 # Job Configuration #
1886 #####################
1888 project-type: freestyle
1889 node: "{build-node}"
1891 disabled: "{disable-job}"
1894 - lf-infra-properties:
1895 build-days-to-keep: "{build-days-to-keep}"
1898 - lf-infra-parameters:
1899 project: "{project}"
1903 name: NEW_IMAGE_NAME
1904 default: "{new-image-name}"
1905 description: "Name of cloud image to update in Jenkins"
1908 - lf-infra-wrappers:
1909 build-timeout: "{build-timeout}"
1910 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1911 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1912 - config-file-provider:
1914 - file-id: clouds-yaml
1915 target: "$HOME/.config/openstack/clouds.yaml"
1917 target: "$HOME/.npmrc"
1919 target: "$HOME/.config/pip/pip.conf"
1922 - lf-infra-pre-build
1924 properties-content: |
1925 OS_CLOUD={openstack-cloud}
1928 echo "Extract the image type for commit message"
1929 # echo IMAGE_TYPE=${{NEW_IMAGE_NAME% -*}} >> image-type.txt
1930 IMAGE_TYPE=$(echo ${{NEW_IMAGE_NAME}} | tr -d "\'\"\ " | awk -F- '{{ print $2 " " $3 " " $4 }}')
1931 echo IMAGE_TYPE=${{IMAGE_TYPE}} >> image-type.txt
1934 properties-file: "image-type.txt"
1935 - lf-infra-update-packer-images
1936 - lf-infra-push-gerrit-patch:
1937 project: "{project}"
1938 gerrit-user: "{gerrit-user}"
1939 gerrit-host: "{gerrit-host}"
1940 gerrit-topic: "{gerrit-topic}"
1941 gerrit-commit-message: "Update cloud image $IMAGE_TYPE"
1942 reviewers-email: "{reviewers-email}"
1948 name: "{project-name}-openstack-update-cloud-image"
1949 id: gerrit-openstack-update-cloud-image
1950 <<: *lf_openstack_update_cloud_image
1952 ######################
1953 # Default parameters #
1954 ######################
1956 git-url: "$GIT_URL/$GERRIT_PROJECT"
1958 #####################
1959 # Job Configuration #
1960 #####################
1963 - lf-infra-gerrit-scm:
1964 git-url: "{git-url}"
1965 refspec: "$GERRIT_REFSPEC"
1966 branch: "$GERRIT_BRANCH"
1967 submodule-recursive: false
1968 submodule-timeout: "{submodule-timeout}"
1969 submodule-disable: "{submodule-disable}"
1970 choosing-strategy: gerrit
1971 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1974 - timed: "{obj:cron}"
1980 - lf_puppet_verify: &lf_puppet_verify
1981 name: lf-puppet-verify
1983 ######################
1984 # Default parameters #
1985 ######################
1988 build-days-to-keep: 7
1991 git-url: "$GIT_URL/$GERRIT_PROJECT"
1992 github-url: "https://github.com"
1995 puppet-lint-version: 2.3.6
1997 submodule-recursive: true
1998 submodule-timeout: 10
1999 submodule-disable: false
2001 gerrit_trigger_file_paths:
2002 - compare-type: REG_EXP
2005 # github_included_regions MUST match gerrit_trigger_file_paths
2006 github_included_regions:
2009 #####################
2010 # Job Configuration #
2011 #####################
2013 project-type: freestyle
2014 node: "{build-node}"
2016 disabled: "{disable-job}"
2019 - lf-infra-properties:
2020 build-days-to-keep: "{build-days-to-keep}"
2023 - lf-infra-parameters:
2024 project: "{project}"
2027 - lf-puppet-parameters:
2028 puppet-lint-version: "{puppet-lint-version}"
2031 - lf-infra-wrappers:
2032 build-timeout: "{build-timeout}"
2033 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2036 - shell: !include-raw-escape: ../shell/puppet-lint.sh
2042 name: "{project-name}-puppet-verify"
2043 id: gerrit-puppet-verify
2044 <<: *lf_puppet_verify
2046 ######################
2047 # Default parameters #
2048 ######################
2050 gerrit_verify_triggers:
2051 - patchset-created-event:
2052 exclude-drafts: true
2053 exclude-trivial-rebase: false
2054 exclude-no-code-change: false
2055 - draft-published-event
2056 - comment-added-contains-event:
2057 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2059 #####################
2060 # Job Configuration #
2061 #####################
2064 - lf-infra-gerrit-scm:
2065 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2066 git-url: "{git-url}"
2067 refspec: "$GERRIT_REFSPEC"
2068 branch: "$GERRIT_BRANCH"
2069 submodule-recursive: "{submodule-recursive}"
2070 submodule-timeout: "{submodule-timeout}"
2071 submodule-disable: "{submodule-disable}"
2072 choosing-strategy: gerrit
2076 server-name: "{gerrit-server-name}"
2077 trigger-on: "{obj:gerrit_verify_triggers}"
2079 - project-compare-type: ANT
2080 project-pattern: "{project}"
2082 - branch-compare-type: ANT
2083 branch-pattern: "**/{branch}"
2084 file-paths: "{obj:gerrit_trigger_file_paths}"
2087 name: "{project-name}-puppet-verify"
2088 id: github-puppet-verify
2089 <<: *lf_puppet_verify
2091 #####################
2092 # Job Configuration #
2093 #####################
2096 - lf-infra-properties:
2097 project: "{project}"
2098 build-days-to-keep: 7
2100 url: "{github-url}/{github-org}/{project}"
2103 - lf-infra-github-scm:
2104 url: "{git-clone-url}{github-org}/{project}"
2105 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2107 submodule-recursive: "{submodule-recursive}"
2108 submodule-timeout: "{submodule-timeout}"
2109 submodule-disable: "{submodule-disable}"
2110 choosing-strategy: default
2111 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2114 - github-pull-request:
2115 trigger-phrase: "^(recheck|reverify)$"
2116 only-trigger-phrase: false
2117 status-context: "Puppet Verify"
2120 included-regions: "{obj:github_included_regions}"
2121 white-list-target-branches:
2128 - lf_sonar_common: &lf_sonar_common
2129 name: lf-sonar-common
2131 ######################
2132 # Default parameters #
2133 ######################
2135 archive-artifacts: >
2138 branch: master # Sonar should always be run on master branch
2139 build-days-to-keep: 7
2141 cron: "H H * * *" # run daily
2143 git-url: "$GIT_URL/$PROJECT"
2144 github-url: "https://github.com"
2146 submodule-recursive: true
2147 submodule-timeout: 10
2148 submodule-disable: false
2152 sonar-project-file: "sonar-project.properties"
2153 sonar-properties: ""
2155 sonar-additional-args: ""
2157 gerrit_trigger_file_paths:
2158 - compare-type: REG_EXP
2161 # github_included_regions MUST match gerrit_trigger_file_paths
2162 github_included_regions:
2165 #####################
2166 # Job Configuration #
2167 #####################
2169 project-type: freestyle
2170 node: "{build-node}"
2173 - lf-infra-properties:
2174 build-days-to-keep: "{build-days-to-keep}"
2177 - lf-infra-wrappers:
2178 build-timeout: "{build-timeout}"
2179 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2181 disabled: "{disable-job}"
2184 - lf-infra-parameters:
2185 project: "{project}"
2189 name: ARCHIVE_ARTIFACTS
2190 default: "{archive-artifacts}"
2191 description: Artifacts to archive to the logs server.
2196 - lf_sonar_builders: &lf_sonar_builders
2197 name: lf-sonar-builders
2199 - lf-infra-pre-build
2201 sonar-task: "{sonar-task}"
2202 sonar-project-file: "{sonar-project-file}"
2203 sonar-properties: "{sonar-properties}"
2204 sonar-java-opts: "{sonar-java-opts}"
2205 sonar-additional-args: "{sonar-additional-args}"
2207 - lf_sonar_builders_prescan: &lf_sonar_builders_prescan
2208 name: lf-sonar-builders-prescan
2210 - lf-infra-pre-build
2211 - lf-infra-sonar-with-prescan:
2212 sonar-task: "{sonar-task}"
2213 sonar-project-file: "{sonar-project-file}"
2214 sonar-properties: "{sonar-properties}"
2215 sonar-java-opts: "{sonar-java-opts}"
2216 sonar-additional-args: "{sonar-additional-args}"
2218 - lf_sonar_builders_prescan_script: &lf_sonar_builders_prescan_script
2219 name: lf-sonar-builders-prescan-script
2221 - lf-infra-pre-build
2222 - shell: "{sonar-prescan-script}"
2224 sonar-task: "{sonar-task}"
2225 sonar-project-file: "{sonar-project-file}"
2226 sonar-properties: "{sonar-properties}"
2227 sonar-java-opts: "{sonar-java-opts}"
2228 sonar-additional-args: "{sonar-additional-args}"
2230 - lf_sonar_gerrit_common: &lf_sonar_gerrit_common
2231 name: lf-sonar-gerrit-common
2232 gerrit_sonar_triggers:
2233 - comment-added-contains-event:
2234 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
2237 - lf-infra-gerrit-scm:
2238 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2239 git-url: "{git-url}"
2240 refspec: $GERRIT_REFSPEC
2241 branch: $GERRIT_BRANCH
2242 submodule-recursive: "{submodule-recursive}"
2243 submodule-timeout: "{submodule-timeout}"
2244 submodule-disable: "{submodule-disable}"
2245 choosing-strategy: default
2248 - timed: "{obj:cron}"
2250 server-name: "{gerrit-server-name}"
2251 trigger-on: "{obj:gerrit_sonar_triggers}"
2253 - project-compare-type: "ANT"
2254 project-pattern: "{project}"
2256 - branch-compare-type: "ANT"
2257 branch-pattern: "**/{branch}"
2258 file-paths: "{obj:gerrit_trigger_file_paths}"
2265 - lf_sonar_github_common: &lf_sonar_github_common
2266 name: lf-sonar-github-common
2268 - lf-infra-properties:
2269 build-days-to-keep: "{build-days-to-keep}"
2271 url: "{github-url}/{github-org}/{project}"
2274 - lf-infra-github-scm:
2275 url: "{git-clone-url}{github-org}/{project}"
2276 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2278 submodule-recursive: "{submodule-recursive}"
2279 submodule-timeout: "{submodule-timeout}"
2280 submodule-disable: "{submodule-disable}"
2281 choosing-strategy: default
2282 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2285 - github-pull-request:
2286 trigger-phrase: "^run-sonar$"
2287 only-trigger-phrase: false
2288 status-context: "Python Sonar"
2291 white-list-target-branches:
2293 included-regions: "{obj:github_included_regions}"
2296 name: "{project-name}-sonar"
2298 <<: *lf_sonar_common
2299 # yamllint disable-line rule:key-duplicates
2300 <<: *lf_sonar_builders
2301 # yamllint disable-line rule:key-duplicates
2302 <<: *lf_sonar_gerrit_common
2305 name: "{project-name}-sonar"
2307 <<: *lf_sonar_common
2308 # yamllint disable-line rule:key-duplicates
2309 <<: *lf_sonar_builders
2310 # yamllint disable-line rule:key-duplicates
2311 <<: *lf_sonar_github_common
2314 name: "{project-name}-sonar-prescan"
2315 id: gerrit-sonar-prescan
2316 <<: *lf_sonar_common
2317 # yamllint disable-line rule:key-duplicates
2318 <<: *lf_sonar_builders_prescan
2319 # yamllint disable-line rule:key-duplicates
2320 <<: *lf_sonar_gerrit_common
2323 name: "{project-name}-sonar-prescan"
2324 id: github-sonar-prescan
2325 <<: *lf_sonar_common
2326 # yamllint disable-line rule:key-duplicates
2327 <<: *lf_sonar_builders_prescan
2328 # yamllint disable-line rule:key-duplicates
2329 <<: *lf_sonar_github_common
2332 name: "{project-name}-sonar-prescan-script"
2333 id: gerrit-sonar-prescan-script
2334 <<: *lf_sonar_common
2335 # yamllint disable-line rule:key-duplicates
2336 <<: *lf_sonar_builders_prescan_script
2337 # yamllint disable-line rule:key-duplicates
2338 <<: *lf_sonar_gerrit_common
2341 name: "{project-name}-sonar-prescan-script"
2342 id: github-sonar-prescan-script
2343 <<: *lf_sonar_common
2344 # yamllint disable-line rule:key-duplicates
2345 <<: *lf_sonar_builders_prescan_script
2346 # yamllint disable-line rule:key-duplicates
2347 <<: *lf_sonar_github_common
2353 - lf_pipelines_common: &lf_pipelines_common
2354 name: lf-pipelines-common
2356 ######################
2357 # Default parameters #
2358 ######################
2364 submodule-recursive: true
2365 submodule-timeout: 10
2366 submodule-disable: false
2368 - lf_global_pipelines_common: &lf_global_pipelines_common
2369 name: lf-global-pipelines-common
2371 # All jobs are triggering from the same source
2372 git-url: https://gerrit.linuxfoundation.org/infra/releng/pipelines
2375 server-name: "lf-releng"
2377 - patchset-created-event:
2378 exclude-drafts: true
2379 exclude-trivial-rebase: false
2380 exclude-no-code-change: false
2381 - draft-published-event
2382 - comment-added-contains-event:
2383 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2385 - project-compare-type: ANT
2386 project-pattern: "releng/pipelines"
2388 - branch-compare-type: ANT
2389 branch-pattern: "**/master"
2392 name: "lf-pipelines-verify"
2393 id: lf-pipelines-verify
2394 <<: *lf_pipelines_common
2395 <<: *lf_global_pipelines_common
2397 project-type: pipeline
2400 - lf-infra-gerrit-scm:
2401 git-url: "{git-url}"
2402 refspec: "$GERRIT_REFSPEC"
2403 branch: "$GERRIT_BRANCH"
2404 submodule-recursive: "{submodule-recursive}"
2405 submodule-timeout: "{submodule-timeout}"
2406 submodule-disable: "{submodule-disable}"
2407 choosing-strategy: gerrit
2408 jenkins-ssh-credential: "{jenkins-ssh-credential}"