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_whitelist}"
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_whitelist}"
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
1417 name: "{project-name}-openstack-cron"
1418 id: gerrit-openstack-cron
1419 <<: *lf_openstack_cron
1422 - lf-infra-gerrit-scm:
1423 git-url: "{git-url}"
1424 refspec: "refs/heads/{branch}"
1426 submodule-recursive: true
1427 submodule-timeout: "{submodule-timeout}"
1428 submodule-disable: "{submodule-disable}"
1429 choosing-strategy: default
1430 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1433 name: "{project-name}-openstack-cron"
1434 id: github-openstack-cron
1435 <<: *lf_openstack_cron
1438 - lf-infra-github-scm:
1439 url: "{git-clone-url}{github-org}/{project}"
1441 branch: "refs/heads/{branch}"
1442 submodule-recursive: true
1443 submodule-timeout: "{submodule-timeout}"
1444 submodule-disable: "{submodule-disable}"
1445 choosing-strategy: default
1446 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1452 - lf_packer_merge: &lf_packer_merge
1453 name: lf-packer-merge
1455 ######################
1456 # Default parameters #
1457 ######################
1460 openstack-cloud: vex
1461 update-cloud-image: false
1463 #####################
1464 # Job Configuration #
1465 #####################
1468 - lf-infra-parameters:
1469 project: "{project}"
1472 - lf-packer-parameters:
1473 packer-version: "{packer-version}"
1475 name: UPDATE_CLOUD_IMAGE
1476 default: "{update-cloud-image}"
1477 description: "Update new built image on the cloud."
1480 - lf-infra-packer-build:
1481 openstack: "{openstack}"
1482 openstack-cloud: "{openstack-cloud}"
1483 packer-builder: "{packer-builder}"
1484 packer-cloud-settings: "{packer-cloud-settings}"
1485 packer-version: "{packer-version}"
1486 platform: "{platforms}"
1487 template: "{templates}"
1488 update-cloud-image: "{update-cloud-image}"
1489 - description-setter:
1490 regexp: '(\s+.*)(ZZCI\s+.*\d+-\d+\.\d+)'
1491 description: 'Image: \2'
1493 # - project: '{project-name}-openstack-update-cloud-image'
1495 # predefined-parameters: |
1496 # GERRIT_BRANCH=$GERRIT_BRANCH
1497 # GERRIT_PROJECT=$GERRIT_PROJECT
1498 # GERRIT_REFSPEC=$GERRIT_REFSPEC
1499 # NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1500 # property-file: variables.jenkins-trigger
1501 # property-file-fail-on-missing: true
1505 - trigger-parameterized-builds:
1506 - project: "{project-name}-openstack-update-cloud-image"
1507 condition: UNSTABLE_OR_BETTER
1508 predefined-parameters: |
1509 NEW_IMAGE_NAME=$NEW_IMAGE_NAME
1510 property-file: variables.jenkins-trigger
1511 fail-on-missing: true
1514 name: "{project-name}-packer-merge-{platforms}-{templates}"
1515 id: gerrit-packer-merge
1516 <<: *lf_packer_common
1517 # yamllint disable-line rule:key-duplicates
1518 <<: *lf_packer_merge
1520 ######################
1521 # Default parameters #
1522 ######################
1524 git-url: "$GIT_URL/$GERRIT_PROJECT"
1526 gerrit_merge_triggers:
1527 - change-merged-event
1528 - comment-added-contains-event:
1529 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1531 #####################
1532 # Job Configuration #
1533 #####################
1536 - lf-infra-gerrit-scm:
1537 git-url: "{git-url}"
1538 refspec: "$GERRIT_REFSPEC"
1539 branch: "$GERRIT_BRANCH"
1540 submodule-recursive: "{submodule-recursive}"
1541 submodule-timeout: "{submodule-timeout}"
1542 submodule-disable: "{submodule-disable}"
1543 choosing-strategy: default
1544 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1547 - timed: "{obj:cron}"
1549 server-name: "{gerrit-server-name}"
1550 trigger-on: "{obj:gerrit_merge_triggers}"
1552 - project-compare-type: ANT
1553 project-pattern: "{project}"
1555 - branch-compare-type: ANT
1556 branch-pattern: "**/{branch}"
1558 - compare-type: REG_EXP
1559 pattern: 'packer\/provision\/.*\.sh'
1560 - compare-type: REG_EXP
1561 pattern: 'packer\/provision\/.*\.bat'
1562 - compare-type: REG_EXP
1563 pattern: 'packer\/provision\/.*\.ps1'
1564 - compare-type: REG_EXP
1565 pattern: 'packer\/provision\/{templates}\.yaml'
1566 - compare-type: REG_EXP
1567 pattern: 'packer\/provision\/local-{templates}\.yaml'
1568 - compare-type: REG_EXP
1569 pattern: 'packer\/templates\/{templates}\.json'
1570 - compare-type: REG_EXP
1571 pattern: 'packer\/vars\/{platforms}\.json'
1574 name: "{project-name}-packer-merge-{platforms}-{templates}"
1575 id: github-packer-merge
1576 <<: *lf_packer_common
1577 # yamllint disable-line rule:key-duplicates
1578 <<: *lf_packer_merge
1580 #####################
1581 # Job Configuration #
1582 #####################
1585 - lf-infra-properties:
1586 project: "{project}"
1587 build-days-to-keep: 7
1589 url: "{github-url}/{github-org}/{project}"
1592 - lf-infra-github-scm:
1593 url: "{git-clone-url}{github-org}/{project}"
1595 +refs/heads/*:refs/remotes/origin/*
1596 +refs/pull/*:refs/remotes/origin/pr/*
1597 branch: "$GERRIT_REFSPEC"
1598 submodule-recursive: "{submodule-recursive}"
1599 submodule-timeout: "{submodule-timeout}"
1600 submodule-disable: "{submodule-disable}"
1601 choosing-strategy: default
1602 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1605 - timed: "{obj:cron}"
1610 - github-pull-request:
1611 trigger-phrase: "^remerge$"
1612 only-trigger-phrase: true
1613 status-context: "Packer {platforms}-{templates} Merge"
1618 white-list: "{obj:github_pr_whitelist}"
1619 admin-list: "{obj:github_pr_admin_list}"
1620 # included-regions MUST match Gerrit Trigger file-paths
1622 - 'packer\/provision\/.*\.sh'
1623 - 'packer\/provision\/.*\.bat'
1624 - 'packer\/provision\/.*\.ps1'
1625 - 'packer\/provision\/{templates}\.yaml'
1626 - 'packer\/provision\/local-{templates}\.yaml'
1627 - 'packer\/templates\/{templates}\.json'
1628 - 'packer\/vars\/{platforms}\.json'
1629 white-list-target-branches:
1633 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1634 id: gerrit-packer-verify-build
1635 <<: *lf_packer_common
1636 # yamllint disable-line rule:key-duplicates
1637 <<: *lf_packer_merge
1639 ######################
1640 # Default parameters #
1641 ######################
1643 git-url: "$GIT_URL/$GERRIT_PROJECT"
1645 gerrit_verify_triggers:
1646 - comment-added-contains-event:
1647 comment-contains-value: '^Patch Set\s+\d+:\s+(verify-build|packer-build)\s*$'
1649 #####################
1650 # Job Configuration #
1651 #####################
1654 - lf-infra-gerrit-scm:
1655 git-url: "{git-url}"
1656 refspec: "$GERRIT_REFSPEC"
1657 branch: "$GERRIT_BRANCH"
1658 submodule-recursive: "{submodule-recursive}"
1659 submodule-timeout: "{submodule-timeout}"
1660 submodule-disable: "{submodule-disable}"
1661 choosing-strategy: gerrit
1662 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1666 server-name: "{gerrit-server-name}"
1667 trigger-on: "{obj:gerrit_verify_triggers}"
1669 - project-compare-type: ANT
1670 project-pattern: "{project}"
1672 - branch-compare-type: ANT
1673 branch-pattern: "**/{branch}"
1675 - compare-type: REG_EXP
1676 pattern: 'packer\/provision\/.*\.sh'
1677 - compare-type: REG_EXP
1678 pattern: 'packer\/provision\/.*\.bat'
1679 - compare-type: REG_EXP
1680 pattern: 'packer\/provision\/.*\.ps1'
1681 - compare-type: REG_EXP
1682 pattern: 'packer\/provision\/{templates}\.yaml'
1683 - compare-type: REG_EXP
1684 pattern: 'packer\/provision\/local-{templates}\.yaml'
1685 - compare-type: REG_EXP
1686 pattern: 'packer\/templates\/{templates}\.json'
1687 - compare-type: REG_EXP
1688 pattern: 'packer\/vars\/{platforms}\.json'
1691 name: "{project-name}-packer-verify-build-{platforms}-{templates}"
1692 id: github-packer-verify-build
1693 <<: *lf_packer_common
1694 # yamllint disable-line rule:key-duplicates
1695 <<: *lf_packer_merge
1697 #####################
1698 # Job Configuration #
1699 #####################
1702 - lf-infra-properties:
1703 project: "{project}"
1704 build-days-to-keep: 7
1706 url: "{github-url}/{github-org}/{project}"
1709 - lf-infra-github-scm:
1710 url: "{git-clone-url}{github-org}/{project}"
1711 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1713 submodule-recursive: "{submodule-recursive}"
1714 submodule-timeout: "{submodule-timeout}"
1715 submodule-disable: "{submodule-disable}"
1716 choosing-strategy: default
1717 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1720 - github-pull-request:
1721 trigger-phrase: "^(verify-build|packer-build)$"
1722 only-trigger-phrase: true
1723 status-context: "Packer {platforms}-{templates} Verify Build"
1726 white-list-target-branches:
1728 # included-regions MUST match Gerrit Trigger file-paths
1730 - 'packer\/provision\/.*\.sh'
1731 - 'packer\/provision\/.*\.bat'
1732 - 'packer\/provision\/.*\.ps1'
1733 - 'packer\/provision\/{templates}\.yaml'
1734 - 'packer\/provision\/local-{templates}\.yaml'
1735 - 'packer\/templates\/{templates}\.json'
1736 - 'packer\/vars\/{platforms}\.json'
1742 - lf_packer_verify: &lf_packer_verify
1743 name: lf-packer-verify
1745 ######################
1746 # Default parameters #
1747 ######################
1751 openstack-cloud: vex
1753 gerrit_verify_triggers:
1754 - patchset-created-event:
1755 exclude-drafts: true
1756 exclude-trivial-rebase: false
1757 exclude-no-code-change: false
1758 - draft-published-event
1759 - comment-added-contains-event:
1760 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1762 gerrit_trigger_file_paths:
1763 - compare-type: REG_EXP
1764 pattern: 'packer\/.*'
1766 # github_included_regions MUST match gerrit_trigger_file_paths
1767 github_included_regions:
1770 #####################
1771 # Job Configuration #
1772 #####################
1777 - lf-infra-packer-validate:
1778 openstack: "{openstack}"
1779 openstack-cloud: "{openstack-cloud}"
1780 packer-cloud-settings: "{packer-cloud-settings}"
1781 packer-version: "{packer-version}"
1784 name: "{project-name}-packer-verify"
1785 id: gerrit-packer-verify
1786 <<: *lf_packer_common
1787 # yamllint disable-line rule:key-duplicates
1788 <<: *lf_packer_verify
1790 ######################
1791 # Default parameters #
1792 ######################
1794 git-url: "$GIT_URL/$GERRIT_PROJECT"
1796 #####################
1797 # Job Configuration #
1798 #####################
1801 - lf-infra-gerrit-scm:
1802 git-url: "{git-url}"
1803 refspec: "$GERRIT_REFSPEC"
1804 branch: "$GERRIT_BRANCH"
1805 submodule-recursive: "{submodule-recursive}"
1806 submodule-timeout: "{submodule-timeout}"
1807 submodule-disable: "{submodule-disable}"
1808 choosing-strategy: gerrit
1809 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1813 server-name: "{gerrit-server-name}"
1814 trigger-on: "{obj:gerrit_verify_triggers}"
1816 - project-compare-type: ANT
1817 project-pattern: "{project}"
1819 - branch-compare-type: ANT
1820 branch-pattern: "**/{branch}"
1821 file-paths: "{obj:gerrit_trigger_file_paths}"
1824 name: "{project-name}-packer-verify"
1825 id: github-packer-verify
1826 <<: *lf_packer_common
1827 # yamllint disable-line rule:key-duplicates
1828 <<: *lf_packer_verify
1830 #####################
1831 # Job Configuration #
1832 #####################
1835 - lf-infra-properties:
1836 project: "{project}"
1837 build-days-to-keep: 7
1839 url: "{github-url}/{github-org}/{project}"
1842 - lf-infra-github-scm:
1843 url: "{git-clone-url}{github-org}/{project}"
1844 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
1846 submodule-recursive: "{submodule-recursive}"
1847 submodule-timeout: "{submodule-timeout}"
1848 submodule-disable: "{submodule-disable}"
1849 choosing-strategy: default
1850 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1853 - github-pull-request:
1854 trigger-phrase: "^(recheck|reverify)$"
1855 only-trigger-phrase: false
1856 status-context: "Packer Verify"
1859 included-regions: "{obj:github_included_regions}"
1860 white-list-target-branches:
1863 ################################
1864 # Openstack Update Cloud Image #
1865 ################################
1867 - lf_openstack_cron: &lf_openstack_update_cloud_image
1868 name: lf-openstack-update-cloud-image
1870 ######################
1871 # Default parameters #
1872 ######################
1875 build-days-to-keep: 7
1879 git-url: "$GIT_URL/$PROJECT"
1880 github-url: "https://github.com"
1881 new-image-name: "all"
1882 openstack-cloud: vex
1884 submodule-timeout: 10
1885 submodule-disable: false
1886 update-cloud-image: false
1888 #####################
1889 # Job Configuration #
1890 #####################
1892 project-type: freestyle
1893 node: "{build-node}"
1895 disabled: "{disable-job}"
1898 - lf-infra-properties:
1899 build-days-to-keep: "{build-days-to-keep}"
1902 - lf-infra-parameters:
1903 project: "{project}"
1907 name: NEW_IMAGE_NAME
1908 default: "{new-image-name}"
1909 description: "Name of cloud image to update in Jenkins"
1912 - lf-infra-wrappers:
1913 build-timeout: "{build-timeout}"
1914 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1915 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1916 - config-file-provider:
1918 - file-id: clouds-yaml
1919 target: "$HOME/.config/openstack/clouds.yaml"
1921 target: "$HOME/.npmrc"
1923 target: "$HOME/.config/pip/pip.conf"
1926 - lf-infra-pre-build
1928 properties-content: |
1929 OS_CLOUD={openstack-cloud}
1932 echo "Extract the image type for commit message"
1933 # echo IMAGE_TYPE=${{NEW_IMAGE_NAME% -*}} >> image-type.txt
1934 IMAGE_TYPE=$(echo ${{NEW_IMAGE_NAME}} | tr -d "\'\"\ " | awk -F- '{{ print $2 " " $3 " " $4 }}')
1935 echo IMAGE_TYPE=${{IMAGE_TYPE}} >> image-type.txt
1938 properties-file: "image-type.txt"
1939 - lf-infra-update-packer-images
1940 - lf-infra-push-gerrit-patch:
1941 project: "{project}"
1942 gerrit-user: "{gerrit-user}"
1943 gerrit-host: "{gerrit-host}"
1944 gerrit-topic: "{gerrit-topic}"
1945 gerrit-commit-message: "Update cloud image $IMAGE_TYPE"
1946 reviewers-email: "{reviewers-email}"
1952 name: "{project-name}-openstack-update-cloud-image"
1953 id: gerrit-openstack-update-cloud-image
1954 <<: *lf_openstack_update_cloud_image
1956 ######################
1957 # Default parameters #
1958 ######################
1960 git-url: "$GIT_URL/$GERRIT_PROJECT"
1962 #####################
1963 # Job Configuration #
1964 #####################
1967 - lf-infra-gerrit-scm:
1968 git-url: "{git-url}"
1969 refspec: "$GERRIT_REFSPEC"
1970 branch: "$GERRIT_BRANCH"
1971 submodule-recursive: false
1972 submodule-timeout: "{submodule-timeout}"
1973 submodule-disable: "{submodule-disable}"
1974 choosing-strategy: gerrit
1975 jenkins-ssh-credential: "{jenkins-ssh-credential}"
1978 - timed: "{obj:cron}"
1984 - lf_puppet_verify: &lf_puppet_verify
1985 name: lf-puppet-verify
1987 ######################
1988 # Default parameters #
1989 ######################
1992 build-days-to-keep: 7
1995 git-url: "$GIT_URL/$GERRIT_PROJECT"
1996 github-url: "https://github.com"
1999 puppet-lint-version: 2.3.6
2001 submodule-recursive: true
2002 submodule-timeout: 10
2003 submodule-disable: false
2005 gerrit_trigger_file_paths:
2006 - compare-type: REG_EXP
2009 # github_included_regions MUST match gerrit_trigger_file_paths
2010 github_included_regions:
2013 #####################
2014 # Job Configuration #
2015 #####################
2017 project-type: freestyle
2018 node: "{build-node}"
2020 disabled: "{disable-job}"
2023 - lf-infra-properties:
2024 build-days-to-keep: "{build-days-to-keep}"
2027 - lf-infra-parameters:
2028 project: "{project}"
2031 - lf-puppet-parameters:
2032 puppet-lint-version: "{puppet-lint-version}"
2035 - lf-infra-wrappers:
2036 build-timeout: "{build-timeout}"
2037 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2040 - shell: !include-raw-escape: ../shell/puppet-lint.sh
2046 name: "{project-name}-puppet-verify"
2047 id: gerrit-puppet-verify
2048 <<: *lf_puppet_verify
2050 ######################
2051 # Default parameters #
2052 ######################
2054 gerrit_verify_triggers:
2055 - patchset-created-event:
2056 exclude-drafts: true
2057 exclude-trivial-rebase: false
2058 exclude-no-code-change: false
2059 - draft-published-event
2060 - comment-added-contains-event:
2061 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2063 #####################
2064 # Job Configuration #
2065 #####################
2068 - lf-infra-gerrit-scm:
2069 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2070 git-url: "{git-url}"
2071 refspec: "$GERRIT_REFSPEC"
2072 branch: "$GERRIT_BRANCH"
2073 submodule-recursive: "{submodule-recursive}"
2074 submodule-timeout: "{submodule-timeout}"
2075 submodule-disable: "{submodule-disable}"
2076 choosing-strategy: gerrit
2080 server-name: "{gerrit-server-name}"
2081 trigger-on: "{obj:gerrit_verify_triggers}"
2083 - project-compare-type: ANT
2084 project-pattern: "{project}"
2086 - branch-compare-type: ANT
2087 branch-pattern: "**/{branch}"
2088 file-paths: "{obj:gerrit_trigger_file_paths}"
2091 name: "{project-name}-puppet-verify"
2092 id: github-puppet-verify
2093 <<: *lf_puppet_verify
2095 #####################
2096 # Job Configuration #
2097 #####################
2100 - lf-infra-properties:
2101 project: "{project}"
2102 build-days-to-keep: 7
2104 url: "{github-url}/{github-org}/{project}"
2107 - lf-infra-github-scm:
2108 url: "{git-clone-url}{github-org}/{project}"
2109 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2111 submodule-recursive: "{submodule-recursive}"
2112 submodule-timeout: "{submodule-timeout}"
2113 submodule-disable: "{submodule-disable}"
2114 choosing-strategy: default
2115 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2118 - github-pull-request:
2119 trigger-phrase: "^(recheck|reverify)$"
2120 only-trigger-phrase: false
2121 status-context: "Puppet Verify"
2124 included-regions: "{obj:github_included_regions}"
2125 white-list-target-branches:
2132 - lf_sonar_common: &lf_sonar_common
2133 name: lf-sonar-common
2135 ######################
2136 # Default parameters #
2137 ######################
2139 archive-artifacts: >
2142 branch: master # Sonar should always be run on master branch
2143 build-days-to-keep: 7
2145 cron: "H H * * *" # run daily
2147 git-url: "$GIT_URL/$PROJECT"
2148 github-url: "https://github.com"
2150 submodule-recursive: true
2151 submodule-timeout: 10
2152 submodule-disable: false
2156 sonar-project-file: "sonar-project.properties"
2157 sonar-properties: ""
2159 sonar-additional-args: ""
2161 gerrit_trigger_file_paths:
2162 - compare-type: REG_EXP
2165 # github_included_regions MUST match gerrit_trigger_file_paths
2166 github_included_regions:
2169 #####################
2170 # Job Configuration #
2171 #####################
2173 project-type: freestyle
2174 node: "{build-node}"
2177 - lf-infra-properties:
2178 build-days-to-keep: "{build-days-to-keep}"
2181 - lf-infra-wrappers:
2182 build-timeout: "{build-timeout}"
2183 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2185 disabled: "{disable-job}"
2188 - lf-infra-parameters:
2189 project: "{project}"
2193 name: ARCHIVE_ARTIFACTS
2194 default: "{archive-artifacts}"
2195 description: Artifacts to archive to the logs server.
2200 - lf_sonar_builders: &lf_sonar_builders
2201 name: lf-sonar-builders
2203 - lf-infra-pre-build
2205 sonar-task: "{sonar-task}"
2206 sonar-project-file: "{sonar-project-file}"
2207 sonar-properties: "{sonar-properties}"
2208 sonar-java-opts: "{sonar-java-opts}"
2209 sonar-additional-args: "{sonar-additional-args}"
2211 - lf_sonar_builders_prescan: &lf_sonar_builders_prescan
2212 name: lf-sonar-builders-prescan
2214 - lf-infra-pre-build
2215 - lf-infra-sonar-with-prescan:
2216 sonar-task: "{sonar-task}"
2217 sonar-project-file: "{sonar-project-file}"
2218 sonar-properties: "{sonar-properties}"
2219 sonar-java-opts: "{sonar-java-opts}"
2220 sonar-additional-args: "{sonar-additional-args}"
2222 - lf_sonar_builders_prescan_script: &lf_sonar_builders_prescan_script
2223 name: lf-sonar-builders-prescan-script
2225 - lf-infra-pre-build
2226 - shell: "{sonar-prescan-script}"
2228 sonar-task: "{sonar-task}"
2229 sonar-project-file: "{sonar-project-file}"
2230 sonar-properties: "{sonar-properties}"
2231 sonar-java-opts: "{sonar-java-opts}"
2232 sonar-additional-args: "{sonar-additional-args}"
2234 - lf_sonar_gerrit_common: &lf_sonar_gerrit_common
2235 name: lf-sonar-gerrit-common
2236 gerrit_sonar_triggers:
2237 - comment-added-contains-event:
2238 comment-contains-value: '^Patch Set\s+\d+:\s+run-sonar\s*$'
2241 - lf-infra-gerrit-scm:
2242 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2243 git-url: "{git-url}"
2244 refspec: $GERRIT_REFSPEC
2245 branch: $GERRIT_BRANCH
2246 submodule-recursive: "{submodule-recursive}"
2247 submodule-timeout: "{submodule-timeout}"
2248 submodule-disable: "{submodule-disable}"
2249 choosing-strategy: default
2252 - timed: "{obj:cron}"
2254 server-name: "{gerrit-server-name}"
2255 trigger-on: "{obj:gerrit_sonar_triggers}"
2257 - project-compare-type: "ANT"
2258 project-pattern: "{project}"
2260 - branch-compare-type: "ANT"
2261 branch-pattern: "**/{branch}"
2262 file-paths: "{obj:gerrit_trigger_file_paths}"
2269 - lf_sonar_github_common: &lf_sonar_github_common
2270 name: lf-sonar-github-common
2272 - lf-infra-properties:
2273 build-days-to-keep: "{build-days-to-keep}"
2275 url: "{github-url}/{github-org}/{project}"
2278 - lf-infra-github-scm:
2279 url: "{git-clone-url}{github-org}/{project}"
2280 refspec: "+refs/pull/*:refs/remotes/origin/pr/*"
2282 submodule-recursive: "{submodule-recursive}"
2283 submodule-timeout: "{submodule-timeout}"
2284 submodule-disable: "{submodule-disable}"
2285 choosing-strategy: default
2286 jenkins-ssh-credential: "{jenkins-ssh-credential}"
2289 - github-pull-request:
2290 trigger-phrase: "^run-sonar$"
2291 only-trigger-phrase: false
2292 status-context: "Python Sonar"
2295 white-list-target-branches:
2297 included-regions: "{obj:github_included_regions}"
2300 name: "{project-name}-sonar"
2302 <<: *lf_sonar_common
2303 # yamllint disable-line rule:key-duplicates
2304 <<: *lf_sonar_builders
2305 # yamllint disable-line rule:key-duplicates
2306 <<: *lf_sonar_gerrit_common
2309 name: "{project-name}-sonar"
2311 <<: *lf_sonar_common
2312 # yamllint disable-line rule:key-duplicates
2313 <<: *lf_sonar_builders
2314 # yamllint disable-line rule:key-duplicates
2315 <<: *lf_sonar_github_common
2318 name: "{project-name}-sonar-prescan"
2319 id: gerrit-sonar-prescan
2320 <<: *lf_sonar_common
2321 # yamllint disable-line rule:key-duplicates
2322 <<: *lf_sonar_builders_prescan
2323 # yamllint disable-line rule:key-duplicates
2324 <<: *lf_sonar_gerrit_common
2327 name: "{project-name}-sonar-prescan"
2328 id: github-sonar-prescan
2329 <<: *lf_sonar_common
2330 # yamllint disable-line rule:key-duplicates
2331 <<: *lf_sonar_builders_prescan
2332 # yamllint disable-line rule:key-duplicates
2333 <<: *lf_sonar_github_common
2336 name: "{project-name}-sonar-prescan-script"
2337 id: gerrit-sonar-prescan-script
2338 <<: *lf_sonar_common
2339 # yamllint disable-line rule:key-duplicates
2340 <<: *lf_sonar_builders_prescan_script
2341 # yamllint disable-line rule:key-duplicates
2342 <<: *lf_sonar_gerrit_common
2345 name: "{project-name}-sonar-prescan-script"
2346 id: github-sonar-prescan-script
2347 <<: *lf_sonar_common
2348 # yamllint disable-line rule:key-duplicates
2349 <<: *lf_sonar_builders_prescan_script
2350 # yamllint disable-line rule:key-duplicates
2351 <<: *lf_sonar_github_common
2357 - lf_pipelines_common: &lf_pipelines_common
2358 name: lf-pipelines-common
2360 ######################
2361 # Default parameters #
2362 ######################
2368 submodule-recursive: true
2369 submodule-timeout: 10
2370 submodule-disable: false
2372 - lf_global_pipelines_common: &lf_global_pipelines_common
2373 name: lf-global-pipelines-common
2375 # All jobs are triggering from the same source
2376 git-url: https://gerrit.linuxfoundation.org/infra/releng/pipelines
2379 server-name: "lf-releng"
2381 - patchset-created-event:
2382 exclude-drafts: true
2383 exclude-trivial-rebase: false
2384 exclude-no-code-change: false
2385 - draft-published-event
2386 - comment-added-contains-event:
2387 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
2389 - project-compare-type: ANT
2390 project-pattern: "releng/pipelines"
2392 - branch-compare-type: ANT
2393 branch-pattern: "**/master"
2396 name: "lf-pipelines-verify"
2397 id: lf-pipelines-verify
2398 <<: *lf_pipelines_common
2399 <<: *lf_global_pipelines_common
2401 project-type: pipeline
2404 - lf-infra-gerrit-scm:
2405 git-url: "{git-url}"
2406 refspec: "$GERRIT_REFSPEC"
2407 branch: "$GERRIT_BRANCH"
2408 submodule-recursive: "{submodule-recursive}"
2409 submodule-timeout: "{submodule-timeout}"
2410 submodule-disable: "{submodule-disable}"
2411 choosing-strategy: gerrit
2412 jenkins-ssh-credential: "{jenkins-ssh-credential}"