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}"
635 jenkins-ssh-credential: "{jenkins-ssh-credential}"
639 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
645 name: "{project-name}-jjb-deploy-job"
646 id: gerrit-jjb-deploy-job
648 # yamllint disable-line rule:key-duplicates
649 <<: *lf_jjb_deploy_job
652 - lf-infra-gerrit-scm:
654 refspec: "refs/heads/{branch}"
656 submodule-recursive: true
657 submodule-timeout: "{submodule-timeout}"
658 submodule-disable: "{submodule-disable}"
659 choosing-strategy: default
660 jenkins-ssh-credential: "{jenkins-ssh-credential}"
664 server-name: "{gerrit-server-name}"
665 trigger-on: "{obj:gerrit_jjb_deploy_job_triggers}"
667 - project-compare-type: ANT
668 project-pattern: "**"
670 - branch-compare-type: ANT
677 comment-text-parameter-mode: PLAIN
680 name: "{project-name}-jjb-deploy-job"
681 id: github-jjb-deploy-job
683 # yamllint disable-line rule:key-duplicates
684 <<: *lf_jjb_deploy_job
687 - lf-infra-properties:
689 build-days-to-keep: 1
691 url: "{github-url}/{github-org}/{project}"
694 - lf-infra-github-scm:
695 url: "{git-clone-url}{github-org}/{project}"
696 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
698 submodule-recursive: true
699 submodule-timeout: "{submodule-timeout}"
700 submodule-disable: "{submodule-disable}"
701 choosing-strategy: default
702 jenkins-ssh-credential: "{jenkins-ssh-credential}"
705 - github-pull-request:
706 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
707 only-trigger-phrase: true
708 status-context: "JJB Deploy Job"
711 white-list-target-branches:
718 - _lf_jjb_merge: &lf_jjb_merge
721 ######################
722 # Default parameters #
723 ######################
727 gerrit_merge_triggers:
728 - change-merged-event
729 - comment-added-contains-event:
730 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
732 #####################
733 # Job Configuration #
734 #####################
740 properties-content: JJB_WORKERS={jjb-workers}
741 - shell: !include-raw-escape:
742 - ../shell/jjb-merge-job.sh
745 name: "{project-name}-jjb-merge"
748 # yamllint disable-line rule:key-duplicates
751 git-url: "$GIT_URL/$GERRIT_PROJECT"
754 - lf-infra-gerrit-scm:
758 submodule-recursive: "{submodule-recursive}"
759 submodule-timeout: "{submodule-timeout}"
760 submodule-disable: "{submodule-disable}"
761 choosing-strategy: default
762 jenkins-ssh-credential: "{jenkins-ssh-credential}"
766 server-name: "{gerrit-server-name}"
767 trigger-on: "{obj:gerrit_merge_triggers}"
769 - project-compare-type: ANT
770 project-pattern: "{project}"
772 - branch-compare-type: ANT
773 branch-pattern: "**/{branch}"
774 file-paths: "{obj:gerrit_trigger_file_paths}"
777 name: "{project-name}-jjb-merge"
780 # yamllint disable-line rule:key-duplicates
783 #####################
784 # Job Configuration #
785 #####################
788 - lf-infra-properties:
790 build-days-to-keep: 7
792 url: "{github-url}/{github-org}/{project}"
795 - lf-infra-github-scm:
796 url: "{git-clone-url}{github-org}/{project}"
798 branch: "refs/heads/{branch}"
799 submodule-recursive: "{submodule-recursive}"
800 submodule-timeout: "{submodule-timeout}"
801 submodule-disable: "{submodule-disable}"
802 choosing-strategy: default
803 jenkins-ssh-credential: "{jenkins-ssh-credential}"
809 - github-pull-request:
810 trigger-phrase: "^remerge$"
811 only-trigger-phrase: true
812 status-context: "JJB Merge"
817 white-list: "{obj:github_pr_allowlist}"
818 admin-list: "{obj:github_pr_admin_list}"
819 included-regions: "{obj:github_included_regions}"
820 white-list-target-branches:
827 - _lf_jjb_verify: &lf_jjb_verify
830 ######################
831 # Default parameters #
832 ######################
834 build-concurrent: true
835 build-node-label-check: false
836 build-node-label-list: ""
838 gerrit_verify_triggers:
839 - patchset-created-event:
841 exclude-trivial-rebase: false
842 exclude-no-code-change: false
843 - draft-published-event
844 - comment-added-contains-event:
845 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
847 #####################
848 # Job Configuration #
849 #####################
851 concurrent: "{build-concurrent}"
856 - shell: !include-raw-escape:
857 - ../shell/jjb-verify-job.sh
859 condition-kind: boolean-expression
860 condition-expression: "{build-node-label-check}"
861 on-evaluation-failure: dont-run
864 properties-content: EXTERNAL_LABELS="{build-node-label-list}"
865 - shell: !include-raw-escape:
866 - ../shell/jjb-verify-build-nodes.sh
867 - lf-infra-gpg-verify-git-signature
870 name: "{project-name}-jjb-verify"
871 id: gerrit-jjb-verify
873 # yamllint disable-line rule:key-duplicates
876 ######################
877 # Default parameters #
878 ######################
880 git-url: "$GIT_URL/$GERRIT_PROJECT"
882 #####################
883 # Job Configuration #
884 #####################
887 - lf-infra-gerrit-scm:
889 refspec: "$GERRIT_REFSPEC"
890 branch: "$GERRIT_BRANCH"
891 submodule-recursive: "{submodule-recursive}"
892 submodule-timeout: "{submodule-timeout}"
893 submodule-disable: "{submodule-disable}"
894 choosing-strategy: gerrit
895 jenkins-ssh-credential: "{jenkins-ssh-credential}"
899 server-name: "{gerrit-server-name}"
900 trigger-on: "{obj:gerrit_verify_triggers}"
902 - project-compare-type: ANT
903 project-pattern: "{project}"
905 - branch-compare-type: ANT
906 branch-pattern: "**/{branch}"
907 file-paths: "{obj:gerrit_trigger_file_paths}"
910 name: "{project-name}-jjb-verify"
911 id: github-jjb-verify
913 # yamllint disable-line rule:key-duplicates
916 #####################
917 # Job Configuration #
918 #####################
921 - lf-infra-properties:
923 build-days-to-keep: 7
925 url: "{github-url}/{github-org}/{project}"
928 - lf-infra-github-scm:
929 url: "{git-clone-url}{github-org}/{project}"
930 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
932 submodule-recursive: "{submodule-recursive}"
933 submodule-timeout: "{submodule-timeout}"
934 submodule-disable: "{submodule-disable}"
935 choosing-strategy: default
936 jenkins-ssh-credential: "{jenkins-ssh-credential}"
939 - github-pull-request:
940 trigger-phrase: "^(recheck|reverify)$"
941 only-trigger-phrase: false
942 status-context: "JJB Verify"
945 included-regions: "{obj:github_included_regions}"
946 white-list-target-branches:
949 ############################
950 # JJB Verify Upstream GJJB #
951 ############################
953 - _lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
954 name: lf-jjb-verify-upstream-gjjb
956 #####################
957 # Job Configuration #
958 #####################
965 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
966 git cherry-pick FETCH_HEAD
968 - shell: !include-raw-escape:
969 - ../shell/jjb-verify-job.sh
971 # All jobs are triggering from the same source
974 server-name: "lf-releng"
976 - patchset-created-event:
978 exclude-trivial-rebase: false
979 exclude-no-code-change: false
980 - draft-published-event
981 - comment-added-contains-event:
982 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
984 - project-compare-type: ANT
985 project-pattern: "releng/global-jjb"
987 - branch-compare-type: ANT
988 branch-pattern: "**/master"
990 gerrit-build-failed-codereview-value: -1
991 gerrit-build-failed-verified-value: 0
992 gerrit-build-successful-codereview-value: 1
993 gerrit-build-successful-verified-value: 0
996 name: "{project-name}-jjb-verify-upstream-gjjb"
997 id: gerrit-jjb-verify-upstream-gjjb
999 # yamllint disable-line rule:key-duplicates
1000 <<: *lf_jjb_verify_upstream_gjjb
1002 ######################
1003 # Default parameters #
1004 ######################
1006 git-url: "$GIT_URL/$PROJECT"
1007 submodule-timeout: 10
1008 submodule-disable: false
1010 #####################
1011 # Job Configuration #
1012 #####################
1015 - lf-infra-gerrit-scm:
1016 git-url: "{git-url}"
1019 submodule-recursive: true
1020 submodule-timeout: "{submodule-timeout}"
1021 submodule-disable: "{submodule-disable}"
1022 choosing-strategy: default
1023 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1026 name: "{project-name}-jjb-verify-upstream-gjjb"
1027 id: github-jjb-verify-upstream-gjjb
1029 # yamllint disable-line rule:key-duplicates
1030 <<: *lf_jjb_verify_upstream_gjjb
1032 ######################
1033 # Default parameters #
1034 ######################
1036 git-url: "$GIT_URL/$PROJECT"
1037 submodule-timeout: 10
1038 submodule-disable: false
1040 #####################
1041 # Job Configuration #
1042 #####################
1045 - lf-infra-properties:
1046 project: "{project}"
1047 build-days-to-keep: 7
1049 url: "{github-url}/{github-org}/{project}"
1052 - lf-infra-github-scm:
1053 url: "{git-clone-url}{github-org}/{project}"
1054 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1056 submodule-recursive: "{submodule-recursive}"
1057 submodule-timeout: "{submodule-timeout}"
1058 submodule-disable: "{submodule-disable}"
1059 choosing-strategy: default
1060 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1066 - _lf_license_check: &lf_license_check
1067 name: lf-license-check
1069 ######################
1070 # Default parameters #
1071 ######################
1074 build-days-to-keep: 7
1083 git-url: "$GIT_URL/$PROJECT"
1084 github-url: "https://github.com"
1086 license-exclude-paths: ""
1087 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1088 project-pattern: "**"
1091 submodule-timeout: 10
1092 submodule-disable: false
1094 #####################
1095 # Job Configuration #
1096 #####################
1098 project-type: freestyle
1099 node: "{build-node}"
1101 disabled: "{disable-job}"
1104 - lf-infra-properties:
1105 build-days-to-keep: "{build-days-to-keep}"
1108 - lf-infra-parameters:
1109 project: "{project}"
1114 - lf-infra-wrappers:
1115 build-timeout: "{build-timeout}"
1116 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1120 file-patterns: "{file-patterns}"
1121 spdx-disable: "{spdx-disable}"
1122 lhc-version: "{lhc-version}"
1123 license-exclude-paths: "{license-exclude-paths}"
1124 licenses-allowed: "{licenses-allowed}"
1130 name: "{project-name}-license-check"
1131 id: gerrit-license-check
1132 <<: *lf_license_check
1134 git-url: "$GIT_URL/$GERRIT_PROJECT"
1137 - lf-infra-gerrit-scm:
1138 git-url: "{git-url}"
1139 refspec: "$GERRIT_REFSPEC"
1140 branch: "$GERRIT_BRANCH"
1141 # Submodules are out of the project's control
1142 submodule-recursive: false
1143 submodule-timeout: "{submodule-timeout}"
1144 submodule-disable: "{submodule-disable}"
1145 choosing-strategy: gerrit
1146 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1150 server-name: "{gerrit-server-name}"
1151 # Trigger should not be overridable as we want to always run
1153 - patchset-created-event:
1154 exclude-drafts: false
1155 exclude-trivial-rebase: false
1156 exclude-no-code-change: false
1157 - draft-published-event
1158 - comment-added-contains-event:
1159 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1161 - project-compare-type: ANT
1162 project-pattern: "{project-pattern}"
1164 - branch-compare-type: ANT
1165 branch-pattern: "**"
1168 name: "{project-name}-license-check"
1169 id: github-license-check
1170 <<: *lf_license_check
1173 - lf-infra-properties:
1174 build-days-to-keep: "{build-days-to-keep}"
1176 url: "{github-url}/{github-org}/{project}"
1179 - lf-infra-github-scm:
1180 url: "{git-clone-url}{github-org}/{project}"
1181 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1183 # Submodules are out of the project's control
1184 submodule-recursive: false
1185 submodule-timeout: "{submodule-timeout}"
1186 submodule-disable: "{submodule-disable}"
1187 choosing-strategy: default
1188 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1191 - github-pull-request:
1192 trigger-phrase: "^recheck$"
1193 only-trigger-phrase: false
1194 status-context: "License Check"
1197 white-list-target-branches:
1200 ####################
1201 # Info YAML Verify #
1202 ####################
1204 - _lf_info_yaml_verify: &lf_info_yaml_verify
1205 name: lf-info-yaml-verify
1207 ######################
1208 # Default parameters #
1209 ######################
1211 gerrit_verify_triggers:
1212 - patchset-created-event:
1213 exclude-drafts: true
1214 exclude-trivial-rebase: false
1215 exclude-no-code-change: false
1216 - draft-published-event
1217 - comment-added-contains-event:
1218 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1220 #####################
1221 # Job Configuration #
1222 #####################
1227 - shell: !include-raw-escape:
1228 - ../shell/git-validate-info-yaml.sh
1229 - ../shell/info-file-validate.sh
1232 name: "{project-name}-info-yaml-verify"
1233 id: gerrit-info-yaml-verify
1235 # yamllint disable-line rule:key-duplicates
1236 <<: *lf_info_yaml_verify
1238 git-url: "$GIT_URL/$GERRIT_PROJECT"
1241 - lf-infra-gerrit-scm:
1242 git-url: "{git-url}"
1243 refspec: "$GERRIT_REFSPEC"
1244 branch: "$GERRIT_BRANCH"
1245 submodule-recursive: "{submodule-recursive}"
1246 submodule-timeout: "{submodule-timeout}"
1247 submodule-disable: "{submodule-disable}"
1248 choosing-strategy: gerrit
1249 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1253 server-name: "{gerrit-server-name}"
1254 trigger-on: "{obj:gerrit_verify_triggers}"
1256 - project-compare-type: ANT
1257 project-pattern: "{project}"
1259 - branch-compare-type: ANT
1260 branch-pattern: "**/{branch}"
1262 - compare-type: REG_EXP
1263 pattern: "INFO.yaml"
1266 name: "{project-name}-info-yaml-verify"
1267 id: github-info-yaml-verify
1269 # yamllint disable-line rule:key-duplicates
1270 <<: *lf_info_yaml_verify
1272 github-url: "https://github.com"
1275 url: "{github-url}/{github-org}/{project}"
1278 - lf-infra-github-scm:
1279 url: "{git-clone-url}{github-org}/{project}"
1280 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1282 submodule-recursive: "{submodule-recursive}"
1283 submodule-timeout: "{submodule-timeout}"
1284 submodule-disable: "{submodule-disable}"
1285 choosing-strategy: default
1286 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1289 - github-pull-request:
1290 trigger-phrase: "^(recheck|reverify)$"
1291 only-trigger-phrase: false
1292 status-context: "INFO File Verify"
1295 # included-regions MUST match gerrit file-paths
1296 included-regions: "INFO.yaml"
1297 white-list-target-branches:
1304 - _lf_openstack_cron: &lf_openstack_cron
1305 name: lf-openstack-cron
1307 ######################
1308 # Default parameters #
1309 ######################
1312 build-days-to-keep: 7
1316 git-url: "$GIT_URL/$PROJECT"
1317 github-url: "https://github.com"
1318 openstack-cloud: vex
1319 openstack-image-cleanup: true
1320 openstack-image-cleanup-age: 30
1321 openstack-image-protect: true
1322 openstack-port-cleanup: true
1323 openstack-server-cleanup: true
1324 openstack-stack-cleanup: true
1325 openstack-volume-cleanup: true
1327 submodule-timeout: 10
1328 submodule-disable: false
1330 #####################
1331 # Job Configuration #
1332 #####################
1334 project-type: freestyle
1335 node: "{build-node}"
1337 disabled: "{disable-job}"
1340 - lf-infra-properties:
1341 build-days-to-keep: "{build-days-to-keep}"
1344 - lf-infra-parameters:
1345 project: "{project}"
1350 default: "{jenkins-urls}"
1352 Space separated list of Jenkins URLs to check for active builds.
1355 - lf-infra-wrappers:
1356 build-timeout: "{build-timeout}"
1357 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1358 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1359 - config-file-provider:
1361 - file-id: clouds-yaml
1362 target: "$HOME/.config/openstack/clouds.yaml"
1364 target: "$HOME/.npmrc"
1366 target: "$HOME/.config/pip/pip.conf"
1369 - timed: "{obj:cron}"
1372 - lf-infra-pre-build
1374 properties-content: OS_CLOUD={openstack-cloud}
1377 condition-kind: boolean-expression
1378 condition-expression: "{openstack-stack-cleanup}"
1380 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-k8s-clusters.sh
1383 condition-kind: boolean-expression
1384 condition-expression: "{openstack-stack-cleanup}"
1386 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1389 condition-kind: boolean-expression
1390 condition-expression: "{openstack-server-cleanup}"
1392 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1395 condition-kind: boolean-expression
1396 condition-expression: "{openstack-port-cleanup}"
1398 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1401 condition-kind: boolean-expression
1402 condition-expression: "{openstack-volume-cleanup}"
1404 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1407 condition-kind: boolean-expression
1408 condition-expression: "{openstack-image-protect}"
1410 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1412 condition-kind: boolean-expression
1413 condition-expression: "{openstack-image-cleanup}"
1416 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1417 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1421 - global-jjb-email-notification:
1422 email-recipients: "{failure-notification}"
1423 email-prefix: "{failure-notification-prefix}"
1426 name: "{project-name}-openstack-cron"
1427 id: gerrit-openstack-cron
1428 <<: *lf_openstack_cron
1431 - lf-infra-gerrit-scm:
1432 git-url: "{git-url}"
1433 refspec: "refs/heads/{branch}"
1435 submodule-recursive: true
1436 submodule-timeout: "{submodule-timeout}"
1437 submodule-disable: "{submodule-disable}"
1438 choosing-strategy: default
1439 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1442 name: "{project-name}-openstack-cron"
1443 id: github-openstack-cron
1444 <<: *lf_openstack_cron
1447 - lf-infra-github-scm:
1448 url: "{git-clone-url}{github-org}/{project}"
1450 branch: "refs/heads/{branch}"
1451 submodule-recursive: true
1452 submodule-timeout: "{submodule-timeout}"
1453 submodule-disable: "{submodule-disable}"
1454 choosing-strategy: default
1455 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1461 - _lf_packer_merge: &lf_packer_merge
1462 name: lf-packer-merge
1464 ######################
1465 # Default parameters #
1466 ######################
1469 openstack-cloud: vex
1470 update-cloud-image: false
1472 #####################
1473 # Job Configuration #
1474 #####################
1477 - lf-infra-parameters:
1478 project: "{project}"
1481 - lf-packer-parameters:
1482 packer-version: "{packer-version}"
1484 name: UPDATE_CLOUD_IMAGE
1485 default: "{update-cloud-image}"
1486 description: "Update new built image on the cloud."
1489 - lf-infra-packer-build:
1490 openstack: "{openstack}"
1491 openstack-cloud: "{openstack-cloud}"
1492 packer-builder: "{packer-builder}"
1493 packer-cloud-settings: "{packer-cloud-settings}"
1494 packer-version: "{packer-version}"
1495 platform: "{platforms}"
1496 template: "{templates}"
1497 update-cloud-image: "{update-cloud-image}"
1498 - description-setter:
1499 regexp: '(\s+.*)(ZZCI\s+.*\d+-\d+\.\d+)'
1500 description: 'Image: \2'
1504 - trigger-parameterized-builds:
1505 - project: "{project-name}-openstack-update-cloud-image"
1506 condition: UNSTABLE_OR_BETTER
1507 predefined-parameters: |
1508 NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1509 property-file: variables.jenkins-trigger
1510 fail-on-missing: true
1513 name: "{project-name}-packer-merge-{platforms}-{templates}"
1514 id: gerrit-packer-merge
1515 <<: *lf_packer_common
1516 # yamllint disable-line rule:key-duplicates
1517 <<: *lf_packer_merge
1519 ######################
1520 # Default parameters #
1521 ######################
1523 git-url: "$GIT_URL/$GERRIT_PROJECT"
1525 gerrit_merge_triggers:
1526 - change-merged-event
1527 - comment-added-contains-event:
1528 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1530 #####################
1531 # Job Configuration #
1532 #####################
1535 - lf-infra-gerrit-scm:
1536 git-url: "{git-url}"
1537 refspec: "$GERRIT_REFSPEC"
1538 branch: "$GERRIT_BRANCH"
1539 submodule-recursive: "{submodule-recursive}"
1540 submodule-timeout: "{submodule-timeout}"
1541 submodule-disable: "{submodule-disable}"
1542 choosing-strategy: default
1543 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1546 - timed: "{obj:cron}"
1548 server-name: "{gerrit-server-name}"
1549 trigger-on: "{obj:gerrit_merge_triggers}"
1551 - project-compare-type: ANT
1552 project-pattern: "{project}"
1554 - branch-compare-type: ANT
1555 branch-pattern: "**/{branch}"
1557 - compare-type: REG_EXP
1558 pattern: 'packer\/provision\/.*\.sh'
1559 - compare-type: REG_EXP
1560 pattern: 'packer\/provision\/.*\.bat'
1561 - compare-type: REG_EXP
1562 pattern: 'packer\/provision\/.*\.ps1'
1563 - compare-type: REG_EXP
1564 pattern: 'packer\/provision\/{templates}\.yaml'
1565 - compare-type: REG_EXP
1566 pattern: 'packer\/provision\/local-{templates}\.yaml'
1567 - compare-type: REG_EXP
1568 pattern: 'packer\/templates\/{templates}\.json'
1569 - compare-type: REG_EXP
1570 pattern: 'packer\/vars\/{platforms}\.json'
1571 - compare-type: REG_EXP
1572 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1573 - compare-type: REG_EXP
1574 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1575 - compare-type: REG_EXP
1576 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1577 - compare-type: REG_EXP
1578 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1581 name: "{project-name}-packer-merge-{platforms}-{templates}"
1582 id: github-packer-merge
1583 <<: *lf_packer_common
1584 # yamllint disable-line rule:key-duplicates
1585 <<: *lf_packer_merge
1587 #####################
1588 # Job Configuration #
1589 #####################
1592 - lf-infra-properties:
1593 project: "{project}"
1594 build-days-to-keep: 7
1596 url: "{github-url}/{github-org}/{project}"
1599 - lf-infra-github-scm:
1600 url: "{git-clone-url}{github-org}/{project}"
1602 +refs/heads/*:refs/remotes/origin/*
1603 +refs/pull/*:refs/remotes/origin/pr/*
1604 branch: "$GERRIT_REFSPEC"
1605 submodule-recursive: "{submodule-recursive}"
1606 submodule-timeout: "{submodule-timeout}"
1607 submodule-disable: "{submodule-disable}"
1608 choosing-strategy: default
1609 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1612 - timed: "{obj:cron}"
1617 - github-pull-request:
1618 trigger-phrase: "^remerge$"
1619 only-trigger-phrase: true
1620 status-context: "Packer {platforms}-{templates} Merge"
1625 white-list: "{obj:github_pr_allowlist}"
1626 admin-list: "{obj:github_pr_admin_list}"
1627 # included-regions MUST match Gerrit Trigger file-paths
1629 - 'packer\/provision\/.*\.sh'
1630 - 'packer\/provision\/.*\.bat'
1631 - 'packer\/provision\/.*\.ps1'
1632 - 'packer\/provision\/{templates}\.yaml'
1633 - 'packer\/provision\/local-{templates}\.yaml'
1634 - 'packer\/templates\/{templates}\.json'
1635 - 'packer\/vars\/{platforms}\.json'
1636 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1637 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1638 - 'packer\/common-packer\/templates\/{templates}\.json'
1639 - 'packer\/common-packer\/vars\/{platforms}\.json'
1641 white-list-target-branches:
1645 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1646 id: gerrit-packer-verify-build
1647 <<: *lf_packer_common
1648 # yamllint disable-line rule:key-duplicates
1649 <<: *lf_packer_merge
1651 ######################
1652 # Default parameters #
1653 ######################
1655 git-url: "$GIT_URL/$GERRIT_PROJECT"
1657 gerrit_verify_triggers:
1658 - comment-added-contains-event:
1659 comment-contains-value: '^Patch Set\s+\d+:\s+(verify-build|packer-build)\s*$'
1661 #####################
1662 # Job Configuration #
1663 #####################
1666 - lf-infra-gerrit-scm:
1667 git-url: "{git-url}"
1668 refspec: "$GERRIT_REFSPEC"
1669 branch: "$GERRIT_BRANCH"
1670 submodule-recursive: "{submodule-recursive}"
1671 submodule-timeout: "{submodule-timeout}"
1672 submodule-disable: "{submodule-disable}"
1673 choosing-strategy: gerrit
1674 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1678 server-name: "{gerrit-server-name}"
1679 trigger-on: "{obj:gerrit_verify_triggers}"
1681 - project-compare-type: ANT
1682 project-pattern: "{project}"
1684 - branch-compare-type: ANT
1685 branch-pattern: "**/{branch}"
1687 - compare-type: REG_EXP
1688 pattern: 'packer\/provision\/.*\.sh'
1689 - compare-type: REG_EXP
1690 pattern: 'packer\/provision\/.*\.bat'
1691 - compare-type: REG_EXP
1692 pattern: 'packer\/provision\/.*\.ps1'
1693 - compare-type: REG_EXP
1694 pattern: 'packer\/provision\/{templates}\.yaml'
1695 - compare-type: REG_EXP
1696 pattern: 'packer\/provision\/local-{templates}\.yaml'
1697 - compare-type: REG_EXP
1698 pattern: 'packer\/templates\/{templates}\.json'
1699 - compare-type: REG_EXP
1700 pattern: 'packer\/vars\/{platforms}\.json'
1701 - compare-type: REG_EXP
1702 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1703 - compare-type: REG_EXP
1704 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1705 - compare-type: REG_EXP
1706 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1707 - compare-type: REG_EXP
1708 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1711 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1712 id: github-packer-verify-build
1713 <<: *lf_packer_common
1714 # yamllint disable-line rule:key-duplicates
1715 <<: *lf_packer_merge
1717 #####################
1718 # Job Configuration #
1719 #####################
1722 - lf-infra-properties:
1723 project: "{project}"
1724 build-days-to-keep: 7
1726 url: "{github-url}/{github-org}/{project}"
1729 - lf-infra-github-scm:
1730 url: "{git-clone-url}{github-org}/{project}"
1731 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1733 submodule-recursive: "{submodule-recursive}"
1734 submodule-timeout: "{submodule-timeout}"
1735 submodule-disable: "{submodule-disable}"
1736 choosing-strategy: default
1737 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1740 - github-pull-request:
1741 trigger-phrase: "^(verify-build|packer-build)$"
1742 only-trigger-phrase: true
1743 status-context: "Packer {platforms}-{templates} Verify Build"
1746 white-list-target-branches:
1748 # included-regions MUST match Gerrit Trigger file-paths
1750 - 'packer\/provision\/.*\.sh'
1751 - 'packer\/provision\/.*\.bat'
1752 - 'packer\/provision\/.*\.ps1'
1753 - 'packer\/provision\/{templates}\.yaml'
1754 - 'packer\/provision\/local-{templates}\.yaml'
1755 - 'packer\/templates\/{templates}\.json'
1756 - 'packer\/vars\/{platforms}\.json'
1757 - 'packer\/common-packer\/vars\/{platforms}\.json'
1758 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1759 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1760 - 'packer\/common-packer\/templates\/{templates}\.json'
1766 - _lf_packer_verify: &lf_packer_verify
1767 name: lf-packer-verify
1769 ######################
1770 # Default parameters #
1771 ######################
1775 openstack-cloud: vex
1777 gerrit_verify_triggers:
1778 - patchset-created-event:
1779 exclude-drafts: true
1780 exclude-trivial-rebase: false
1781 exclude-no-code-change: false
1782 - draft-published-event
1783 - comment-added-contains-event:
1784 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1786 gerrit_trigger_file_paths:
1787 - compare-type: REG_EXP
1788 pattern: 'packer\/.*'
1790 # github_included_regions MUST match gerrit_trigger_file_paths
1791 github_included_regions:
1794 #####################
1795 # Job Configuration #
1796 #####################
1801 - lf-infra-packer-validate:
1802 openstack: "{openstack}"
1803 openstack-cloud: "{openstack-cloud}"
1804 packer-cloud-settings: "{packer-cloud-settings}"
1805 packer-version: "{packer-version}"
1808 name: "{project-name}-packer-verify"
1809 id: gerrit-packer-verify
1810 <<: *lf_packer_common
1811 # yamllint disable-line rule:key-duplicates
1812 <<: *lf_packer_verify
1814 ######################
1815 # Default parameters #
1816 ######################
1818 git-url: "$GIT_URL/$GERRIT_PROJECT"
1820 #####################
1821 # Job Configuration #
1822 #####################
1825 - lf-infra-gerrit-scm:
1826 git-url: "{git-url}"
1827 refspec: "$GERRIT_REFSPEC"
1828 branch: "$GERRIT_BRANCH"
1829 submodule-recursive: "{submodule-recursive}"
1830 submodule-timeout: "{submodule-timeout}"
1831 submodule-disable: "{submodule-disable}"
1832 choosing-strategy: gerrit
1833 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1837 server-name: "{gerrit-server-name}"
1838 trigger-on: "{obj:gerrit_verify_triggers}"
1840 - project-compare-type: ANT
1841 project-pattern: "{project}"
1843 - branch-compare-type: ANT
1844 branch-pattern: "**/{branch}"
1845 file-paths: "{obj:gerrit_trigger_file_paths}"
1848 name: "{project-name}-packer-verify"
1849 id: github-packer-verify
1850 <<: *lf_packer_common
1851 # yamllint disable-line rule:key-duplicates
1852 <<: *lf_packer_verify
1854 #####################
1855 # Job Configuration #
1856 #####################
1859 - lf-infra-properties:
1860 project: "{project}"
1861 build-days-to-keep: 7
1863 url: "{github-url}/{github-org}/{project}"
1866 - lf-infra-github-scm:
1867 url: "{git-clone-url}{github-org}/{project}"
1868 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1870 submodule-recursive: "{submodule-recursive}"
1871 submodule-timeout: "{submodule-timeout}"
1872 submodule-disable: "{submodule-disable}"
1873 choosing-strategy: default
1874 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1877 - github-pull-request:
1878 trigger-phrase: "^(recheck|reverify)$"
1879 only-trigger-phrase: false
1880 status-context: "Packer Verify"
1883 included-regions: "{obj:github_included_regions}"
1884 white-list-target-branches:
1887 ################################
1888 # Openstack Update Cloud Image #
1889 ################################
1891 - _lf_openstack_cron: &lf_openstack_update_cloud_image
1892 name: lf-openstack-update-cloud-image
1894 ######################
1895 # Default parameters #
1896 ######################
1899 build-days-to-keep: 7
1903 git-url: "$GIT_URL/$PROJECT"
1904 github-url: "https://github.com"
1905 new-image-name: "all"
1906 openstack-cloud: vex
1908 submodule-timeout: 10
1909 submodule-disable: false
1910 update-cloud-image: false
1912 #####################
1913 # Job Configuration #
1914 #####################
1916 project-type: freestyle
1917 node: "{build-node}"
1919 disabled: "{disable-job}"
1922 - lf-infra-properties:
1923 build-days-to-keep: "{build-days-to-keep}"
1926 - lf-infra-parameters:
1927 project: "{project}"
1931 name: NEW_IMAGE_NAME
1932 default: "{new-image-name}"
1933 description: "Name of cloud image to update in Jenkins"
1936 - lf-infra-wrappers:
1937 build-timeout: "{build-timeout}"
1938 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1939 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1940 - config-file-provider:
1942 - file-id: clouds-yaml
1943 target: "$HOME/.config/openstack/clouds.yaml"
1945 target: "$HOME/.npmrc"
1947 target: "$HOME/.config/pip/pip.conf"
1950 - lf-infra-pre-build
1952 properties-content: |
1953 OS_CLOUD={openstack-cloud}
1956 echo "Extract the image type for commit message"
1957 # echo IMAGE_TYPE=${{NEW_IMAGE_NAME% -*}} >> image-type.txt
1958 IMAGE_TYPE=$(echo ${{NEW_IMAGE_NAME}} | tr -d "\'\"\ " | awk -F- '{{ print $2 " " $3 " " $4 }}')
1959 echo IMAGE_TYPE=${{IMAGE_TYPE}} >> image-type.txt
1962 properties-file: "image-type.txt"
1963 - lf-infra-update-packer-images
1964 - lf-infra-push-gerrit-patch:
1965 project: "{project}"
1966 gerrit-user: "{gerrit-user}"
1967 gerrit-host: "{gerrit-host}"
1968 gerrit-topic: "{gerrit-topic}"
1969 gerrit-commit-message: "Update cloud image $IMAGE_TYPE"
1970 reviewers-email: "{reviewers-email}"
1976 name: "{project-name}-openstack-update-cloud-image"
1977 id: gerrit-openstack-update-cloud-image
1978 <<: *lf_openstack_update_cloud_image
1980 ######################
1981 # Default parameters #
1982 ######################
1984 git-url: "$GIT_URL/$GERRIT_PROJECT"
1986 #####################
1987 # Job Configuration #
1988 #####################
1991 - lf-infra-gerrit-scm:
1992 git-url: "{git-url}"
1993 refspec: "$GERRIT_REFSPEC"
1994 branch: "$GERRIT_BRANCH"
1995 submodule-recursive: false
1996 submodule-timeout: "{submodule-timeout}"
1997 submodule-disable: "{submodule-disable}"
1998 choosing-strategy: gerrit
1999 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2002 - timed: "{obj:cron}"
2008 - _lf_puppet_verify: &lf_puppet_verify
2009 name: lf-puppet-verify
2011 ######################
2012 # Default parameters #
2013 ######################
2016 build-days-to-keep: 7
2019 git-url: "$GIT_URL/$GERRIT_PROJECT"
2020 github-url: "https://github.com"
2023 puppet-lint-version: 2.3.6
2025 submodule-recursive: true
2026 submodule-timeout: 10
2027 submodule-disable: false
2029 gerrit_trigger_file_paths:
2030 - compare-type: REG_EXP
2033 # github_included_regions MUST match gerrit_trigger_file_paths
2034 github_included_regions:
2037 #####################
2038 # Job Configuration #
2039 #####################
2041 project-type: freestyle
2042 node: "{build-node}"
2044 disabled: "{disable-job}"
2047 - lf-infra-properties:
2048 build-days-to-keep: "{build-days-to-keep}"
2051 - lf-infra-parameters:
2052 project: "{project}"
2055 - lf-puppet-parameters:
2056 puppet-lint-version: "{puppet-lint-version}"
2059 - lf-infra-wrappers:
2060 build-timeout: "{build-timeout}"
2061 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2064 - shell: !include-raw-escape: ../shell/puppet-lint.sh
2070 name: "{project-name}-puppet-verify"
2071 id: gerrit-puppet-verify
2072 <<: *lf_puppet_verify
2074 ######################
2075 # Default parameters #
2076 ######################
2078 gerrit_verify_triggers:
2079 - patchset-created-event:
2080 exclude-drafts: true
2081 exclude-trivial-rebase: false
2082 exclude-no-code-change: false
2083 - draft-published-event
2084 - comment-added-contains-event:
2085 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2087 #####################
2088 # Job Configuration #
2089 #####################
2092 - lf-infra-gerrit-scm:
2093 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2094 git-url: "{git-url}"
2095 refspec: "$GERRIT_REFSPEC"
2096 branch: "$GERRIT_BRANCH"
2097 submodule-recursive: "{submodule-recursive}"
2098 submodule-timeout: "{submodule-timeout}"
2099 submodule-disable: "{submodule-disable}"
2100 choosing-strategy: gerrit
2104 server-name: "{gerrit-server-name}"
2105 trigger-on: "{obj:gerrit_verify_triggers}"
2107 - project-compare-type: ANT
2108 project-pattern: "{project}"
2110 - branch-compare-type: ANT
2111 branch-pattern: "**/{branch}"
2112 file-paths: "{obj:gerrit_trigger_file_paths}"
2115 name: "{project-name}-puppet-verify"
2116 id: github-puppet-verify
2117 <<: *lf_puppet_verify
2119 #####################
2120 # Job Configuration #
2121 #####################
2124 - lf-infra-properties:
2125 project: "{project}"
2126 build-days-to-keep: 7
2128 url: "{github-url}/{github-org}/{project}"
2131 - lf-infra-github-scm:
2132 url: "{git-clone-url}{github-org}/{project}"
2133 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2135 submodule-recursive: "{submodule-recursive}"
2136 submodule-timeout: "{submodule-timeout}"
2137 submodule-disable: "{submodule-disable}"
2138 choosing-strategy: default
2139 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2142 - github-pull-request:
2143 trigger-phrase: "^(recheck|reverify)$"
2144 only-trigger-phrase: false
2145 status-context: "Puppet Verify"
2148 included-regions: "{obj:github_included_regions}"
2149 white-list-target-branches:
2156 - _lf_sonar_common: &lf_sonar_common
2157 name: lf-sonar-common
2159 ######################
2160 # Default parameters #
2161 ######################
2163 archive-artifacts: >
2166 branch: master # Sonar should always be run on master branch
2167 build-days-to-keep: 7
2169 cron: "H H * * *" # run daily
2171 git-url: "$GIT_URL/$PROJECT"
2172 github-url: "https://github.com"
2173 sonarcloud-java-version: openjdk17
2175 submodule-recursive: true
2176 submodule-timeout: 10
2177 submodule-disable: false
2181 sonar-project-file: "sonar-project.properties"
2182 sonar-properties: ""
2184 sonar-additional-args: ""
2186 gerrit_trigger_file_paths:
2187 - compare-type: REG_EXP
2190 # github_included_regions MUST match gerrit_trigger_file_paths
2191 github_included_regions:
2194 #####################
2195 # Job Configuration #
2196 #####################
2198 project-type: freestyle
2199 node: "{build-node}"
2202 - lf-infra-properties:
2203 build-days-to-keep: "{build-days-to-keep}"
2206 - lf-infra-wrappers:
2207 build-timeout: "{build-timeout}"
2208 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2210 disabled: "{disable-job}"
2213 - lf-infra-parameters:
2214 project: "{project}"
2218 name: ARCHIVE_ARTIFACTS
2219 default: "{archive-artifacts}"
2220 description: Artifacts to archive to the logs server.
2225 - _lf_sonar_builders: &lf_sonar_builders
2226 name: lf-sonar-builders
2228 - lf-infra-pre-build
2229 - lf-update-java-alternatives:
2230 java-version: "{sonarcloud-java-version}"
2232 sonar-task: "{sonar-task}"
2233 sonar-project-file: "{sonar-project-file}"
2234 sonar-properties: "{sonar-properties}"
2235 sonar-java-opts: "{sonar-java-opts}"
2236 sonar-additional-args: "{sonar-additional-args}"
2238 - _lf_sonar_builders_prescan: &lf_sonar_builders_prescan
2239 name: lf-sonar-builders-prescan
2241 - lf-infra-pre-build
2242 - lf-update-java-alternatives:
2243 java-version: "{sonarcloud-java-version}"
2244 - lf-infra-sonar-with-prescan:
2245 sonar-task: "{sonar-task}"
2246 sonar-project-file: "{sonar-project-file}"
2247 sonar-properties: "{sonar-properties}"
2248 sonar-java-opts: "{sonar-java-opts}"
2249 sonar-additional-args: "{sonar-additional-args}"
2251 - _lf_sonar_builders_prescan_script: &lf_sonar_builders_prescan_script
2252 name: lf-sonar-builders-prescan-script
2254 - lf-infra-pre-build
2255 - lf-update-java-alternatives:
2256 java-version: "{sonarcloud-java-version}"
2257 - shell: "{sonar-prescan-script}"
2259 sonar-task: "{sonar-task}"
2260 sonar-project-file: "{sonar-project-file}"
2261 sonar-properties: "{sonar-properties}"
2262 sonar-java-opts: "{sonar-java-opts}"
2263 sonar-additional-args: "{sonar-additional-args}"
2265 - _lf_sonar_gerrit_common: &lf_sonar_gerrit_common
2266 name: lf-sonar-gerrit-common
2267 gerrit_sonar_triggers:
2268 - comment-added-contains-event:
2269 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
2272 - lf-infra-gerrit-scm:
2273 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2274 git-url: "{git-url}"
2275 refspec: $GERRIT_REFSPEC
2276 branch: $GERRIT_BRANCH
2277 submodule-recursive: "{submodule-recursive}"
2278 submodule-timeout: "{submodule-timeout}"
2279 submodule-disable: "{submodule-disable}"
2280 choosing-strategy: default
2283 - timed: "{obj:cron}"
2285 server-name: "{gerrit-server-name}"
2286 trigger-on: "{obj:gerrit_sonar_triggers}"
2288 - project-compare-type: "ANT"
2289 project-pattern: "{project}"
2291 - branch-compare-type: "ANT"
2292 branch-pattern: "**/{branch}"
2293 file-paths: "{obj:gerrit_trigger_file_paths}"
2300 - _lf_sonar_github_common: &lf_sonar_github_common
2301 name: lf-sonar-github-common
2303 - lf-infra-properties:
2304 build-days-to-keep: "{build-days-to-keep}"
2306 url: "{github-url}/{github-org}/{project}"
2309 - lf-infra-github-scm:
2310 url: "{git-clone-url}{github-org}/{project}"
2311 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2313 submodule-recursive: "{submodule-recursive}"
2314 submodule-timeout: "{submodule-timeout}"
2315 submodule-disable: "{submodule-disable}"
2316 choosing-strategy: default
2317 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2320 - github-pull-request:
2321 trigger-phrase: "^run-sonar$"
2322 only-trigger-phrase: false
2323 status-context: "Python Sonar"
2326 white-list-target-branches:
2328 included-regions: "{obj:github_included_regions}"
2331 name: "{project-name}-sonar"
2333 <<: *lf_sonar_common
2334 # yamllint disable-line rule:key-duplicates
2335 <<: *lf_sonar_builders
2336 # yamllint disable-line rule:key-duplicates
2337 <<: *lf_sonar_gerrit_common
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_github_common
2349 name: "{project-name}-sonar-prescan"
2350 id: gerrit-sonar-prescan
2351 <<: *lf_sonar_common
2352 # yamllint disable-line rule:key-duplicates
2353 <<: *lf_sonar_builders_prescan
2354 # yamllint disable-line rule:key-duplicates
2355 <<: *lf_sonar_gerrit_common
2358 name: "{project-name}-sonar-prescan"
2359 id: github-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_github_common
2367 name: "{project-name}-sonar-prescan-script"
2368 id: gerrit-sonar-prescan-script
2369 <<: *lf_sonar_common
2370 # yamllint disable-line rule:key-duplicates
2371 <<: *lf_sonar_builders_prescan_script
2372 # yamllint disable-line rule:key-duplicates
2373 <<: *lf_sonar_gerrit_common
2376 name: "{project-name}-sonar-prescan-script"
2377 id: github-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_github_common
2388 - _lf_pipelines_common: &lf_pipelines_common
2389 name: lf-pipelines-common
2391 ######################
2392 # Default parameters #
2393 ######################
2399 submodule-recursive: true
2400 submodule-timeout: 10
2401 submodule-disable: false
2403 - _lf_global_pipelines_common: &lf_global_pipelines_common
2404 name: lf-global-pipelines-common
2406 # All jobs are triggering from the same source
2407 git-url: https://gerrit.linuxfoundation.org/infra/releng/pipelines
2410 server-name: "lf-releng"
2412 - patchset-created-event:
2413 exclude-drafts: true
2414 exclude-trivial-rebase: false
2415 exclude-no-code-change: false
2416 - draft-published-event
2417 - comment-added-contains-event:
2418 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2420 - project-compare-type: ANT
2421 project-pattern: "releng/pipelines"
2423 - branch-compare-type: ANT
2424 branch-pattern: "**/master"
2427 name: "lf-pipelines-verify"
2428 id: lf-pipelines-verify
2429 <<: *lf_pipelines_common
2430 <<: *lf_global_pipelines_common
2432 project-type: pipeline
2435 - lf-infra-gerrit-scm:
2436 git-url: "{git-url}"
2437 refspec: "$GERRIT_REFSPEC"
2438 branch: "$GERRIT_BRANCH"
2439 submodule-recursive: "{submodule-recursive}"
2440 submodule-timeout: "{submodule-timeout}"
2441 submodule-disable: "{submodule-disable}"
2442 choosing-strategy: gerrit
2443 jenkins-ssh-credential: "{jenkins-ssh-credential}"