9 - config-file-provider:
12 target: "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
14 - _lf_packer_common: &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-builder: openstack
32 packer-cloud-settings: packer-cloud-env
39 project-type: freestyle
41 disabled: "{disable-job}"
44 - lf-infra-properties:
49 - lf-infra-parameters:
53 - lf-packer-parameters:
54 packer-version: "{packer-version}"
58 build-timeout: "{build-timeout}"
59 jenkins-ssh-credential: "{jenkins-ssh-credential}"
65 name: lf-infra-jjb-parameters
69 default: "{jjb-version}"
70 description: Jenkins Job Builder version to download and install.
73 default: "{jjb-cache}"
74 description: Jenkins Job Builder cache location.
77 name: lf-packer-parameters
81 default: "{packer-version}"
82 description: Packer version to download and install.
85 name: lf-puppet-parameters
88 name: PUPPET_LINT_VERSION
89 default: "{puppet-lint-version}"
90 description: Puppet-lint version to download and install.
92 - _lf_jjb_common: &lf_jjb_common
95 ######################
96 # Default parameters #
97 ######################
102 github-url: "https://github.com"
103 jjb-cache: "$HOME/.cache/jenkins_jobs"
106 submodule-recursive: true
107 submodule-timeout: 10
108 submodule-disable: false
109 throttle_categories: []
110 throttle-enabled: false
111 throttle-max-per-node: 1
112 throttle-max-total: 0
113 throttle-option: "project"
115 gerrit_trigger_file_paths:
116 - compare-type: REG_EXP
118 - compare-type: REG_EXP
119 pattern: "global-jjb"
120 - compare-type: REG_EXP
123 # github_included_regions MUST match gerrit_trigger_file_paths
124 github_included_regions:
129 #####################
130 # Job Configuration #
131 #####################
133 project-type: freestyle
135 disabled: "{disable-job}"
138 - lf-infra-properties:
140 build-days-to-keep: 7
142 categories: "{obj:throttle_categories}"
143 enabled: "{throttle-enabled}"
144 max-per-node: "{throttle-max-per-node}"
145 max-total: "{throttle-max-total}"
146 option: "{throttle-option}"
149 - lf-infra-parameters:
153 - lf-infra-jjb-parameters:
154 jjb-cache: "{jjb-cache}"
155 jjb-version: "{jjb-version}"
159 build-timeout: "{build-timeout}"
160 jenkins-ssh-credential: "{jenkins-ssh-credential}"
165 ######################
166 # Gerrit Branch Lock #
167 ######################
170 name: "{project-name}-gerrit-branch-lock"
171 id: gerrit-branch-lock
173 ######################
174 # Default parameters #
175 ######################
179 git-url: "$GIT_URL/$GERRIT_PROJECT"
180 submodule-timeout: 10
181 submodule-disable: true
182 gerrit_merge_triggers:
183 - comment-added-contains-event:
184 comment-contains-value: (un)?lock branch$
186 #####################
187 # Job Configuration #
188 #####################
190 project-type: freestyle
192 disabled: "{disable-job}"
195 - lf-infra-properties:
197 build-days-to-keep: 1
200 - lf-infra-parameters:
208 jenkins-ssh-credential: "{jenkins-ssh-credential}"
211 - lf-infra-gerrit-scm:
214 branch: "$GERRIT_BRANCH"
215 submodule-recursive: false
216 submodule-timeout: "{submodule-timeout}"
217 submodule-disable: "{submodule-disable}"
218 choosing-strategy: default
219 jenkins-ssh-credential: "{jenkins-ssh-credential}"
223 server-name: "{gerrit-server-name}"
224 trigger-on: "{obj:gerrit_merge_triggers}"
226 - project-compare-type: ANT
227 project-pattern: "**"
229 - branch-compare-type: ANT
230 branch-pattern: "**/{branch}"
231 comment-text-parameter-mode: PLAIN
234 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
239 ##########################################
240 # Jenkins Configuration Management Merge #
241 ##########################################
244 name: lf-jenkins-cfg-clouds
248 properties-content: "jenkins_silos={jenkins-silos}"
249 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
250 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
253 name: lf-jenkins-cfg-global-vars
257 properties-content: "jenkins_silos={jenkins-silos}"
258 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
259 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
261 - _lf_jenkins_configuration: &lf_jenkins_cfg_merge
262 name: lf-jenkins-cfg-merge
264 ######################
265 # Default parameters #
266 ######################
271 git-url: "$GIT_URL/$GERRIT_PROJECT"
272 github-url: "https://github.com"
273 jenkins-silos: production sandbox
274 submodule-timeout: 10
275 submodule-disable: false
277 gerrit_merge_triggers:
278 - change-merged-event
279 - comment-added-contains-event:
280 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
282 gerrit_trigger_file_paths:
283 - compare-type: REG_EXP
284 pattern: 'jenkins-config\/.*'
286 # github_included_regions MUST match gerrit_trigger_file_paths
287 github_included_regions:
288 - 'jenkins-config\/.*'
290 #####################
291 # Job Configuration #
292 #####################
294 project-type: freestyle
297 disabled: "{disable-job}"
300 - lf-infra-properties:
302 build-days-to-keep: 1
305 - lf-infra-parameters:
313 jenkins-ssh-credential: "{jenkins-ssh-credential}"
317 - lf-jenkins-cfg-global-vars:
318 jenkins-silos: "{jenkins-silos}"
319 - lf-jenkins-cfg-clouds:
320 jenkins-silos: "{jenkins-silos}"
326 name: "{project-name}-jenkins-cfg-merge"
327 id: gerrit-jenkins-cfg-merge
328 <<: *lf_jenkins_cfg_merge
331 - lf-infra-gerrit-scm:
333 refspec: "refs/heads/{branch}"
335 submodule-recursive: true
336 submodule-timeout: "{submodule-timeout}"
337 submodule-disable: "{submodule-disable}"
338 choosing-strategy: default
339 jenkins-ssh-credential: "{jenkins-ssh-credential}"
342 - timed: "{obj:cron}"
344 server-name: "{gerrit-server-name}"
345 trigger-on: "{obj:gerrit_merge_triggers}"
347 - project-compare-type: ANT
348 project-pattern: "{project}"
350 - branch-compare-type: ANT
351 branch-pattern: "**/{branch}"
352 file-paths: "{obj:gerrit_trigger_file_paths}"
355 name: "{project-name}-jenkins-cfg-merge"
356 id: github-jenkins-cfg-merge
357 <<: *lf_jenkins_cfg_merge
360 - lf-infra-properties:
362 build-days-to-keep: 1
364 url: "{github-url}/{github-org}/{project}"
367 - lf-infra-github-scm:
368 url: "{git-clone-url}{github-org}/{project}"
370 branch: "refs/heads/{branch}"
371 submodule-recursive: true
372 submodule-timeout: "{submodule-timeout}"
373 submodule-disable: "{submodule-disable}"
374 choosing-strategy: default
375 jenkins-ssh-credential: "{jenkins-ssh-credential}"
378 - timed: "{obj:cron}"
382 - github-pull-request:
383 trigger-phrase: "^remerge$"
384 only-trigger-phrase: true
385 status-context: "Jenkins CFG Merge"
390 white-list: "{obj:github_pr_allowlist}"
391 admin-list: "{obj:github_pr_admin_list}"
392 included-regions: "{obj:github_included_regions}"
393 white-list-target-branches:
396 ###########################################
397 # Jenkins Configuration Management Verify #
398 ###########################################
400 - _lf_jenkins_configuration: &lf_jenkins_cfg_verify
401 name: lf-jenkins-cfg-verify
403 ######################
404 # Default parameters #
405 ######################
408 build-days-to-keep: 7
410 git-url: "$GIT_URL/$GERRIT_PROJECT"
411 github-url: "https://github.com"
412 submodule-timeout: 10
413 submodule-disable: false
415 gerrit_verify_triggers:
416 - patchset-created-event:
418 exclude-trivial-rebase: false
419 exclude-no-code-change: false
420 - draft-published-event
421 - comment-added-contains-event:
422 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
424 gerrit_trigger_file_paths:
425 - compare-type: REG_EXP
426 pattern: 'jenkins-config\/.*'
428 # github_included_regions MUST match gerrit_trigger_file_paths
429 github_included_regions:
430 - 'jenkins-config\/.*'
432 #####################
433 # Job Configuration #
434 #####################
436 project-type: freestyle
439 disabled: "{disable-job}"
442 - lf-infra-properties:
444 build-days-to-keep: 1
447 - lf-infra-parameters:
455 jenkins-ssh-credential: "{jenkins-ssh-credential}"
456 - config-file-provider:
457 # Listed after to override openstack-infra-wrappers clouds.yaml
460 - file-id: clouds-yaml
461 target: "$HOME/.config/openstack/clouds.yaml"
463 target: "$HOME/.npmrc"
465 target: "$HOME/.config/pip/pip.conf"
469 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
475 name: "{project-name}-jenkins-cfg-verify"
476 id: gerrit-jenkins-cfg-verify
477 <<: *lf_jenkins_cfg_verify
480 - lf-infra-gerrit-scm:
482 refspec: "$GERRIT_REFSPEC"
483 branch: "$GERRIT_BRANCH"
484 submodule-recursive: true
485 submodule-timeout: "{submodule-timeout}"
486 submodule-disable: "{submodule-disable}"
487 choosing-strategy: gerrit
488 jenkins-ssh-credential: "{jenkins-ssh-credential}"
492 server-name: "{gerrit-server-name}"
493 trigger-on: "{obj:gerrit_verify_triggers}"
495 - project-compare-type: ANT
496 project-pattern: "{project}"
498 - branch-compare-type: ANT
499 branch-pattern: "**/{branch}"
500 file-paths: "{obj:gerrit_trigger_file_paths}"
503 name: "{project-name}-jenkins-cfg-verify"
504 id: github-jenkins-cfg-verify
505 <<: *lf_jenkins_cfg_verify
509 url: "{github-url}/{github-org}/{project}"
512 - lf-infra-github-scm:
513 url: "{git-clone-url}{github-org}/{project}"
514 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
516 submodule-recursive: true
517 submodule-timeout: "{submodule-timeout}"
518 submodule-disable: "{submodule-disable}"
519 choosing-strategy: default
520 jenkins-ssh-credential: "{jenkins-ssh-credential}"
523 - github-pull-request:
524 trigger-phrase: "^(recheck|reverify)$"
525 only-trigger-phrase: false
526 status-context: "Jenkins CFG Verify"
529 included-regions: "{obj:github_included_regions}"
530 white-list-target-branches:
533 ###########################
534 # JENKINS SANDBOX CLEANUP #
535 ###########################
537 - _lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
538 name: lf-jenkins-sandbox-cleanup
540 ######################
541 # Default parameters #
542 ######################
545 # Run every Saturday at 08:00 UTC
549 #####################
550 # Job Configuration #
551 #####################
553 project-type: freestyle
556 disabled: "{disable-job}"
559 - lf-infra-jjb-parameters:
560 jjb-cache: "{jjb-cache}"
561 jjb-version: "{jjb-version}"
564 - timed: "{obj:cron}"
568 - shell: !include-raw-escape:
569 - ../shell/jenkins-sandbox-cleanup.sh
572 name: "{project-name}-jenkins-sandbox-cleanup"
573 id: gerrit-jenkins-sandbox-cleanup
575 # yamllint disable-line rule:key-duplicates
576 <<: *lf_jenkins_sandbox_cleanup
579 name: "{project-name}-jenkins-sandbox-cleanup"
580 id: github-jenkins-sandbox-cleanup
582 # yamllint disable-line rule:key-duplicates
583 <<: *lf_jenkins_sandbox_cleanup
589 - _lf_jjb_deploy_job: &lf_jjb_deploy_job
590 name: lf-jjb-deploy-job
592 ######################
593 # Default parameters #
594 ######################
598 # jjb-deploy should always clone $PROJECT regardless of what
599 # $GERRIT_PROJECT triggered the job.
600 git-url: "$GIT_URL/$PROJECT"
601 github-url: "https://github.com"
603 submodule-timeout: 10
604 submodule-disable: false
605 gerrit_jjb_deploy_job_triggers:
606 - comment-added-contains-event:
607 comment-contains-value: '^Patch Set\s+\d+:\s+(jjb-deploy[:]* (?!\*+$).+$)'
609 #####################
610 # Job Configuration #
611 #####################
613 project-type: freestyle
616 disabled: "{disable-job}"
619 - lf-infra-properties:
621 build-days-to-keep: 1
624 - lf-infra-parameters:
628 - lf-infra-jjb-parameters:
629 jjb-cache: "{jjb-cache}"
630 jjb-version: "{jjb-version}"
631 - lf-gerrit-event-comment-text-parameter:
632 comment-text: "$GERRIT_EVENT_COMMENT_TEXT"
637 jenkins-ssh-credential: "{jenkins-ssh-credential}"
641 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
647 name: "{project-name}-jjb-deploy-job"
648 id: gerrit-jjb-deploy-job
650 # yamllint disable-line rule:key-duplicates
651 <<: *lf_jjb_deploy_job
654 - lf-infra-gerrit-scm:
656 refspec: "refs/heads/{branch}"
658 submodule-recursive: true
659 submodule-timeout: "{submodule-timeout}"
660 submodule-disable: "{submodule-disable}"
661 choosing-strategy: default
662 jenkins-ssh-credential: "{jenkins-ssh-credential}"
666 server-name: "{gerrit-server-name}"
667 trigger-on: "{obj:gerrit_jjb_deploy_job_triggers}"
669 - project-compare-type: ANT
670 project-pattern: "**"
672 - branch-compare-type: ANT
679 comment-text-parameter-mode: PLAIN
682 name: "{project-name}-jjb-deploy-job"
683 id: github-jjb-deploy-job
685 # yamllint disable-line rule:key-duplicates
686 <<: *lf_jjb_deploy_job
689 - lf-infra-properties:
691 build-days-to-keep: 1
693 url: "{github-url}/{github-org}/{project}"
696 - lf-infra-github-scm:
697 url: "{git-clone-url}{github-org}/{project}"
698 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
700 submodule-recursive: true
701 submodule-timeout: "{submodule-timeout}"
702 submodule-disable: "{submodule-disable}"
703 choosing-strategy: default
704 jenkins-ssh-credential: "{jenkins-ssh-credential}"
707 - github-pull-request:
708 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
709 only-trigger-phrase: true
710 status-context: "JJB Deploy Job"
713 white-list-target-branches:
720 - _lf_jjb_merge: &lf_jjb_merge
723 ######################
724 # Default parameters #
725 ######################
729 gerrit_merge_triggers:
730 - change-merged-event
731 - comment-added-contains-event:
732 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
734 #####################
735 # Job Configuration #
736 #####################
742 properties-content: JJB_WORKERS={jjb-workers}
743 - shell: !include-raw-escape:
744 - ../shell/jjb-merge-job.sh
747 name: "{project-name}-jjb-merge"
750 # yamllint disable-line rule:key-duplicates
753 git-url: "$GIT_URL/$GERRIT_PROJECT"
756 - lf-infra-gerrit-scm:
760 submodule-recursive: "{submodule-recursive}"
761 submodule-timeout: "{submodule-timeout}"
762 submodule-disable: "{submodule-disable}"
763 choosing-strategy: default
764 jenkins-ssh-credential: "{jenkins-ssh-credential}"
768 server-name: "{gerrit-server-name}"
769 trigger-on: "{obj:gerrit_merge_triggers}"
771 - project-compare-type: ANT
772 project-pattern: "{project}"
774 - branch-compare-type: ANT
775 branch-pattern: "**/{branch}"
776 file-paths: "{obj:gerrit_trigger_file_paths}"
779 name: "{project-name}-jjb-merge"
782 # yamllint disable-line rule:key-duplicates
785 #####################
786 # Job Configuration #
787 #####################
790 - lf-infra-properties:
792 build-days-to-keep: 7
794 url: "{github-url}/{github-org}/{project}"
797 - lf-infra-github-scm:
798 url: "{git-clone-url}{github-org}/{project}"
800 branch: "refs/heads/{branch}"
801 submodule-recursive: "{submodule-recursive}"
802 submodule-timeout: "{submodule-timeout}"
803 submodule-disable: "{submodule-disable}"
804 choosing-strategy: default
805 jenkins-ssh-credential: "{jenkins-ssh-credential}"
811 - github-pull-request:
812 trigger-phrase: "^remerge$"
813 only-trigger-phrase: true
814 status-context: "JJB Merge"
819 white-list: "{obj:github_pr_allowlist}"
820 admin-list: "{obj:github_pr_admin_list}"
821 included-regions: "{obj:github_included_regions}"
822 white-list-target-branches:
829 - _lf_jjb_verify: &lf_jjb_verify
832 ######################
833 # Default parameters #
834 ######################
836 build-concurrent: true
837 build-node-label-check: false
838 build-node-label-list: ""
840 gerrit_verify_triggers:
841 - patchset-created-event:
843 exclude-trivial-rebase: false
844 exclude-no-code-change: false
845 - draft-published-event
846 - comment-added-contains-event:
847 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
849 #####################
850 # Job Configuration #
851 #####################
853 concurrent: "{build-concurrent}"
858 - shell: !include-raw-escape:
859 - ../shell/jjb-verify-job.sh
861 condition-kind: boolean-expression
862 condition-expression: "{build-node-label-check}"
863 on-evaluation-failure: dont-run
866 properties-content: EXTERNAL_LABELS="{build-node-label-list}"
867 - shell: !include-raw-escape:
868 - ../shell/jjb-verify-build-nodes.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/jjb-verify-job.sh
973 # All jobs are triggering from the same source
976 server-name: "lf-releng"
978 - patchset-created-event:
980 exclude-trivial-rebase: false
981 exclude-no-code-change: false
982 - draft-published-event
983 - comment-added-contains-event:
984 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
986 - project-compare-type: ANT
987 project-pattern: "releng/global-jjb"
989 - branch-compare-type: ANT
990 branch-pattern: "**/master"
992 gerrit-build-failed-codereview-value: -1
993 gerrit-build-failed-verified-value: 0
994 gerrit-build-successful-codereview-value: 1
995 gerrit-build-successful-verified-value: 0
998 name: "{project-name}-jjb-verify-upstream-gjjb"
999 id: gerrit-jjb-verify-upstream-gjjb
1001 # yamllint disable-line rule:key-duplicates
1002 <<: *lf_jjb_verify_upstream_gjjb
1004 ######################
1005 # Default parameters #
1006 ######################
1008 git-url: "$GIT_URL/$PROJECT"
1009 submodule-timeout: 10
1010 submodule-disable: false
1012 #####################
1013 # Job Configuration #
1014 #####################
1017 - lf-infra-gerrit-scm:
1018 git-url: "{git-url}"
1021 submodule-recursive: true
1022 submodule-timeout: "{submodule-timeout}"
1023 submodule-disable: "{submodule-disable}"
1024 choosing-strategy: default
1025 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1028 name: "{project-name}-jjb-verify-upstream-gjjb"
1029 id: github-jjb-verify-upstream-gjjb
1031 # yamllint disable-line rule:key-duplicates
1032 <<: *lf_jjb_verify_upstream_gjjb
1034 ######################
1035 # Default parameters #
1036 ######################
1038 git-url: "$GIT_URL/$PROJECT"
1039 submodule-timeout: 10
1040 submodule-disable: false
1042 #####################
1043 # Job Configuration #
1044 #####################
1047 - lf-infra-properties:
1048 project: "{project}"
1049 build-days-to-keep: 7
1051 url: "{github-url}/{github-org}/{project}"
1054 - lf-infra-github-scm:
1055 url: "{git-clone-url}{github-org}/{project}"
1056 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1058 submodule-recursive: "{submodule-recursive}"
1059 submodule-timeout: "{submodule-timeout}"
1060 submodule-disable: "{submodule-disable}"
1061 choosing-strategy: default
1062 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1068 - _lf_license_check: &lf_license_check
1069 name: lf-license-check
1071 ######################
1072 # Default parameters #
1073 ######################
1076 build-days-to-keep: 7
1085 git-url: "$GIT_URL/$PROJECT"
1086 github-url: "https://github.com"
1088 license-exclude-paths: ""
1089 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1090 project-pattern: "**"
1093 submodule-timeout: 10
1094 submodule-disable: false
1096 #####################
1097 # Job Configuration #
1098 #####################
1100 project-type: freestyle
1101 node: "{build-node}"
1103 disabled: "{disable-job}"
1106 - lf-infra-properties:
1107 build-days-to-keep: "{build-days-to-keep}"
1110 - lf-infra-parameters:
1111 project: "{project}"
1116 - lf-infra-wrappers:
1117 build-timeout: "{build-timeout}"
1118 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1122 file-patterns: "{file-patterns}"
1123 spdx-disable: "{spdx-disable}"
1124 lhc-version: "{lhc-version}"
1125 license-exclude-paths: "{license-exclude-paths}"
1126 licenses-allowed: "{licenses-allowed}"
1132 name: "{project-name}-license-check"
1133 id: gerrit-license-check
1134 <<: *lf_license_check
1136 git-url: "$GIT_URL/$GERRIT_PROJECT"
1139 - lf-infra-gerrit-scm:
1140 git-url: "{git-url}"
1141 refspec: "$GERRIT_REFSPEC"
1142 branch: "$GERRIT_BRANCH"
1143 # Submodules are out of the project's control
1144 submodule-recursive: false
1145 submodule-timeout: "{submodule-timeout}"
1146 submodule-disable: "{submodule-disable}"
1147 choosing-strategy: gerrit
1148 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1152 server-name: "{gerrit-server-name}"
1153 # Trigger should not be overridable as we want to always run
1155 - patchset-created-event:
1156 exclude-drafts: false
1157 exclude-trivial-rebase: false
1158 exclude-no-code-change: false
1159 - draft-published-event
1160 - comment-added-contains-event:
1161 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1163 - project-compare-type: ANT
1164 project-pattern: "{project-pattern}"
1166 - branch-compare-type: ANT
1167 branch-pattern: "**"
1170 name: "{project-name}-license-check"
1171 id: github-license-check
1172 <<: *lf_license_check
1175 - lf-infra-properties:
1176 build-days-to-keep: "{build-days-to-keep}"
1178 url: "{github-url}/{github-org}/{project}"
1181 - lf-infra-github-scm:
1182 url: "{git-clone-url}{github-org}/{project}"
1183 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1185 # Submodules are out of the project's control
1186 submodule-recursive: false
1187 submodule-timeout: "{submodule-timeout}"
1188 submodule-disable: "{submodule-disable}"
1189 choosing-strategy: default
1190 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1193 - github-pull-request:
1194 trigger-phrase: "^recheck$"
1195 only-trigger-phrase: false
1196 status-context: "License Check"
1199 white-list-target-branches:
1202 ####################
1203 # Info YAML Verify #
1204 ####################
1206 - _lf_info_yaml_verify: &lf_info_yaml_verify
1207 name: lf-info-yaml-verify
1209 ######################
1210 # Default parameters #
1211 ######################
1213 gerrit_verify_triggers:
1214 - patchset-created-event:
1215 exclude-drafts: true
1216 exclude-trivial-rebase: false
1217 exclude-no-code-change: false
1218 - draft-published-event
1219 - comment-added-contains-event:
1220 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1222 #####################
1223 # Job Configuration #
1224 #####################
1229 - shell: !include-raw-escape:
1230 - ../shell/git-validate-info-yaml.sh
1231 - ../shell/info-file-validate.sh
1234 name: "{project-name}-info-yaml-verify"
1235 id: gerrit-info-yaml-verify
1237 # yamllint disable-line rule:key-duplicates
1238 <<: *lf_info_yaml_verify
1240 git-url: "$GIT_URL/$GERRIT_PROJECT"
1243 - lf-infra-gerrit-scm:
1244 git-url: "{git-url}"
1245 refspec: "$GERRIT_REFSPEC"
1246 branch: "$GERRIT_BRANCH"
1247 submodule-recursive: "{submodule-recursive}"
1248 submodule-timeout: "{submodule-timeout}"
1249 submodule-disable: "{submodule-disable}"
1250 choosing-strategy: gerrit
1251 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1255 server-name: "{gerrit-server-name}"
1256 trigger-on: "{obj:gerrit_verify_triggers}"
1258 - project-compare-type: ANT
1259 project-pattern: "{project}"
1261 - branch-compare-type: ANT
1262 branch-pattern: "**/{branch}"
1264 - compare-type: REG_EXP
1265 pattern: "INFO.yaml"
1268 name: "{project-name}-info-yaml-verify"
1269 id: github-info-yaml-verify
1271 # yamllint disable-line rule:key-duplicates
1272 <<: *lf_info_yaml_verify
1274 github-url: "https://github.com"
1277 url: "{github-url}/{github-org}/{project}"
1280 - lf-infra-github-scm:
1281 url: "{git-clone-url}{github-org}/{project}"
1282 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1284 submodule-recursive: "{submodule-recursive}"
1285 submodule-timeout: "{submodule-timeout}"
1286 submodule-disable: "{submodule-disable}"
1287 choosing-strategy: default
1288 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1291 - github-pull-request:
1292 trigger-phrase: "^(recheck|reverify)$"
1293 only-trigger-phrase: false
1294 status-context: "INFO File Verify"
1297 # included-regions MUST match gerrit file-paths
1298 included-regions: "INFO.yaml"
1299 white-list-target-branches:
1306 - _lf_openstack_cron: &lf_openstack_cron
1307 name: lf-openstack-cron
1309 ######################
1310 # Default parameters #
1311 ######################
1314 build-days-to-keep: 7
1318 git-url: "$GIT_URL/$PROJECT"
1319 github-url: "https://github.com"
1320 openstack-cloud: vex
1321 openstack-image-cleanup: true
1322 openstack-image-cleanup-age: 30
1323 openstack-image-protect: true
1324 openstack-port-cleanup: true
1325 openstack-server-cleanup: true
1326 openstack-stack-cleanup: true
1327 openstack-volume-cleanup: true
1329 submodule-timeout: 10
1330 submodule-disable: false
1332 #####################
1333 # Job Configuration #
1334 #####################
1336 project-type: freestyle
1337 node: "{build-node}"
1339 disabled: "{disable-job}"
1342 - lf-infra-properties:
1343 build-days-to-keep: "{build-days-to-keep}"
1346 - lf-infra-parameters:
1347 project: "{project}"
1352 default: "{jenkins-urls}"
1354 Space separated list of Jenkins URLs to check for active builds.
1357 - lf-infra-wrappers:
1358 build-timeout: "{build-timeout}"
1359 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1360 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1361 - config-file-provider:
1363 - file-id: clouds-yaml
1364 target: "$HOME/.config/openstack/clouds.yaml"
1366 target: "$HOME/.npmrc"
1368 target: "$HOME/.config/pip/pip.conf"
1371 - timed: "{obj:cron}"
1374 - lf-infra-pre-build
1376 properties-content: OS_CLOUD={openstack-cloud}
1379 condition-kind: boolean-expression
1380 condition-expression: "{openstack-stack-cleanup}"
1382 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-k8s-clusters.sh
1385 condition-kind: boolean-expression
1386 condition-expression: "{openstack-stack-cleanup}"
1388 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1391 condition-kind: boolean-expression
1392 condition-expression: "{openstack-server-cleanup}"
1394 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1397 condition-kind: boolean-expression
1398 condition-expression: "{openstack-port-cleanup}"
1400 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1403 condition-kind: boolean-expression
1404 condition-expression: "{openstack-volume-cleanup}"
1406 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1409 condition-kind: boolean-expression
1410 condition-expression: "{openstack-image-protect}"
1412 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1414 condition-kind: boolean-expression
1415 condition-expression: "{openstack-image-cleanup}"
1418 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1419 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1423 - global-jjb-email-notification:
1424 email-recipients: "{failure-notification}"
1425 email-prefix: "{failure-notification-prefix}"
1428 name: "{project-name}-openstack-cron"
1429 id: gerrit-openstack-cron
1430 <<: *lf_openstack_cron
1433 - lf-infra-gerrit-scm:
1434 git-url: "{git-url}"
1435 refspec: "refs/heads/{branch}"
1437 submodule-recursive: true
1438 submodule-timeout: "{submodule-timeout}"
1439 submodule-disable: "{submodule-disable}"
1440 choosing-strategy: default
1441 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1444 name: "{project-name}-openstack-cron"
1445 id: github-openstack-cron
1446 <<: *lf_openstack_cron
1449 - lf-infra-github-scm:
1450 url: "{git-clone-url}{github-org}/{project}"
1452 branch: "refs/heads/{branch}"
1453 submodule-recursive: true
1454 submodule-timeout: "{submodule-timeout}"
1455 submodule-disable: "{submodule-disable}"
1456 choosing-strategy: default
1457 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1463 - _lf_packer_merge: &lf_packer_merge
1464 name: lf-packer-merge
1466 ######################
1467 # Default parameters #
1468 ######################
1471 openstack-cloud: vex
1472 update-cloud-image: false
1474 #####################
1475 # Job Configuration #
1476 #####################
1479 - lf-infra-parameters:
1480 project: "{project}"
1483 - lf-packer-parameters:
1484 packer-version: "{packer-version}"
1486 name: UPDATE_CLOUD_IMAGE
1487 default: "{update-cloud-image}"
1488 description: "Update new built image on the cloud."
1491 - lf-infra-packer-build:
1492 openstack: "{openstack}"
1493 openstack-cloud: "{openstack-cloud}"
1494 packer-builder: "{packer-builder}"
1495 packer-cloud-settings: "{packer-cloud-settings}"
1496 packer-version: "{packer-version}"
1497 platform: "{platforms}"
1498 template: "{templates}"
1499 update-cloud-image: "{update-cloud-image}"
1500 - description-setter:
1501 regexp: '(\s+.*)(ZZCI\s+.*\d+-\d+\.\d+)'
1502 description: 'Image: \2'
1506 - trigger-parameterized-builds:
1507 - project: "{project-name}-openstack-update-cloud-image"
1508 condition: UNSTABLE_OR_BETTER
1509 predefined-parameters: |
1510 NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1511 property-file: variables.jenkins-trigger
1512 fail-on-missing: true
1515 name: "{project-name}-packer-merge-{platforms}-{templates}"
1516 id: gerrit-packer-merge
1517 <<: *lf_packer_common
1518 # yamllint disable-line rule:key-duplicates
1519 <<: *lf_packer_merge
1521 ######################
1522 # Default parameters #
1523 ######################
1525 git-url: "$GIT_URL/$GERRIT_PROJECT"
1527 gerrit_merge_triggers:
1528 - change-merged-event
1529 - comment-added-contains-event:
1530 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1532 #####################
1533 # Job Configuration #
1534 #####################
1537 - lf-infra-gerrit-scm:
1538 git-url: "{git-url}"
1539 refspec: "$GERRIT_REFSPEC"
1540 branch: "$GERRIT_BRANCH"
1541 submodule-recursive: "{submodule-recursive}"
1542 submodule-timeout: "{submodule-timeout}"
1543 submodule-disable: "{submodule-disable}"
1544 choosing-strategy: default
1545 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1548 - timed: "{obj:cron}"
1550 server-name: "{gerrit-server-name}"
1551 trigger-on: "{obj:gerrit_merge_triggers}"
1553 - project-compare-type: ANT
1554 project-pattern: "{project}"
1556 - branch-compare-type: ANT
1557 branch-pattern: "**/{branch}"
1559 - compare-type: REG_EXP
1560 pattern: 'packer\/provision\/.*\.sh'
1561 - compare-type: REG_EXP
1562 pattern: 'packer\/provision\/.*\.bat'
1563 - compare-type: REG_EXP
1564 pattern: 'packer\/provision\/.*\.ps1'
1565 - compare-type: REG_EXP
1566 pattern: 'packer\/provision\/{templates}\.yaml'
1567 - compare-type: REG_EXP
1568 pattern: 'packer\/provision\/local-{templates}\.yaml'
1569 - compare-type: REG_EXP
1570 pattern: 'packer\/templates\/{templates}\.json'
1571 - compare-type: REG_EXP
1572 pattern: 'packer\/vars\/{platforms}\.json'
1573 - compare-type: REG_EXP
1574 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1575 - compare-type: REG_EXP
1576 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1577 - compare-type: REG_EXP
1578 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1579 - compare-type: REG_EXP
1580 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1581 - compare-type: REG_EXP
1582 pattern: 'packer\/common-packer\/templates\/{templates}\.hcl'
1583 - compare-type: REG_EXP
1584 pattern: 'packer\/common-packer\/vars\/{platforms}\.pkrvars.hcl'
1587 name: "{project-name}-packer-merge-{platforms}-{templates}"
1588 id: github-packer-merge
1589 <<: *lf_packer_common
1590 # yamllint disable-line rule:key-duplicates
1591 <<: *lf_packer_merge
1593 #####################
1594 # Job Configuration #
1595 #####################
1598 - lf-infra-properties:
1599 project: "{project}"
1600 build-days-to-keep: 7
1602 url: "{github-url}/{github-org}/{project}"
1605 - lf-infra-github-scm:
1606 url: "{git-clone-url}{github-org}/{project}"
1608 +refs/heads/*:refs/remotes/origin/*
1609 +refs/pull/*:refs/remotes/origin/pr/*
1610 branch: "$GERRIT_REFSPEC"
1611 submodule-recursive: "{submodule-recursive}"
1612 submodule-timeout: "{submodule-timeout}"
1613 submodule-disable: "{submodule-disable}"
1614 choosing-strategy: default
1615 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1618 - timed: "{obj:cron}"
1623 - github-pull-request:
1624 trigger-phrase: "^remerge$"
1625 only-trigger-phrase: true
1626 status-context: "Packer {platforms}-{templates} Merge"
1631 white-list: "{obj:github_pr_allowlist}"
1632 admin-list: "{obj:github_pr_admin_list}"
1633 # included-regions MUST match Gerrit Trigger file-paths
1635 - 'packer\/provision\/.*\.sh'
1636 - 'packer\/provision\/.*\.bat'
1637 - 'packer\/provision\/.*\.ps1'
1638 - 'packer\/provision\/{templates}\.yaml'
1639 - 'packer\/provision\/local-{templates}\.yaml'
1640 - 'packer\/templates\/{templates}\.json'
1641 - 'packer\/vars\/{platforms}\.json'
1642 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1643 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1644 - 'packer\/common-packer\/templates\/{templates}\.json'
1645 - 'packer\/common-packer\/vars\/{platforms}\.json'
1647 white-list-target-branches:
1651 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1652 id: gerrit-packer-verify-build
1653 <<: *lf_packer_common
1654 # yamllint disable-line rule:key-duplicates
1655 <<: *lf_packer_merge
1657 ######################
1658 # Default parameters #
1659 ######################
1661 git-url: "$GIT_URL/$GERRIT_PROJECT"
1663 gerrit_verify_triggers:
1664 - comment-added-contains-event:
1665 comment-contains-value: '^Patch Set\s+\d+:\s+(verify-build|packer-build)\s*$'
1667 #####################
1668 # Job Configuration #
1669 #####################
1672 - lf-infra-gerrit-scm:
1673 git-url: "{git-url}"
1674 refspec: "$GERRIT_REFSPEC"
1675 branch: "$GERRIT_BRANCH"
1676 submodule-recursive: "{submodule-recursive}"
1677 submodule-timeout: "{submodule-timeout}"
1678 submodule-disable: "{submodule-disable}"
1679 choosing-strategy: gerrit
1680 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1684 server-name: "{gerrit-server-name}"
1685 trigger-on: "{obj:gerrit_verify_triggers}"
1687 - project-compare-type: ANT
1688 project-pattern: "{project}"
1690 - branch-compare-type: ANT
1691 branch-pattern: "**/{branch}"
1693 - compare-type: REG_EXP
1694 pattern: 'packer\/provision\/.*\.sh'
1695 - compare-type: REG_EXP
1696 pattern: 'packer\/provision\/.*\.bat'
1697 - compare-type: REG_EXP
1698 pattern: 'packer\/provision\/.*\.ps1'
1699 - compare-type: REG_EXP
1700 pattern: 'packer\/provision\/{templates}\.yaml'
1701 - compare-type: REG_EXP
1702 pattern: 'packer\/provision\/local-{templates}\.yaml'
1703 - compare-type: REG_EXP
1704 pattern: 'packer\/templates\/{templates}\.json'
1705 - compare-type: REG_EXP
1706 pattern: 'packer\/vars\/{platforms}\.json'
1707 - compare-type: REG_EXP
1708 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1709 - compare-type: REG_EXP
1710 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1711 - compare-type: REG_EXP
1712 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1713 - compare-type: REG_EXP
1714 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1717 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1718 id: github-packer-verify-build
1719 <<: *lf_packer_common
1720 # yamllint disable-line rule:key-duplicates
1721 <<: *lf_packer_merge
1723 #####################
1724 # Job Configuration #
1725 #####################
1728 - lf-infra-properties:
1729 project: "{project}"
1730 build-days-to-keep: 7
1732 url: "{github-url}/{github-org}/{project}"
1735 - lf-infra-github-scm:
1736 url: "{git-clone-url}{github-org}/{project}"
1737 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1739 submodule-recursive: "{submodule-recursive}"
1740 submodule-timeout: "{submodule-timeout}"
1741 submodule-disable: "{submodule-disable}"
1742 choosing-strategy: default
1743 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1746 - github-pull-request:
1747 trigger-phrase: "^(verify-build|packer-build)$"
1748 only-trigger-phrase: true
1749 status-context: "Packer {platforms}-{templates} Verify Build"
1752 white-list-target-branches:
1754 # included-regions MUST match Gerrit Trigger file-paths
1756 - 'packer\/provision\/.*\.sh'
1757 - 'packer\/provision\/.*\.bat'
1758 - 'packer\/provision\/.*\.ps1'
1759 - 'packer\/provision\/{templates}\.yaml'
1760 - 'packer\/provision\/local-{templates}\.yaml'
1761 - 'packer\/templates\/{templates}\.json'
1762 - 'packer\/vars\/{platforms}\.json'
1763 - 'packer\/common-packer\/vars\/{platforms}\.json'
1764 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1765 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1766 - 'packer\/common-packer\/templates\/{templates}\.json'
1772 - _lf_packer_verify: &lf_packer_verify
1773 name: lf-packer-verify
1775 ######################
1776 # Default parameters #
1777 ######################
1781 openstack-cloud: vex
1783 gerrit_verify_triggers:
1784 - patchset-created-event:
1785 exclude-drafts: true
1786 exclude-trivial-rebase: false
1787 exclude-no-code-change: false
1788 - draft-published-event
1789 - comment-added-contains-event:
1790 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1792 gerrit_trigger_file_paths:
1793 - compare-type: REG_EXP
1794 pattern: 'packer\/.*'
1796 # github_included_regions MUST match gerrit_trigger_file_paths
1797 github_included_regions:
1800 #####################
1801 # Job Configuration #
1802 #####################
1807 - lf-infra-packer-validate:
1808 openstack: "{openstack}"
1809 openstack-cloud: "{openstack-cloud}"
1810 packer-cloud-settings: "{packer-cloud-settings}"
1811 packer-version: "{packer-version}"
1814 name: "{project-name}-packer-verify"
1815 id: gerrit-packer-verify
1816 <<: *lf_packer_common
1817 # yamllint disable-line rule:key-duplicates
1818 <<: *lf_packer_verify
1820 ######################
1821 # Default parameters #
1822 ######################
1824 git-url: "$GIT_URL/$GERRIT_PROJECT"
1826 #####################
1827 # Job Configuration #
1828 #####################
1831 - lf-infra-gerrit-scm:
1832 git-url: "{git-url}"
1833 refspec: "$GERRIT_REFSPEC"
1834 branch: "$GERRIT_BRANCH"
1835 submodule-recursive: "{submodule-recursive}"
1836 submodule-timeout: "{submodule-timeout}"
1837 submodule-disable: "{submodule-disable}"
1838 choosing-strategy: gerrit
1839 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1843 server-name: "{gerrit-server-name}"
1844 trigger-on: "{obj:gerrit_verify_triggers}"
1846 - project-compare-type: ANT
1847 project-pattern: "{project}"
1849 - branch-compare-type: ANT
1850 branch-pattern: "**/{branch}"
1851 file-paths: "{obj:gerrit_trigger_file_paths}"
1854 name: "{project-name}-packer-verify"
1855 id: github-packer-verify
1856 <<: *lf_packer_common
1857 # yamllint disable-line rule:key-duplicates
1858 <<: *lf_packer_verify
1860 #####################
1861 # Job Configuration #
1862 #####################
1865 - lf-infra-properties:
1866 project: "{project}"
1867 build-days-to-keep: 7
1869 url: "{github-url}/{github-org}/{project}"
1872 - lf-infra-github-scm:
1873 url: "{git-clone-url}{github-org}/{project}"
1874 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1876 submodule-recursive: "{submodule-recursive}"
1877 submodule-timeout: "{submodule-timeout}"
1878 submodule-disable: "{submodule-disable}"
1879 choosing-strategy: default
1880 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1883 - github-pull-request:
1884 trigger-phrase: "^(recheck|reverify)$"
1885 only-trigger-phrase: false
1886 status-context: "Packer Verify"
1889 included-regions: "{obj:github_included_regions}"
1890 white-list-target-branches:
1893 ################################
1894 # Openstack Update Cloud Image #
1895 ################################
1897 - _lf_openstack_cron: &lf_openstack_update_cloud_image
1898 name: lf-openstack-update-cloud-image
1900 ######################
1901 # Default parameters #
1902 ######################
1905 build-days-to-keep: 7
1909 git-url: "$GIT_URL/$PROJECT"
1910 github-url: "https://github.com"
1911 new-image-name: "all"
1912 openstack-cloud: vex
1914 submodule-timeout: 10
1915 submodule-disable: false
1916 update-cloud-image: false
1918 #####################
1919 # Job Configuration #
1920 #####################
1922 project-type: freestyle
1923 node: "{build-node}"
1925 disabled: "{disable-job}"
1928 - lf-infra-properties:
1929 build-days-to-keep: "{build-days-to-keep}"
1932 - lf-infra-parameters:
1933 project: "{project}"
1937 name: NEW_IMAGE_NAME
1938 default: "{new-image-name}"
1939 description: "Name of cloud image to update in Jenkins"
1942 - lf-infra-wrappers:
1943 build-timeout: "{build-timeout}"
1944 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1945 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1946 - config-file-provider:
1948 - file-id: clouds-yaml
1949 target: "$HOME/.config/openstack/clouds.yaml"
1951 target: "$HOME/.npmrc"
1953 target: "$HOME/.config/pip/pip.conf"
1956 - lf-infra-pre-build
1958 properties-content: |
1959 OS_CLOUD={openstack-cloud}
1962 echo "Extract the image type for commit message"
1963 # echo IMAGE_TYPE=${{NEW_IMAGE_NAME% -*}} >> image-type.txt
1964 IMAGE_TYPE=$(echo ${{NEW_IMAGE_NAME}} | tr -d "\'\"\ " | awk -F- '{{ print $2 " " $3 " " $4 }}')
1965 echo IMAGE_TYPE=${{IMAGE_TYPE}} >> image-type.txt
1968 properties-file: "image-type.txt"
1969 - lf-infra-update-packer-images
1970 - lf-infra-push-gerrit-patch:
1971 project: "{project}"
1972 gerrit-user: "{gerrit-user}"
1973 gerrit-host: "{gerrit-host}"
1974 gerrit-topic: "{gerrit-topic}"
1975 gerrit-commit-message: "Update cloud image $IMAGE_TYPE"
1976 reviewers-email: "{reviewers-email}"
1982 name: "{project-name}-openstack-update-cloud-image"
1983 id: gerrit-openstack-update-cloud-image
1984 <<: *lf_openstack_update_cloud_image
1986 ######################
1987 # Default parameters #
1988 ######################
1990 git-url: "$GIT_URL/$GERRIT_PROJECT"
1992 #####################
1993 # Job Configuration #
1994 #####################
1997 - lf-infra-gerrit-scm:
1998 git-url: "{git-url}"
1999 refspec: "$GERRIT_REFSPEC"
2000 branch: "$GERRIT_BRANCH"
2001 submodule-recursive: false
2002 submodule-timeout: "{submodule-timeout}"
2003 submodule-disable: "{submodule-disable}"
2004 choosing-strategy: gerrit
2005 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2008 - timed: "{obj:cron}"
2014 - _lf_puppet_verify: &lf_puppet_verify
2015 name: lf-puppet-verify
2017 ######################
2018 # Default parameters #
2019 ######################
2022 build-days-to-keep: 7
2025 git-url: "$GIT_URL/$GERRIT_PROJECT"
2026 github-url: "https://github.com"
2029 puppet-lint-version: 2.3.6
2031 submodule-recursive: true
2032 submodule-timeout: 10
2033 submodule-disable: false
2035 gerrit_trigger_file_paths:
2036 - compare-type: REG_EXP
2039 # github_included_regions MUST match gerrit_trigger_file_paths
2040 github_included_regions:
2043 #####################
2044 # Job Configuration #
2045 #####################
2047 project-type: freestyle
2048 node: "{build-node}"
2050 disabled: "{disable-job}"
2053 - lf-infra-properties:
2054 build-days-to-keep: "{build-days-to-keep}"
2057 - lf-infra-parameters:
2058 project: "{project}"
2061 - lf-puppet-parameters:
2062 puppet-lint-version: "{puppet-lint-version}"
2065 - lf-infra-wrappers:
2066 build-timeout: "{build-timeout}"
2067 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2070 - shell: !include-raw-escape: ../shell/puppet-lint.sh
2076 name: "{project-name}-puppet-verify"
2077 id: gerrit-puppet-verify
2078 <<: *lf_puppet_verify
2080 ######################
2081 # Default parameters #
2082 ######################
2084 gerrit_verify_triggers:
2085 - patchset-created-event:
2086 exclude-drafts: true
2087 exclude-trivial-rebase: false
2088 exclude-no-code-change: false
2089 - draft-published-event
2090 - comment-added-contains-event:
2091 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2093 #####################
2094 # Job Configuration #
2095 #####################
2098 - lf-infra-gerrit-scm:
2099 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2100 git-url: "{git-url}"
2101 refspec: "$GERRIT_REFSPEC"
2102 branch: "$GERRIT_BRANCH"
2103 submodule-recursive: "{submodule-recursive}"
2104 submodule-timeout: "{submodule-timeout}"
2105 submodule-disable: "{submodule-disable}"
2106 choosing-strategy: gerrit
2110 server-name: "{gerrit-server-name}"
2111 trigger-on: "{obj:gerrit_verify_triggers}"
2113 - project-compare-type: ANT
2114 project-pattern: "{project}"
2116 - branch-compare-type: ANT
2117 branch-pattern: "**/{branch}"
2118 file-paths: "{obj:gerrit_trigger_file_paths}"
2121 name: "{project-name}-puppet-verify"
2122 id: github-puppet-verify
2123 <<: *lf_puppet_verify
2125 #####################
2126 # Job Configuration #
2127 #####################
2130 - lf-infra-properties:
2131 project: "{project}"
2132 build-days-to-keep: 7
2134 url: "{github-url}/{github-org}/{project}"
2137 - lf-infra-github-scm:
2138 url: "{git-clone-url}{github-org}/{project}"
2139 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2141 submodule-recursive: "{submodule-recursive}"
2142 submodule-timeout: "{submodule-timeout}"
2143 submodule-disable: "{submodule-disable}"
2144 choosing-strategy: default
2145 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2148 - github-pull-request:
2149 trigger-phrase: "^(recheck|reverify)$"
2150 only-trigger-phrase: false
2151 status-context: "Puppet Verify"
2154 included-regions: "{obj:github_included_regions}"
2155 white-list-target-branches:
2162 - _lf_sonar_common: &lf_sonar_common
2163 name: lf-sonar-common
2165 ######################
2166 # Default parameters #
2167 ######################
2169 archive-artifacts: >
2172 branch: master # Sonar should always be run on master branch
2173 build-days-to-keep: 7
2175 cron: "H H * * *" # run daily
2177 git-url: "$GIT_URL/$PROJECT"
2178 github-url: "https://github.com"
2179 sonarcloud-java-version: openjdk17
2181 submodule-recursive: true
2182 submodule-timeout: 10
2183 submodule-disable: false
2187 sonar-project-file: "sonar-project.properties"
2188 sonar-properties: ""
2190 sonar-additional-args: ""
2191 sonar-jdk: openjdk17
2193 gerrit_trigger_file_paths:
2194 - compare-type: REG_EXP
2197 # github_included_regions MUST match gerrit_trigger_file_paths
2198 github_included_regions:
2201 #####################
2202 # Job Configuration #
2203 #####################
2205 project-type: freestyle
2206 node: "{build-node}"
2209 - lf-infra-properties:
2210 build-days-to-keep: "{build-days-to-keep}"
2213 - lf-infra-wrappers:
2214 build-timeout: "{build-timeout}"
2215 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2217 disabled: "{disable-job}"
2220 - lf-infra-parameters:
2221 project: "{project}"
2225 name: ARCHIVE_ARTIFACTS
2226 default: "{archive-artifacts}"
2227 description: Artifacts to archive to the logs server.
2232 - _lf_sonar_builders: &lf_sonar_builders
2233 name: lf-sonar-builders
2235 - lf-infra-pre-build
2236 - lf-update-java-alternatives:
2237 java-version: "{sonarcloud-java-version}"
2239 sonar-task: "{sonar-task}"
2240 sonar-project-file: "{sonar-project-file}"
2241 sonar-properties: "{sonar-properties}"
2242 sonar-java-opts: "{sonar-java-opts}"
2243 sonar-additional-args: "{sonar-additional-args}"
2244 sonar-jdk: "{sonar-jdk}"
2246 - _lf_sonar_builders_prescan: &lf_sonar_builders_prescan
2247 name: lf-sonar-builders-prescan
2249 - lf-infra-pre-build
2250 - lf-update-java-alternatives:
2251 java-version: "{sonarcloud-java-version}"
2252 - lf-infra-sonar-with-prescan:
2253 sonar-task: "{sonar-task}"
2254 sonar-project-file: "{sonar-project-file}"
2255 sonar-properties: "{sonar-properties}"
2256 sonar-java-opts: "{sonar-java-opts}"
2257 sonar-additional-args: "{sonar-additional-args}"
2259 - _lf_sonar_builders_prescan_script: &lf_sonar_builders_prescan_script
2260 name: lf-sonar-builders-prescan-script
2262 - lf-infra-pre-build
2263 - lf-update-java-alternatives:
2264 java-version: "{sonarcloud-java-version}"
2265 - shell: "{sonar-prescan-script}"
2267 sonar-task: "{sonar-task}"
2268 sonar-project-file: "{sonar-project-file}"
2269 sonar-properties: "{sonar-properties}"
2270 sonar-java-opts: "{sonar-java-opts}"
2271 sonar-additional-args: "{sonar-additional-args}"
2272 sonar-jdk: "{sonar-jdk}"
2274 - _lf_sonar_gerrit_common: &lf_sonar_gerrit_common
2275 name: lf-sonar-gerrit-common
2276 gerrit_sonar_triggers:
2277 - comment-added-contains-event:
2278 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
2281 - lf-infra-gerrit-scm:
2282 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2283 git-url: "{git-url}"
2284 refspec: $GERRIT_REFSPEC
2285 branch: $GERRIT_BRANCH
2286 submodule-recursive: "{submodule-recursive}"
2287 submodule-timeout: "{submodule-timeout}"
2288 submodule-disable: "{submodule-disable}"
2289 choosing-strategy: default
2292 - timed: "{obj:cron}"
2294 server-name: "{gerrit-server-name}"
2295 trigger-on: "{obj:gerrit_sonar_triggers}"
2297 - project-compare-type: "ANT"
2298 project-pattern: "{project}"
2300 - branch-compare-type: "ANT"
2301 branch-pattern: "**/{branch}"
2302 file-paths: "{obj:gerrit_trigger_file_paths}"
2309 - _lf_sonar_github_common: &lf_sonar_github_common
2310 name: lf-sonar-github-common
2312 - lf-infra-properties:
2313 build-days-to-keep: "{build-days-to-keep}"
2315 url: "{github-url}/{github-org}/{project}"
2318 - lf-infra-github-scm:
2319 url: "{git-clone-url}{github-org}/{project}"
2320 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2322 submodule-recursive: "{submodule-recursive}"
2323 submodule-timeout: "{submodule-timeout}"
2324 submodule-disable: "{submodule-disable}"
2325 choosing-strategy: default
2326 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2329 - github-pull-request:
2330 trigger-phrase: "^run-sonar$"
2331 only-trigger-phrase: false
2332 status-context: "Python Sonar"
2335 white-list-target-branches:
2337 included-regions: "{obj:github_included_regions}"
2340 name: "{project-name}-sonar"
2342 <<: *lf_sonar_common
2343 # yamllint disable-line rule:key-duplicates
2344 <<: *lf_sonar_builders
2345 # yamllint disable-line rule:key-duplicates
2346 <<: *lf_sonar_gerrit_common
2349 name: "{project-name}-sonar"
2351 <<: *lf_sonar_common
2352 # yamllint disable-line rule:key-duplicates
2353 <<: *lf_sonar_builders
2354 # yamllint disable-line rule:key-duplicates
2355 <<: *lf_sonar_github_common
2358 name: "{project-name}-sonar-prescan"
2359 id: gerrit-sonar-prescan
2360 <<: *lf_sonar_common
2361 # yamllint disable-line rule:key-duplicates
2362 <<: *lf_sonar_builders_prescan
2363 # yamllint disable-line rule:key-duplicates
2364 <<: *lf_sonar_gerrit_common
2367 name: "{project-name}-sonar-prescan"
2368 id: github-sonar-prescan
2369 <<: *lf_sonar_common
2370 # yamllint disable-line rule:key-duplicates
2371 <<: *lf_sonar_builders_prescan
2372 # yamllint disable-line rule:key-duplicates
2373 <<: *lf_sonar_github_common
2376 name: "{project-name}-sonar-prescan-script"
2377 id: gerrit-sonar-prescan-script
2378 <<: *lf_sonar_common
2379 # yamllint disable-line rule:key-duplicates
2380 <<: *lf_sonar_builders_prescan_script
2381 # yamllint disable-line rule:key-duplicates
2382 <<: *lf_sonar_gerrit_common
2385 name: "{project-name}-sonar-prescan-script"
2386 id: github-sonar-prescan-script
2387 <<: *lf_sonar_common
2388 # yamllint disable-line rule:key-duplicates
2389 <<: *lf_sonar_builders_prescan_script
2390 # yamllint disable-line rule:key-duplicates
2391 <<: *lf_sonar_github_common
2397 - _lf_pipelines_common: &lf_pipelines_common
2398 name: lf-pipelines-common
2400 ######################
2401 # Default parameters #
2402 ######################
2408 submodule-recursive: true
2409 submodule-timeout: 10
2410 submodule-disable: false
2412 - _lf_global_pipelines_common: &lf_global_pipelines_common
2413 name: lf-global-pipelines-common
2415 # All jobs are triggering from the same source
2416 git-url: https://gerrit.linuxfoundation.org/infra/releng/pipelines
2419 server-name: "lf-releng"
2421 - patchset-created-event:
2422 exclude-drafts: true
2423 exclude-trivial-rebase: false
2424 exclude-no-code-change: false
2425 - draft-published-event
2426 - comment-added-contains-event:
2427 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2429 - project-compare-type: ANT
2430 project-pattern: "releng/pipelines"
2432 - branch-compare-type: ANT
2433 branch-pattern: "**/master"
2436 name: "lf-pipelines-verify"
2437 id: lf-pipelines-verify
2438 <<: *lf_pipelines_common
2439 <<: *lf_global_pipelines_common
2441 project-type: pipeline
2444 - lf-infra-gerrit-scm:
2445 git-url: "{git-url}"
2446 refspec: "$GERRIT_REFSPEC"
2447 branch: "$GERRIT_BRANCH"
2448 submodule-recursive: "{submodule-recursive}"
2449 submodule-timeout: "{submodule-timeout}"
2450 submodule-disable: "{submodule-disable}"
2451 choosing-strategy: gerrit
2452 jenkins-ssh-credential: "{jenkins-ssh-credential}"