9 - config-file-provider:
12 target: "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
14 - lf_packer: &lf_packer_common
15 name: lf-packer-common
16 # Provide configuration common in packer jobs.
18 ######################
19 # Default parameters #
20 ######################
26 github-url: "https://github.com"
28 submodule-recursive: true
30 submodule-disable: false
31 packer-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-stacks.sh
1383 condition-kind: boolean-expression
1384 condition-expression: "{openstack-server-cleanup}"
1386 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1389 condition-kind: boolean-expression
1390 condition-expression: "{openstack-port-cleanup}"
1392 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1395 condition-kind: boolean-expression
1396 condition-expression: "{openstack-volume-cleanup}"
1398 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1401 condition-kind: boolean-expression
1402 condition-expression: "{openstack-image-protect}"
1404 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1406 condition-kind: boolean-expression
1407 condition-expression: "{openstack-image-cleanup}"
1410 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1411 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1415 - global-jjb-email-notification:
1416 email-recipients: "{failure-notification}"
1417 email-prefix: "{failure-notification-prefix}"
1420 name: "{project-name}-openstack-cron"
1421 id: gerrit-openstack-cron
1422 <<: *lf_openstack_cron
1425 - lf-infra-gerrit-scm:
1426 git-url: "{git-url}"
1427 refspec: "refs/heads/{branch}"
1429 submodule-recursive: true
1430 submodule-timeout: "{submodule-timeout}"
1431 submodule-disable: "{submodule-disable}"
1432 choosing-strategy: default
1433 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1436 name: "{project-name}-openstack-cron"
1437 id: github-openstack-cron
1438 <<: *lf_openstack_cron
1441 - lf-infra-github-scm:
1442 url: "{git-clone-url}{github-org}/{project}"
1444 branch: "refs/heads/{branch}"
1445 submodule-recursive: true
1446 submodule-timeout: "{submodule-timeout}"
1447 submodule-disable: "{submodule-disable}"
1448 choosing-strategy: default
1449 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1455 - lf_packer_merge: &lf_packer_merge
1456 name: lf-packer-merge
1458 ######################
1459 # Default parameters #
1460 ######################
1463 openstack-cloud: vex
1464 update-cloud-image: false
1466 #####################
1467 # Job Configuration #
1468 #####################
1471 - lf-infra-parameters:
1472 project: "{project}"
1475 - lf-packer-parameters:
1476 packer-version: "{packer-version}"
1478 name: UPDATE_CLOUD_IMAGE
1479 default: "{update-cloud-image}"
1480 description: "Update new built image on the cloud."
1483 - lf-infra-packer-build:
1484 openstack: "{openstack}"
1485 openstack-cloud: "{openstack-cloud}"
1486 packer-builder: "{packer-builder}"
1487 packer-cloud-settings: "{packer-cloud-settings}"
1488 packer-version: "{packer-version}"
1489 platform: "{platforms}"
1490 template: "{templates}"
1491 update-cloud-image: "{update-cloud-image}"
1492 - description-setter:
1493 regexp: '(\s+.*)(ZZCI\s+.*\d+-\d+\.\d+)'
1494 description: 'Image: \2'
1498 - trigger-parameterized-builds:
1499 - project: "{project-name}-openstack-update-cloud-image"
1500 condition: UNSTABLE_OR_BETTER
1501 predefined-parameters: |
1502 NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1503 property-file: variables.jenkins-trigger
1504 fail-on-missing: true
1507 name: "{project-name}-packer-merge-{platforms}-{templates}"
1508 id: gerrit-packer-merge
1509 <<: *lf_packer_common
1510 # yamllint disable-line rule:key-duplicates
1511 <<: *lf_packer_merge
1513 ######################
1514 # Default parameters #
1515 ######################
1517 git-url: "$GIT_URL/$GERRIT_PROJECT"
1519 gerrit_merge_triggers:
1520 - change-merged-event
1521 - comment-added-contains-event:
1522 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1524 #####################
1525 # Job Configuration #
1526 #####################
1529 - lf-infra-gerrit-scm:
1530 git-url: "{git-url}"
1531 refspec: "$GERRIT_REFSPEC"
1532 branch: "$GERRIT_BRANCH"
1533 submodule-recursive: "{submodule-recursive}"
1534 submodule-timeout: "{submodule-timeout}"
1535 submodule-disable: "{submodule-disable}"
1536 choosing-strategy: default
1537 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1540 - timed: "{obj:cron}"
1542 server-name: "{gerrit-server-name}"
1543 trigger-on: "{obj:gerrit_merge_triggers}"
1545 - project-compare-type: ANT
1546 project-pattern: "{project}"
1548 - branch-compare-type: ANT
1549 branch-pattern: "**/{branch}"
1551 - compare-type: REG_EXP
1552 pattern: 'packer\/provision\/.*\.sh'
1553 - compare-type: REG_EXP
1554 pattern: 'packer\/provision\/.*\.bat'
1555 - compare-type: REG_EXP
1556 pattern: 'packer\/provision\/.*\.ps1'
1557 - compare-type: REG_EXP
1558 pattern: 'packer\/provision\/{templates}\.yaml'
1559 - compare-type: REG_EXP
1560 pattern: 'packer\/provision\/local-{templates}\.yaml'
1561 - compare-type: REG_EXP
1562 pattern: 'packer\/templates\/{templates}\.json'
1563 - compare-type: REG_EXP
1564 pattern: 'packer\/vars\/{platforms}\.json'
1565 - compare-type: REG_EXP
1566 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1567 - compare-type: REG_EXP
1568 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1569 - compare-type: REG_EXP
1570 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1571 - compare-type: REG_EXP
1572 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1575 name: "{project-name}-packer-merge-{platforms}-{templates}"
1576 id: github-packer-merge
1577 <<: *lf_packer_common
1578 # yamllint disable-line rule:key-duplicates
1579 <<: *lf_packer_merge
1581 #####################
1582 # Job Configuration #
1583 #####################
1586 - lf-infra-properties:
1587 project: "{project}"
1588 build-days-to-keep: 7
1590 url: "{github-url}/{github-org}/{project}"
1593 - lf-infra-github-scm:
1594 url: "{git-clone-url}{github-org}/{project}"
1596 +refs/heads/*:refs/remotes/origin/*
1597 +refs/pull/*:refs/remotes/origin/pr/*
1598 branch: "$GERRIT_REFSPEC"
1599 submodule-recursive: "{submodule-recursive}"
1600 submodule-timeout: "{submodule-timeout}"
1601 submodule-disable: "{submodule-disable}"
1602 choosing-strategy: default
1603 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1606 - timed: "{obj:cron}"
1611 - github-pull-request:
1612 trigger-phrase: "^remerge$"
1613 only-trigger-phrase: true
1614 status-context: "Packer {platforms}-{templates} Merge"
1619 white-list: "{obj:github_pr_allowlist}"
1620 admin-list: "{obj:github_pr_admin_list}"
1621 # included-regions MUST match Gerrit Trigger file-paths
1623 - 'packer\/provision\/.*\.sh'
1624 - 'packer\/provision\/.*\.bat'
1625 - 'packer\/provision\/.*\.ps1'
1626 - 'packer\/provision\/{templates}\.yaml'
1627 - 'packer\/provision\/local-{templates}\.yaml'
1628 - 'packer\/templates\/{templates}\.json'
1629 - 'packer\/vars\/{platforms}\.json'
1630 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1631 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1632 - 'packer\/common-packer\/templates\/{templates}\.json'
1633 - 'packer\/common-packer\/vars\/{platforms}\.json'
1635 white-list-target-branches:
1639 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1640 id: gerrit-packer-verify-build
1641 <<: *lf_packer_common
1642 # yamllint disable-line rule:key-duplicates
1643 <<: *lf_packer_merge
1645 ######################
1646 # Default parameters #
1647 ######################
1649 git-url: "$GIT_URL/$GERRIT_PROJECT"
1651 gerrit_verify_triggers:
1652 - comment-added-contains-event:
1653 comment-contains-value: '^Patch Set\s+\d+:\s+(verify-build|packer-build)\s*$'
1655 #####################
1656 # Job Configuration #
1657 #####################
1660 - lf-infra-gerrit-scm:
1661 git-url: "{git-url}"
1662 refspec: "$GERRIT_REFSPEC"
1663 branch: "$GERRIT_BRANCH"
1664 submodule-recursive: "{submodule-recursive}"
1665 submodule-timeout: "{submodule-timeout}"
1666 submodule-disable: "{submodule-disable}"
1667 choosing-strategy: gerrit
1668 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1672 server-name: "{gerrit-server-name}"
1673 trigger-on: "{obj:gerrit_verify_triggers}"
1675 - project-compare-type: ANT
1676 project-pattern: "{project}"
1678 - branch-compare-type: ANT
1679 branch-pattern: "**/{branch}"
1681 - compare-type: REG_EXP
1682 pattern: 'packer\/provision\/.*\.sh'
1683 - compare-type: REG_EXP
1684 pattern: 'packer\/provision\/.*\.bat'
1685 - compare-type: REG_EXP
1686 pattern: 'packer\/provision\/.*\.ps1'
1687 - compare-type: REG_EXP
1688 pattern: 'packer\/provision\/{templates}\.yaml'
1689 - compare-type: REG_EXP
1690 pattern: 'packer\/provision\/local-{templates}\.yaml'
1691 - compare-type: REG_EXP
1692 pattern: 'packer\/templates\/{templates}\.json'
1693 - compare-type: REG_EXP
1694 pattern: 'packer\/vars\/{platforms}\.json'
1695 - compare-type: REG_EXP
1696 pattern: 'packer\/common-packer\/provision\/{templates}\.yaml'
1697 - compare-type: REG_EXP
1698 pattern: 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1699 - compare-type: REG_EXP
1700 pattern: 'packer\/common-packer\/templates\/{templates}\.json'
1701 - compare-type: REG_EXP
1702 pattern: 'packer\/common-packer\/vars\/{platforms}\.json'
1705 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1706 id: github-packer-verify-build
1707 <<: *lf_packer_common
1708 # yamllint disable-line rule:key-duplicates
1709 <<: *lf_packer_merge
1711 #####################
1712 # Job Configuration #
1713 #####################
1716 - lf-infra-properties:
1717 project: "{project}"
1718 build-days-to-keep: 7
1720 url: "{github-url}/{github-org}/{project}"
1723 - lf-infra-github-scm:
1724 url: "{git-clone-url}{github-org}/{project}"
1725 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1727 submodule-recursive: "{submodule-recursive}"
1728 submodule-timeout: "{submodule-timeout}"
1729 submodule-disable: "{submodule-disable}"
1730 choosing-strategy: default
1731 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1734 - github-pull-request:
1735 trigger-phrase: "^(verify-build|packer-build)$"
1736 only-trigger-phrase: true
1737 status-context: "Packer {platforms}-{templates} Verify Build"
1740 white-list-target-branches:
1742 # included-regions MUST match Gerrit Trigger file-paths
1744 - 'packer\/provision\/.*\.sh'
1745 - 'packer\/provision\/.*\.bat'
1746 - 'packer\/provision\/.*\.ps1'
1747 - 'packer\/provision\/{templates}\.yaml'
1748 - 'packer\/provision\/local-{templates}\.yaml'
1749 - 'packer\/templates\/{templates}\.json'
1750 - 'packer\/vars\/{platforms}\.json'
1751 - 'packer\/common-packer\/vars\/{platforms}\.json'
1752 - 'packer\/common-packer\/provision\/{templates}\.yaml'
1753 - 'packer\/common-packer\/provision\/local-{templates}\.yaml'
1754 - 'packer\/common-packer\/templates\/{templates}\.json'
1760 - lf_packer_verify: &lf_packer_verify
1761 name: lf-packer-verify
1763 ######################
1764 # Default parameters #
1765 ######################
1769 openstack-cloud: vex
1771 gerrit_verify_triggers:
1772 - patchset-created-event:
1773 exclude-drafts: true
1774 exclude-trivial-rebase: false
1775 exclude-no-code-change: false
1776 - draft-published-event
1777 - comment-added-contains-event:
1778 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1780 gerrit_trigger_file_paths:
1781 - compare-type: REG_EXP
1782 pattern: 'packer\/.*'
1784 # github_included_regions MUST match gerrit_trigger_file_paths
1785 github_included_regions:
1788 #####################
1789 # Job Configuration #
1790 #####################
1795 - lf-infra-packer-validate:
1796 openstack: "{openstack}"
1797 openstack-cloud: "{openstack-cloud}"
1798 packer-cloud-settings: "{packer-cloud-settings}"
1799 packer-version: "{packer-version}"
1802 name: "{project-name}-packer-verify"
1803 id: gerrit-packer-verify
1804 <<: *lf_packer_common
1805 # yamllint disable-line rule:key-duplicates
1806 <<: *lf_packer_verify
1808 ######################
1809 # Default parameters #
1810 ######################
1812 git-url: "$GIT_URL/$GERRIT_PROJECT"
1814 #####################
1815 # Job Configuration #
1816 #####################
1819 - lf-infra-gerrit-scm:
1820 git-url: "{git-url}"
1821 refspec: "$GERRIT_REFSPEC"
1822 branch: "$GERRIT_BRANCH"
1823 submodule-recursive: "{submodule-recursive}"
1824 submodule-timeout: "{submodule-timeout}"
1825 submodule-disable: "{submodule-disable}"
1826 choosing-strategy: gerrit
1827 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1831 server-name: "{gerrit-server-name}"
1832 trigger-on: "{obj:gerrit_verify_triggers}"
1834 - project-compare-type: ANT
1835 project-pattern: "{project}"
1837 - branch-compare-type: ANT
1838 branch-pattern: "**/{branch}"
1839 file-paths: "{obj:gerrit_trigger_file_paths}"
1842 name: "{project-name}-packer-verify"
1843 id: github-packer-verify
1844 <<: *lf_packer_common
1845 # yamllint disable-line rule:key-duplicates
1846 <<: *lf_packer_verify
1848 #####################
1849 # Job Configuration #
1850 #####################
1853 - lf-infra-properties:
1854 project: "{project}"
1855 build-days-to-keep: 7
1857 url: "{github-url}/{github-org}/{project}"
1860 - lf-infra-github-scm:
1861 url: "{git-clone-url}{github-org}/{project}"
1862 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1864 submodule-recursive: "{submodule-recursive}"
1865 submodule-timeout: "{submodule-timeout}"
1866 submodule-disable: "{submodule-disable}"
1867 choosing-strategy: default
1868 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1871 - github-pull-request:
1872 trigger-phrase: "^(recheck|reverify)$"
1873 only-trigger-phrase: false
1874 status-context: "Packer Verify"
1877 included-regions: "{obj:github_included_regions}"
1878 white-list-target-branches:
1881 ################################
1882 # Openstack Update Cloud Image #
1883 ################################
1885 - lf_openstack_cron: &lf_openstack_update_cloud_image
1886 name: lf-openstack-update-cloud-image
1888 ######################
1889 # Default parameters #
1890 ######################
1893 build-days-to-keep: 7
1897 git-url: "$GIT_URL/$PROJECT"
1898 github-url: "https://github.com"
1899 new-image-name: "all"
1900 openstack-cloud: vex
1902 submodule-timeout: 10
1903 submodule-disable: false
1904 update-cloud-image: false
1906 #####################
1907 # Job Configuration #
1908 #####################
1910 project-type: freestyle
1911 node: "{build-node}"
1913 disabled: "{disable-job}"
1916 - lf-infra-properties:
1917 build-days-to-keep: "{build-days-to-keep}"
1920 - lf-infra-parameters:
1921 project: "{project}"
1925 name: NEW_IMAGE_NAME
1926 default: "{new-image-name}"
1927 description: "Name of cloud image to update in Jenkins"
1930 - lf-infra-wrappers:
1931 build-timeout: "{build-timeout}"
1932 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1933 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1934 - config-file-provider:
1936 - file-id: clouds-yaml
1937 target: "$HOME/.config/openstack/clouds.yaml"
1939 target: "$HOME/.npmrc"
1941 target: "$HOME/.config/pip/pip.conf"
1944 - lf-infra-pre-build
1946 properties-content: |
1947 OS_CLOUD={openstack-cloud}
1950 echo "Extract the image type for commit message"
1951 # echo IMAGE_TYPE=${{NEW_IMAGE_NAME% -*}} >> image-type.txt
1952 IMAGE_TYPE=$(echo ${{NEW_IMAGE_NAME}} | tr -d "\'\"\ " | awk -F- '{{ print $2 " " $3 " " $4 }}')
1953 echo IMAGE_TYPE=${{IMAGE_TYPE}} >> image-type.txt
1956 properties-file: "image-type.txt"
1957 - lf-infra-update-packer-images
1958 - lf-infra-push-gerrit-patch:
1959 project: "{project}"
1960 gerrit-user: "{gerrit-user}"
1961 gerrit-host: "{gerrit-host}"
1962 gerrit-topic: "{gerrit-topic}"
1963 gerrit-commit-message: "Update cloud image $IMAGE_TYPE"
1964 reviewers-email: "{reviewers-email}"
1970 name: "{project-name}-openstack-update-cloud-image"
1971 id: gerrit-openstack-update-cloud-image
1972 <<: *lf_openstack_update_cloud_image
1974 ######################
1975 # Default parameters #
1976 ######################
1978 git-url: "$GIT_URL/$GERRIT_PROJECT"
1980 #####################
1981 # Job Configuration #
1982 #####################
1985 - lf-infra-gerrit-scm:
1986 git-url: "{git-url}"
1987 refspec: "$GERRIT_REFSPEC"
1988 branch: "$GERRIT_BRANCH"
1989 submodule-recursive: false
1990 submodule-timeout: "{submodule-timeout}"
1991 submodule-disable: "{submodule-disable}"
1992 choosing-strategy: gerrit
1993 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1996 - timed: "{obj:cron}"
2002 - lf_puppet_verify: &lf_puppet_verify
2003 name: lf-puppet-verify
2005 ######################
2006 # Default parameters #
2007 ######################
2010 build-days-to-keep: 7
2013 git-url: "$GIT_URL/$GERRIT_PROJECT"
2014 github-url: "https://github.com"
2017 puppet-lint-version: 2.3.6
2019 submodule-recursive: true
2020 submodule-timeout: 10
2021 submodule-disable: false
2023 gerrit_trigger_file_paths:
2024 - compare-type: REG_EXP
2027 # github_included_regions MUST match gerrit_trigger_file_paths
2028 github_included_regions:
2031 #####################
2032 # Job Configuration #
2033 #####################
2035 project-type: freestyle
2036 node: "{build-node}"
2038 disabled: "{disable-job}"
2041 - lf-infra-properties:
2042 build-days-to-keep: "{build-days-to-keep}"
2045 - lf-infra-parameters:
2046 project: "{project}"
2049 - lf-puppet-parameters:
2050 puppet-lint-version: "{puppet-lint-version}"
2053 - lf-infra-wrappers:
2054 build-timeout: "{build-timeout}"
2055 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2058 - shell: !include-raw-escape: ../shell/puppet-lint.sh
2064 name: "{project-name}-puppet-verify"
2065 id: gerrit-puppet-verify
2066 <<: *lf_puppet_verify
2068 ######################
2069 # Default parameters #
2070 ######################
2072 gerrit_verify_triggers:
2073 - patchset-created-event:
2074 exclude-drafts: true
2075 exclude-trivial-rebase: false
2076 exclude-no-code-change: false
2077 - draft-published-event
2078 - comment-added-contains-event:
2079 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2081 #####################
2082 # Job Configuration #
2083 #####################
2086 - lf-infra-gerrit-scm:
2087 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2088 git-url: "{git-url}"
2089 refspec: "$GERRIT_REFSPEC"
2090 branch: "$GERRIT_BRANCH"
2091 submodule-recursive: "{submodule-recursive}"
2092 submodule-timeout: "{submodule-timeout}"
2093 submodule-disable: "{submodule-disable}"
2094 choosing-strategy: gerrit
2098 server-name: "{gerrit-server-name}"
2099 trigger-on: "{obj:gerrit_verify_triggers}"
2101 - project-compare-type: ANT
2102 project-pattern: "{project}"
2104 - branch-compare-type: ANT
2105 branch-pattern: "**/{branch}"
2106 file-paths: "{obj:gerrit_trigger_file_paths}"
2109 name: "{project-name}-puppet-verify"
2110 id: github-puppet-verify
2111 <<: *lf_puppet_verify
2113 #####################
2114 # Job Configuration #
2115 #####################
2118 - lf-infra-properties:
2119 project: "{project}"
2120 build-days-to-keep: 7
2122 url: "{github-url}/{github-org}/{project}"
2125 - lf-infra-github-scm:
2126 url: "{git-clone-url}{github-org}/{project}"
2127 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2129 submodule-recursive: "{submodule-recursive}"
2130 submodule-timeout: "{submodule-timeout}"
2131 submodule-disable: "{submodule-disable}"
2132 choosing-strategy: default
2133 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2136 - github-pull-request:
2137 trigger-phrase: "^(recheck|reverify)$"
2138 only-trigger-phrase: false
2139 status-context: "Puppet Verify"
2142 included-regions: "{obj:github_included_regions}"
2143 white-list-target-branches:
2150 - lf_sonar_common: &lf_sonar_common
2151 name: lf-sonar-common
2153 ######################
2154 # Default parameters #
2155 ######################
2157 archive-artifacts: >
2160 branch: master # Sonar should always be run on master branch
2161 build-days-to-keep: 7
2163 cron: "H H * * *" # run daily
2165 git-url: "$GIT_URL/$PROJECT"
2166 github-url: "https://github.com"
2167 sonarcloud-java-version: openjdk11
2169 submodule-recursive: true
2170 submodule-timeout: 10
2171 submodule-disable: false
2175 sonar-project-file: "sonar-project.properties"
2176 sonar-properties: ""
2178 sonar-additional-args: ""
2180 gerrit_trigger_file_paths:
2181 - compare-type: REG_EXP
2184 # github_included_regions MUST match gerrit_trigger_file_paths
2185 github_included_regions:
2188 #####################
2189 # Job Configuration #
2190 #####################
2192 project-type: freestyle
2193 node: "{build-node}"
2196 - lf-infra-properties:
2197 build-days-to-keep: "{build-days-to-keep}"
2200 - lf-infra-wrappers:
2201 build-timeout: "{build-timeout}"
2202 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2204 disabled: "{disable-job}"
2207 - lf-infra-parameters:
2208 project: "{project}"
2212 name: ARCHIVE_ARTIFACTS
2213 default: "{archive-artifacts}"
2214 description: Artifacts to archive to the logs server.
2219 - lf_sonar_builders: &lf_sonar_builders
2220 name: lf-sonar-builders
2222 - lf-infra-pre-build
2223 - lf-update-java-alternatives:
2224 java-version: "{sonarcloud-java-version}"
2226 sonar-task: "{sonar-task}"
2227 sonar-project-file: "{sonar-project-file}"
2228 sonar-properties: "{sonar-properties}"
2229 sonar-java-opts: "{sonar-java-opts}"
2230 sonar-additional-args: "{sonar-additional-args}"
2232 - lf_sonar_builders_prescan: &lf_sonar_builders_prescan
2233 name: lf-sonar-builders-prescan
2235 - lf-infra-pre-build
2236 - lf-update-java-alternatives:
2237 java-version: "{sonarcloud-java-version}"
2238 - lf-infra-sonar-with-prescan:
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}"
2245 - lf_sonar_builders_prescan_script: &lf_sonar_builders_prescan_script
2246 name: lf-sonar-builders-prescan-script
2248 - lf-infra-pre-build
2249 - lf-update-java-alternatives:
2250 java-version: "{sonarcloud-java-version}"
2251 - shell: "{sonar-prescan-script}"
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_gerrit_common: &lf_sonar_gerrit_common
2260 name: lf-sonar-gerrit-common
2261 gerrit_sonar_triggers:
2262 - comment-added-contains-event:
2263 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
2266 - lf-infra-gerrit-scm:
2267 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2268 git-url: "{git-url}"
2269 refspec: $GERRIT_REFSPEC
2270 branch: $GERRIT_BRANCH
2271 submodule-recursive: "{submodule-recursive}"
2272 submodule-timeout: "{submodule-timeout}"
2273 submodule-disable: "{submodule-disable}"
2274 choosing-strategy: default
2277 - timed: "{obj:cron}"
2279 server-name: "{gerrit-server-name}"
2280 trigger-on: "{obj:gerrit_sonar_triggers}"
2282 - project-compare-type: "ANT"
2283 project-pattern: "{project}"
2285 - branch-compare-type: "ANT"
2286 branch-pattern: "**/{branch}"
2287 file-paths: "{obj:gerrit_trigger_file_paths}"
2294 - lf_sonar_github_common: &lf_sonar_github_common
2295 name: lf-sonar-github-common
2297 - lf-infra-properties:
2298 build-days-to-keep: "{build-days-to-keep}"
2300 url: "{github-url}/{github-org}/{project}"
2303 - lf-infra-github-scm:
2304 url: "{git-clone-url}{github-org}/{project}"
2305 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2307 submodule-recursive: "{submodule-recursive}"
2308 submodule-timeout: "{submodule-timeout}"
2309 submodule-disable: "{submodule-disable}"
2310 choosing-strategy: default
2311 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2314 - github-pull-request:
2315 trigger-phrase: "^run-sonar$"
2316 only-trigger-phrase: false
2317 status-context: "Python Sonar"
2320 white-list-target-branches:
2322 included-regions: "{obj:github_included_regions}"
2325 name: "{project-name}-sonar"
2327 <<: *lf_sonar_common
2328 # yamllint disable-line rule:key-duplicates
2329 <<: *lf_sonar_builders
2330 # yamllint disable-line rule:key-duplicates
2331 <<: *lf_sonar_gerrit_common
2334 name: "{project-name}-sonar"
2336 <<: *lf_sonar_common
2337 # yamllint disable-line rule:key-duplicates
2338 <<: *lf_sonar_builders
2339 # yamllint disable-line rule:key-duplicates
2340 <<: *lf_sonar_github_common
2343 name: "{project-name}-sonar-prescan"
2344 id: gerrit-sonar-prescan
2345 <<: *lf_sonar_common
2346 # yamllint disable-line rule:key-duplicates
2347 <<: *lf_sonar_builders_prescan
2348 # yamllint disable-line rule:key-duplicates
2349 <<: *lf_sonar_gerrit_common
2352 name: "{project-name}-sonar-prescan"
2353 id: github-sonar-prescan
2354 <<: *lf_sonar_common
2355 # yamllint disable-line rule:key-duplicates
2356 <<: *lf_sonar_builders_prescan
2357 # yamllint disable-line rule:key-duplicates
2358 <<: *lf_sonar_github_common
2361 name: "{project-name}-sonar-prescan-script"
2362 id: gerrit-sonar-prescan-script
2363 <<: *lf_sonar_common
2364 # yamllint disable-line rule:key-duplicates
2365 <<: *lf_sonar_builders_prescan_script
2366 # yamllint disable-line rule:key-duplicates
2367 <<: *lf_sonar_gerrit_common
2370 name: "{project-name}-sonar-prescan-script"
2371 id: github-sonar-prescan-script
2372 <<: *lf_sonar_common
2373 # yamllint disable-line rule:key-duplicates
2374 <<: *lf_sonar_builders_prescan_script
2375 # yamllint disable-line rule:key-duplicates
2376 <<: *lf_sonar_github_common
2382 - lf_pipelines_common: &lf_pipelines_common
2383 name: lf-pipelines-common
2385 ######################
2386 # Default parameters #
2387 ######################
2393 submodule-recursive: true
2394 submodule-timeout: 10
2395 submodule-disable: false
2397 - lf_global_pipelines_common: &lf_global_pipelines_common
2398 name: lf-global-pipelines-common
2400 # All jobs are triggering from the same source
2401 git-url: https://gerrit.linuxfoundation.org/infra/releng/pipelines
2404 server-name: "lf-releng"
2406 - patchset-created-event:
2407 exclude-drafts: true
2408 exclude-trivial-rebase: false
2409 exclude-no-code-change: false
2410 - draft-published-event
2411 - comment-added-contains-event:
2412 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2414 - project-compare-type: ANT
2415 project-pattern: "releng/pipelines"
2417 - branch-compare-type: ANT
2418 branch-pattern: "**/master"
2421 name: "lf-pipelines-verify"
2422 id: lf-pipelines-verify
2423 <<: *lf_pipelines_common
2424 <<: *lf_global_pipelines_common
2426 project-type: pipeline
2429 - lf-infra-gerrit-scm:
2430 git-url: "{git-url}"
2431 refspec: "$GERRIT_REFSPEC"
2432 branch: "$GERRIT_BRANCH"
2433 submodule-recursive: "{submodule-recursive}"
2434 submodule-timeout: "{submodule-timeout}"
2435 submodule-disable: "{submodule-disable}"
2436 choosing-strategy: gerrit
2437 jenkins-ssh-credential: "{jenkins-ssh-credential}"