10 - config-file-provider:
13 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
16 name: lf-infra-jjbini-sandbox
17 # TODO: Consolidate this into jjbini when JJB2.0 is available.
19 - config-file-provider:
21 - file-id: jjbini-sandbox
22 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
24 - lf_packer: &lf_packer_common
25 name: lf-packer-common
26 # Provide configuration common in packer jobs.
28 ######################
29 # Default parameters #
30 ######################
36 github-url: 'https://github.com'
38 submodule-recursive: true
40 submodule-disable: false
41 packer-cloud-settings: packer-cloud-env
48 project-type: freestyle
50 disabled: '{disable-job}'
53 - lf-infra-properties:
58 - lf-infra-parameters:
62 - lf-packer-parameters:
63 packer-version: '{packer-version}'
67 build-timeout: '{build-timeout}'
68 jenkins-ssh-credential: '{jenkins-ssh-credential}'
74 name: lf-infra-jjb-parameters
78 default: '{jjb-version}'
79 description: Jenkins Job Builder version to download and install.
82 default: '{jjb-cache}'
83 description: Jenkins Job Builder cache location.
86 name: lf-packer-parameters
90 default: '{packer-version}'
91 description: Packer version to download and install.
94 name: lf-puppet-parameters
97 name: PUPPET_LINT_VERSION
98 default: '{puppet-lint-version}'
99 description: Puppet-lint version to download and install.
101 - lf_jjb_common: &lf_jjb_common
104 ######################
105 # Default parameters #
106 ######################
111 github-url: 'https://github.com'
112 jjb-cache: '$HOME/.cache/jenkins_jobs'
115 submodule-recursive: true
116 submodule-timeout: 10
117 submodule-disable: false
118 throttle_categories: []
119 throttle-enabled: false
120 throttle-max-per-node: 1
121 throttle-max-total: 0
122 throttle-option: 'project'
124 gerrit_trigger_file_paths:
125 - compare-type: REG_EXP
127 - compare-type: REG_EXP
128 pattern: 'global-jjb'
129 - compare-type: REG_EXP
132 # github_included_regions MUST match gerrit_trigger_file_paths
133 github_included_regions:
138 #####################
139 # Job Configuration #
140 #####################
142 project-type: freestyle
144 disabled: '{disable-job}'
147 - lf-infra-properties:
149 build-days-to-keep: 7
151 categories: '{obj:throttle_categories}'
152 enabled: '{throttle-enabled}'
153 max-per-node: '{throttle-max-per-node}'
154 max-total: '{throttle-max-total}'
155 option: '{throttle-option}'
158 - lf-infra-parameters:
162 - lf-infra-jjb-parameters:
163 jjb-cache: '{jjb-cache}'
164 jjb-version: '{jjb-version}'
168 build-timeout: '{build-timeout}'
169 jenkins-ssh-credential: '{jenkins-ssh-credential}'
174 ######################
175 # Gerrit Branch Lock #
176 ######################
179 name: '{project-name}-gerrit-branch-lock-{stream}'
180 id: gerrit-branch-lock
182 ######################
183 # Default parameters #
184 ######################
188 git-url: '$GIT_URL/$GERRIT_PROJECT'
190 submodule-timeout: 10
191 submodule-disable: false
192 gerrit_merge_triggers:
193 - comment-added-contains-event:
194 comment-contains-value: (un)?lock branch$
196 #####################
197 # Job Configuration #
198 #####################
200 project-type: freestyle
202 disabled: '{disable-job}'
205 - lf-infra-properties:
207 build-days-to-keep: 1
210 - lf-infra-parameters:
218 jenkins-ssh-credential: '{jenkins-ssh-credential}'
221 - lf-infra-gerrit-scm:
225 submodule-recursive: false
226 submodule-timeout: '{submodule-timeout}'
227 submodule-disable: '{submodule-disable}'
228 choosing-strategy: default
229 jenkins-ssh-credential: '{jenkins-ssh-credential}'
233 server-name: '{gerrit-server-name}'
234 trigger-on: '{obj:gerrit_merge_triggers}'
236 - project-compare-type: ANT
237 project-pattern: '{project}'
239 - branch-compare-type: ANT
240 branch-pattern: '**/{branch}'
243 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
249 ##########################################
250 # Jenkins Configuration Management Merge #
251 ##########################################
254 name: lf-jenkins-cfg-clouds
258 properties-content: 'jenkins_silos={jenkins-silos}'
259 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
260 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
263 name: lf-jenkins-cfg-global-vars
267 properties-content: 'jenkins_silos={jenkins-silos}'
268 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
269 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
271 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
272 name: lf-jenkins-cfg-merge
274 ######################
275 # Default parameters #
276 ######################
281 git-url: '$GIT_URL/$GERRIT_PROJECT'
282 github-url: 'https://github.com'
283 jenkins-silos: production sandbox
284 submodule-timeout: 10
285 submodule-disable: false
287 gerrit_merge_triggers:
288 - change-merged-event
289 - comment-added-contains-event:
290 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
292 gerrit_trigger_file_paths:
293 - compare-type: REG_EXP
294 pattern: 'jenkins-config\/.*'
296 # github_included_regions MUST match gerrit_trigger_file_paths
297 github_included_regions:
298 - 'jenkins-config\/.*'
300 #####################
301 # Job Configuration #
302 #####################
304 project-type: freestyle
307 disabled: '{disable-job}'
310 - lf-infra-properties:
312 build-days-to-keep: 1
315 - lf-infra-parameters:
323 jenkins-ssh-credential: '{jenkins-ssh-credential}'
327 - lf-jenkins-cfg-global-vars:
328 jenkins-silos: '{jenkins-silos}'
329 - lf-jenkins-cfg-clouds:
330 jenkins-silos: '{jenkins-silos}'
336 name: '{project-name}-jenkins-cfg-merge'
337 id: gerrit-jenkins-cfg-merge
338 <<: *lf_jenkins_cfg_merge
341 - lf-infra-gerrit-scm:
343 refspec: 'refs/heads/{branch}'
345 submodule-recursive: true
346 submodule-timeout: '{submodule-timeout}'
347 submodule-disable: '{submodule-disable}'
348 choosing-strategy: default
349 jenkins-ssh-credential: '{jenkins-ssh-credential}'
352 - timed: '{obj:cron}'
354 server-name: '{gerrit-server-name}'
355 trigger-on: '{obj:gerrit_merge_triggers}'
357 - project-compare-type: ANT
358 project-pattern: '{project}'
360 - branch-compare-type: ANT
361 branch-pattern: '**/{branch}'
362 file-paths: '{obj:gerrit_trigger_file_paths}'
365 name: '{project-name}-jenkins-cfg-merge'
366 id: github-jenkins-cfg-merge
367 <<: *lf_jenkins_cfg_merge
370 - lf-infra-properties:
372 build-days-to-keep: 1
374 url: '{github-url}/{github-org}/{project}'
377 - lf-infra-github-scm:
378 url: '{git-clone-url}{github-org}/{project}'
380 branch: 'refs/heads/{branch}'
381 submodule-recursive: true
382 submodule-timeout: '{submodule-timeout}'
383 submodule-disable: '{submodule-disable}'
384 choosing-strategy: default
385 jenkins-ssh-credential: '{jenkins-ssh-credential}'
388 - timed: '{obj:cron}'
392 - github-pull-request:
393 trigger-phrase: '^remerge$'
394 only-trigger-phrase: true
395 status-context: 'Jenkins CFG Merge'
400 white-list: '{obj:github_pr_whitelist}'
401 admin-list: '{obj:github_pr_admin_list}'
402 included-regions: '{obj:github_included_regions}'
403 white-list-target-branches:
406 ###########################################
407 # Jenkins Configuration Management Verify #
408 ###########################################
410 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
411 name: lf-jenkins-cfg-verify
413 ######################
414 # Default parameters #
415 ######################
418 build-days-to-keep: 7
420 git-url: '$GIT_URL/$GERRIT_PROJECT'
421 github-url: 'https://github.com'
423 submodule-timeout: 10
424 submodule-disable: false
426 gerrit_verify_triggers:
427 - patchset-created-event:
429 exclude-trivial-rebase: false
430 exclude-no-code-change: false
431 - draft-published-event
432 - comment-added-contains-event:
433 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
435 gerrit_trigger_file_paths:
436 - compare-type: REG_EXP
437 pattern: 'jenkins-config\/.*'
439 # github_included_regions MUST match gerrit_trigger_file_paths
440 github_included_regions:
441 - 'jenkins-config\/.*'
443 #####################
444 # Job Configuration #
445 #####################
447 project-type: freestyle
450 disabled: '{disable-job}'
453 - lf-infra-properties:
455 build-days-to-keep: 1
458 - lf-infra-parameters:
466 jenkins-ssh-credential: '{jenkins-ssh-credential}'
467 - config-file-provider:
468 # Listed after to override openstack-infra-wrappers clouds.yaml
471 - file-id: clouds-yaml
472 target: '$HOME/.config/openstack/clouds.yaml'
474 target: '$HOME/.npmrc'
476 target: '$HOME/.config/pip/pip.conf'
481 properties-content: OS_CLOUD={openstack-cloud}
482 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
488 name: '{project-name}-jenkins-cfg-verify'
489 id: gerrit-jenkins-cfg-verify
490 <<: *lf_jenkins_cfg_verify
493 - lf-infra-gerrit-scm:
495 refspec: '$GERRIT_REFSPEC'
496 branch: '$GERRIT_BRANCH'
497 submodule-recursive: true
498 submodule-timeout: '{submodule-timeout}'
499 submodule-disable: '{submodule-disable}'
500 choosing-strategy: gerrit
501 jenkins-ssh-credential: '{jenkins-ssh-credential}'
505 server-name: '{gerrit-server-name}'
506 trigger-on: '{obj:gerrit_verify_triggers}'
508 - project-compare-type: ANT
509 project-pattern: '{project}'
511 - branch-compare-type: ANT
512 branch-pattern: '**/{branch}'
513 file-paths: '{obj:gerrit_trigger_file_paths}'
516 name: '{project-name}-jenkins-cfg-verify'
517 id: github-jenkins-cfg-verify
518 <<: *lf_jenkins_cfg_verify
522 url: '{github-url}/{github-org}/{project}'
525 - lf-infra-github-scm:
526 url: '{git-clone-url}{github-org}/{project}'
527 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
529 submodule-recursive: true
530 submodule-timeout: '{submodule-timeout}'
531 submodule-disable: '{submodule-disable}'
532 choosing-strategy: default
533 jenkins-ssh-credential: '{jenkins-ssh-credential}'
536 - github-pull-request:
537 trigger-phrase: '^(recheck|reverify)$'
538 only-trigger-phrase: false
539 status-context: 'Jenkins CFG Verify'
542 included-regions: '{obj:github_included_regions}'
543 white-list-target-branches:
546 ###########################
547 # JENKINS SANDBOX CLEANUP #
548 ###########################
550 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
551 name: lf-jenkins-sandbox-cleanup
553 ######################
554 # Default parameters #
555 ######################
558 # Run every Saturday at 08:00 UTC
562 #####################
563 # Job Configuration #
564 #####################
566 project-type: freestyle
569 disabled: '{disable-job}'
572 - lf-infra-jjb-parameters:
573 jjb-cache: '{jjb-cache}'
574 jjb-version: '{jjb-version}'
577 - timed: '{obj:cron}'
581 - shell: !include-raw-escape:
582 - ../shell/jjb-install.sh
583 - ../shell/jenkins-sandbox-cleanup.sh
584 - ../shell/jjb-cleanup.sh
587 name: '{project-name}-jenkins-sandbox-cleanup'
588 id: gerrit-jenkins-sandbox-cleanup
590 # yamllint disable-line rule:key-duplicates
591 <<: *lf_jenkins_sandbox_cleanup
594 name: '{project-name}-jenkins-sandbox-cleanup'
595 id: github-jenkins-sandbox-cleanup
597 # yamllint disable-line rule:key-duplicates
598 <<: *lf_jenkins_sandbox_cleanup
605 - lf_jjb_deploy_job: &lf_jjb_deploy_job
606 name: lf-jjb-deploy-job
608 ######################
609 # Default parameters #
610 ######################
614 # jjb-deploy should always clone $PROJECT regardless of what
615 # $GERRIT_PROJECT triggered the job.
616 git-url: '$GIT_URL/$PROJECT'
617 github-url: 'https://github.com'
619 submodule-timeout: 10
620 submodule-disable: false
621 gerrit_jjb_deploy_job_triggers:
622 - comment-added-contains-event:
623 comment-contains-value: '^Patch Set\s+\d+:\s+(jjb-deploy[:]* (?!\*+$).+$)'
625 #####################
626 # Job Configuration #
627 #####################
629 project-type: freestyle
632 disabled: '{disable-job}'
635 - lf-infra-properties:
637 build-days-to-keep: 1
640 - lf-infra-parameters:
648 jenkins-ssh-credential: '{jenkins-ssh-credential}'
652 pip-packages: jenkins-job-builder
653 - lf-infra-jjbini-sandbox
654 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
660 name: '{project-name}-jjb-deploy-job'
661 id: gerrit-jjb-deploy-job
662 <<: *lf_jjb_deploy_job
665 - lf-infra-gerrit-scm:
667 refspec: 'refs/heads/{branch}'
669 submodule-recursive: true
670 submodule-timeout: '{submodule-timeout}'
671 submodule-disable: '{submodule-disable}'
672 choosing-strategy: default
673 jenkins-ssh-credential: '{jenkins-ssh-credential}'
677 server-name: '{gerrit-server-name}'
678 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
680 - project-compare-type: ANT
681 project-pattern: '**'
683 - branch-compare-type: ANT
692 name: '{project-name}-jjb-deploy-job'
693 id: github-jjb-deploy-job
694 <<: *lf_jjb_deploy_job
697 - lf-infra-properties:
699 build-days-to-keep: 1
701 url: '{github-url}/{github-org}/{project}'
704 - lf-infra-github-scm:
705 url: '{git-clone-url}{github-org}/{project}'
706 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
708 submodule-recursive: true
709 submodule-timeout: '{submodule-timeout}'
710 submodule-disable: '{submodule-disable}'
711 choosing-strategy: default
712 jenkins-ssh-credential: '{jenkins-ssh-credential}'
715 - github-pull-request:
716 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
717 only-trigger-phrase: true
718 status-context: 'JJB Deploy Job'
721 white-list-target-branches:
728 - lf_jjb_merge: &lf_jjb_merge
731 ######################
732 # Default parameters #
733 ######################
737 gerrit_merge_triggers:
738 - change-merged-event
739 - comment-added-contains-event:
740 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
742 #####################
743 # Job Configuration #
744 #####################
750 properties-content: JJB_WORKERS={jjb-workers}
751 - shell: !include-raw-escape:
752 - ../shell/jjb-install.sh
753 - ../shell/jjb-merge-job.sh
754 - ../shell/jjb-cleanup.sh
757 name: '{project-name}-jjb-merge'
760 # yamllint disable-line rule:key-duplicates
763 git-url: '$GIT_URL/$GERRIT_PROJECT'
766 - lf-infra-gerrit-scm:
770 submodule-recursive: '{submodule-recursive}'
771 submodule-timeout: '{submodule-timeout}'
772 submodule-disable: '{submodule-disable}'
773 choosing-strategy: default
774 jenkins-ssh-credential: '{jenkins-ssh-credential}'
778 server-name: '{gerrit-server-name}'
779 trigger-on: '{obj:gerrit_merge_triggers}'
781 - project-compare-type: ANT
782 project-pattern: '{project}'
784 - branch-compare-type: ANT
785 branch-pattern: '**/{branch}'
786 file-paths: '{obj:gerrit_trigger_file_paths}'
789 name: '{project-name}-jjb-merge'
792 # yamllint disable-line rule:key-duplicates
795 #####################
796 # Job Configuration #
797 #####################
800 - lf-infra-properties:
802 build-days-to-keep: 7
804 url: '{github-url}/{github-org}/{project}'
807 - lf-infra-github-scm:
808 url: '{git-clone-url}{github-org}/{project}'
810 branch: 'refs/heads/{branch}'
811 submodule-recursive: '{submodule-recursive}'
812 submodule-timeout: '{submodule-timeout}'
813 submodule-disable: '{submodule-disable}'
814 choosing-strategy: default
815 jenkins-ssh-credential: '{jenkins-ssh-credential}'
821 - github-pull-request:
822 trigger-phrase: '^remerge$'
823 only-trigger-phrase: true
824 status-context: 'JJB Merge'
829 white-list: '{obj:github_pr_whitelist}'
830 admin-list: '{obj:github_pr_admin_list}'
831 included-regions: '{obj:github_included_regions}'
832 white-list-target-branches:
839 - lf_jjb_verify: &lf_jjb_verify
842 ######################
843 # Default parameters #
844 ######################
846 build-concurrent: true
848 gerrit_verify_triggers:
849 - patchset-created-event:
851 exclude-trivial-rebase: false
852 exclude-no-code-change: false
853 - draft-published-event
854 - comment-added-contains-event:
855 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
857 #####################
858 # Job Configuration #
859 #####################
861 concurrent: '{build-concurrent}'
866 - shell: !include-raw-escape:
867 - ../shell/git-validate-jira-urls.sh
868 - ../shell/jjb-install.sh
869 - ../shell/jjb-verify-job.sh
870 - ../shell/jjb-check-unicode.sh
871 - ../shell/jjb-cleanup.sh
872 - lf-infra-gpg-verify-git-signature
875 name: '{project-name}-jjb-verify'
876 id: gerrit-jjb-verify
878 # yamllint disable-line rule:key-duplicates
881 ######################
882 # Default parameters #
883 ######################
885 git-url: '$GIT_URL/$GERRIT_PROJECT'
887 #####################
888 # Job Configuration #
889 #####################
892 - lf-infra-gerrit-scm:
894 refspec: '$GERRIT_REFSPEC'
895 branch: '$GERRIT_BRANCH'
896 submodule-recursive: '{submodule-recursive}'
897 submodule-timeout: '{submodule-timeout}'
898 submodule-disable: '{submodule-disable}'
899 choosing-strategy: gerrit
900 jenkins-ssh-credential: '{jenkins-ssh-credential}'
904 server-name: '{gerrit-server-name}'
905 trigger-on: '{obj:gerrit_verify_triggers}'
907 - project-compare-type: ANT
908 project-pattern: '{project}'
910 - branch-compare-type: ANT
911 branch-pattern: '**/{branch}'
912 file-paths: '{obj:gerrit_trigger_file_paths}'
915 name: '{project-name}-jjb-verify'
916 id: github-jjb-verify
918 # yamllint disable-line rule:key-duplicates
921 #####################
922 # Job Configuration #
923 #####################
926 - lf-infra-properties:
928 build-days-to-keep: 7
930 url: '{github-url}/{github-org}/{project}'
933 - lf-infra-github-scm:
934 url: '{git-clone-url}{github-org}/{project}'
935 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
937 submodule-recursive: '{submodule-recursive}'
938 submodule-timeout: '{submodule-timeout}'
939 submodule-disable: '{submodule-disable}'
940 choosing-strategy: default
941 jenkins-ssh-credential: '{jenkins-ssh-credential}'
944 - github-pull-request:
945 trigger-phrase: '^(recheck|reverify)$'
946 only-trigger-phrase: false
947 status-context: 'JJB Verify'
950 included-regions: '{obj:github_included_regions}'
951 white-list-target-branches:
954 ############################
955 # JJB Verify Upstream GJJB #
956 ############################
958 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
959 name: lf-jjb-verify-upstream-gjjb
961 #####################
962 # Job Configuration #
963 #####################
970 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
971 git cherry-pick FETCH_HEAD
973 - shell: !include-raw-escape:
974 - ../shell/git-validate-jira-urls.sh
975 - ../shell/jjb-install.sh
976 - ../shell/jjb-verify-job.sh
977 - ../shell/jjb-check-unicode.sh
978 - ../shell/jjb-cleanup.sh
979 - lf-infra-gpg-verify-git-signature
982 name: '{project-name}-jjb-verify-upstream-gjjb'
983 id: gerrit-jjb-verify-upstream-gjjb
985 # yamllint disable-line rule:key-duplicates
986 <<: *lf_jjb_verify_upstream_gjjb
988 ######################
989 # Default parameters #
990 ######################
992 git-url: '$GIT_URL/$PROJECT'
993 submodule-timeout: 10
994 submodule-disable: false
996 #####################
997 # Job Configuration #
998 #####################
1001 - lf-infra-gerrit-scm:
1002 git-url: '{git-url}'
1005 submodule-recursive: true
1006 submodule-timeout: '{submodule-timeout}'
1007 submodule-disable: '{submodule-disable}'
1008 choosing-strategy: default
1009 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1013 server-name: 'LinuxFoundation'
1015 - patchset-created-event:
1016 exclude-drafts: true
1017 exclude-trivial-rebase: false
1018 exclude-no-code-change: false
1019 - draft-published-event
1020 - comment-added-contains-event:
1021 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1023 - project-compare-type: ANT
1024 project-pattern: 'releng/global-jjb'
1026 - branch-compare-type: ANT
1027 branch-pattern: '**/master'
1028 override-votes: true
1029 gerrit-build-failed-codereview-value: -1
1030 gerrit-build-failed-verified-value: 0
1031 gerrit-build-successful-codereview-value: 1
1032 gerrit-build-successful-verified-value: 0
1038 - lf_license_check: &lf_license_check
1039 name: lf-license-check
1041 ######################
1042 # Default parameters #
1043 ######################
1046 build-days-to-keep: 7
1055 git-url: '$GIT_URL/$PROJECT'
1056 github-url: 'https://github.com'
1058 license-exclude-paths: ''
1059 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1060 project-pattern: '**'
1063 submodule-timeout: 10
1064 submodule-disable: false
1066 #####################
1067 # Job Configuration #
1068 #####################
1070 project-type: freestyle
1071 node: '{build-node}'
1073 disabled: '{disable-job}'
1076 - lf-infra-properties:
1077 build-days-to-keep: '{build-days-to-keep}'
1080 - lf-infra-parameters:
1081 project: '{project}'
1086 - lf-infra-wrappers:
1087 build-timeout: '{build-timeout}'
1088 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1092 file-patterns: '{file-patterns}'
1093 spdx-disable: '{spdx-disable}'
1094 lhc-version: '{lhc-version}'
1095 license-exclude-paths: '{license-exclude-paths}'
1096 licenses-allowed: '{licenses-allowed}'
1102 name: '{project-name}-license-check'
1103 id: gerrit-license-check
1104 <<: *lf_license_check
1106 git-url: '$GIT_URL/$GERRIT_PROJECT'
1109 - lf-infra-gerrit-scm:
1110 git-url: '{git-url}'
1111 refspec: '$GERRIT_REFSPEC'
1112 branch: '$GERRIT_BRANCH'
1113 # Submodules are out of the project's control
1114 submodule-recursive: false
1115 submodule-timeout: '{submodule-timeout}'
1116 submodule-disable: '{submodule-disable}'
1117 choosing-strategy: gerrit
1118 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1122 server-name: '{gerrit-server-name}'
1123 # Trigger should not be overridable as we want to always run
1125 - patchset-created-event:
1126 exclude-drafts: false
1127 exclude-trivial-rebase: false
1128 exclude-no-code-change: false
1129 - draft-published-event
1130 - comment-added-contains-event:
1131 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1133 - project-compare-type: ANT
1134 project-pattern: '{project-pattern}'
1136 - branch-compare-type: ANT
1137 branch-pattern: '**'
1140 name: '{project-name}-license-check'
1141 id: github-license-check
1142 <<: *lf_license_check
1145 - lf-infra-properties:
1146 build-days-to-keep: '{build-days-to-keep}'
1148 url: '{github-url}/{github-org}/{project}'
1151 - lf-infra-github-scm:
1152 url: '{git-clone-url}{github-org}/{project}'
1153 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1155 # Submodules are out of the project's control
1156 submodule-recursive: false
1157 submodule-timeout: '{submodule-timeout}'
1158 submodule-disable: '{submodule-disable}'
1159 choosing-strategy: default
1160 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1163 - github-pull-request:
1164 trigger-phrase: '^recheck$'
1165 only-trigger-phrase: false
1166 status-context: 'License Check'
1169 white-list-target-branches:
1172 ####################
1173 # Info YAML Verify #
1174 ####################
1176 - lf_info_yaml_verify: &lf_info_yaml_verify
1177 name: lf-info-yaml-verify
1179 ######################
1180 # Default parameters #
1181 ######################
1183 gerrit_verify_triggers:
1184 - patchset-created-event:
1185 exclude-drafts: true
1186 exclude-trivial-rebase: false
1187 exclude-no-code-change: false
1188 - draft-published-event
1189 - comment-added-contains-event:
1190 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1192 #####################
1193 # Job Configuration #
1194 #####################
1199 - shell: !include-raw-escape:
1200 - ../shell/git-validate-info-yaml.sh
1201 - ../shell/info-file-validate.sh
1204 name: '{project-name}-info-yaml-verify'
1205 id: gerrit-info-yaml-verify
1207 # yamllint disable-line rule:key-duplicates
1208 <<: *lf_info_yaml_verify
1210 git-url: '$GIT_URL/$GERRIT_PROJECT'
1213 - lf-infra-gerrit-scm:
1214 git-url: '{git-url}'
1215 refspec: '$GERRIT_REFSPEC'
1216 branch: '$GERRIT_BRANCH'
1217 submodule-recursive: '{submodule-recursive}'
1218 submodule-timeout: '{submodule-timeout}'
1219 submodule-disable: '{submodule-disable}'
1220 choosing-strategy: gerrit
1221 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1225 server-name: '{gerrit-server-name}'
1226 trigger-on: '{obj:gerrit_verify_triggers}'
1228 - project-compare-type: ANT
1229 project-pattern: '{project}'
1231 - branch-compare-type: ANT
1232 branch-pattern: '**/{branch}'
1234 - compare-type: REG_EXP
1235 pattern: 'INFO.yaml'
1238 name: '{project-name}-info-yaml-verify'
1239 id: github-info-yaml-verify
1241 # yamllint disable-line rule:key-duplicates
1242 <<: *lf_info_yaml_verify
1244 github-url: 'https://github.com'
1247 url: '{github-url}/{github-org}/{project}'
1250 - lf-infra-github-scm:
1251 url: '{git-clone-url}{github-org}/{project}'
1252 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1254 submodule-recursive: '{submodule-recursive}'
1255 submodule-timeout: '{submodule-timeout}'
1256 submodule-disable: '{submodule-disable}'
1257 choosing-strategy: default
1258 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1261 - github-pull-request:
1262 trigger-phrase: '^(recheck|reverify)$'
1263 only-trigger-phrase: false
1264 status-context: 'INFO File Verify'
1267 # included-regions MUST match gerrit file-paths
1268 included-regions: 'INFO.yaml'
1269 white-list-target-branches:
1276 - lf_openstack_cron: &lf_openstack_cron
1277 name: lf-openstack-cron
1279 ######################
1280 # Default parameters #
1281 ######################
1284 build-days-to-keep: 7
1288 git-url: '$GIT_URL/$PROJECT'
1289 github-url: 'https://github.com'
1290 openstack-cloud: vex
1291 openstack-image-cleanup: true
1292 openstack-image-cleanup-age: 30
1293 openstack-image-protect: true
1294 openstack-port-cleanup: true
1295 openstack-server-cleanup: true
1296 openstack-stack-cleanup: true
1297 openstack-volume-cleanup: true
1299 submodule-timeout: 10
1300 submodule-disable: false
1302 #####################
1303 # Job Configuration #
1304 #####################
1306 project-type: freestyle
1307 node: '{build-node}'
1309 disabled: '{disable-job}'
1312 - lf-infra-properties:
1313 build-days-to-keep: '{build-days-to-keep}'
1316 - lf-infra-parameters:
1317 project: '{project}'
1322 default: '{jenkins-urls}'
1324 Space separated list of Jenkins URLs to check for active builds.
1327 - lf-infra-wrappers:
1328 build-timeout: '{build-timeout}'
1329 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1330 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1331 - config-file-provider:
1333 - file-id: clouds-yaml
1334 target: '$HOME/.config/openstack/clouds.yaml'
1336 target: '$HOME/.npmrc'
1338 target: '$HOME/.config/pip/pip.conf'
1341 - timed: '{obj:cron}'
1344 - lf-infra-pre-build
1346 properties-content: OS_CLOUD={openstack-cloud}
1349 condition-kind: boolean-expression
1350 condition-expression: '{openstack-stack-cleanup}'
1352 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1355 condition-kind: boolean-expression
1356 condition-expression: '{openstack-server-cleanup}'
1358 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1361 condition-kind: boolean-expression
1362 condition-expression: '{openstack-port-cleanup}'
1364 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-ports.sh
1367 condition-kind: boolean-expression
1368 condition-expression: '{openstack-volume-cleanup}'
1370 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1373 condition-kind: boolean-expression
1374 condition-expression: '{openstack-image-protect}'
1376 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1378 condition-kind: boolean-expression
1379 condition-expression: '{openstack-image-cleanup}'
1382 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1383 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1389 name: '{project-name}-openstack-cron'
1390 id: gerrit-openstack-cron
1391 <<: *lf_openstack_cron
1394 - lf-infra-gerrit-scm:
1395 git-url: '{git-url}'
1396 refspec: 'refs/heads/{branch}'
1398 submodule-recursive: true
1399 submodule-timeout: '{submodule-timeout}'
1400 submodule-disable: '{submodule-disable}'
1401 choosing-strategy: default
1402 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1405 name: '{project-name}-openstack-cron'
1406 id: github-openstack-cron
1407 <<: *lf_openstack_cron
1410 - lf-infra-github-scm:
1411 url: '{git-clone-url}{github-org}/{project}'
1413 branch: 'refs/heads/{branch}'
1414 submodule-recursive: true
1415 submodule-timeout: '{submodule-timeout}'
1416 submodule-disable: '{submodule-disable}'
1417 choosing-strategy: default
1418 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1424 - lf_packer_merge: &lf_packer_merge
1425 name: lf-packer-merge
1427 ######################
1428 # Default parameters #
1429 ######################
1432 openstack-cloud: vex
1434 #####################
1435 # Job Configuration #
1436 #####################
1439 - lf-infra-parameters:
1440 project: '{project}'
1443 - lf-packer-parameters:
1444 packer-version: '{packer-version}'
1447 - lf-infra-packer-build:
1448 openstack: '{openstack}'
1449 openstack-cloud: '{openstack-cloud}'
1450 packer-cloud-settings: '{packer-cloud-settings}'
1451 packer-version: '{packer-version}'
1452 platform: '{platforms}'
1453 template: '{templates}'
1454 - description-setter:
1455 description: '.*Creating the image:(.*)'
1458 name: '{project-name}-packer-merge-{platforms}-{templates}'
1459 id: gerrit-packer-merge
1460 <<: *lf_packer_common
1461 # yamllint disable-line rule:key-duplicates
1462 <<: *lf_packer_merge
1464 ######################
1465 # Default parameters #
1466 ######################
1468 git-url: '$GIT_URL/$GERRIT_PROJECT'
1470 gerrit_merge_triggers:
1471 - change-merged-event
1472 - comment-added-contains-event:
1473 comment-contains-value: '^Patch Set\s+\d+:\s+remerge\s*$'
1475 #####################
1476 # Job Configuration #
1477 #####################
1480 - lf-infra-gerrit-scm:
1481 git-url: '{git-url}'
1482 refspec: '$GERRIT_REFSPEC'
1483 branch: '$GERRIT_BRANCH'
1484 submodule-recursive: '{submodule-recursive}'
1485 submodule-timeout: '{submodule-timeout}'
1486 submodule-disable: '{submodule-disable}'
1487 choosing-strategy: default
1488 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1491 - timed: '{obj:cron}'
1493 server-name: '{gerrit-server-name}'
1494 trigger-on: '{obj:gerrit_merge_triggers}'
1496 - project-compare-type: ANT
1497 project-pattern: '{project}'
1499 - branch-compare-type: ANT
1500 branch-pattern: '**/{branch}'
1502 - compare-type: REG_EXP
1503 pattern: 'packer\/provision\/.*\.sh'
1504 - compare-type: REG_EXP
1505 pattern: 'packer\/provision\/.*\.bat'
1506 - compare-type: REG_EXP
1507 pattern: 'packer\/provision\/.*\.ps1'
1508 - compare-type: REG_EXP
1509 pattern: 'packer\/provision\/{templates}\.yaml'
1510 - compare-type: REG_EXP
1511 pattern: 'packer\/provision\/local-{templates}\.yaml'
1512 - compare-type: REG_EXP
1513 pattern: 'packer\/templates\/{templates}\.json'
1514 - compare-type: REG_EXP
1515 pattern: 'packer\/vars\/{platforms}\.json'
1518 name: '{project-name}-packer-merge-{platforms}-{templates}'
1519 id: github-packer-merge
1520 <<: *lf_packer_common
1521 # yamllint disable-line rule:key-duplicates
1522 <<: *lf_packer_merge
1524 #####################
1525 # Job Configuration #
1526 #####################
1529 - lf-infra-properties:
1530 project: '{project}'
1531 build-days-to-keep: 7
1533 url: '{github-url}/{github-org}/{project}'
1536 - lf-infra-github-scm:
1537 url: '{git-clone-url}{github-org}/{project}'
1539 +refs/heads/*:refs/remotes/origin/*
1540 +refs/pull/*:refs/remotes/origin/pr/*
1541 branch: '$GERRIT_REFSPEC'
1542 submodule-recursive: '{submodule-recursive}'
1543 submodule-timeout: '{submodule-timeout}'
1544 submodule-disable: '{submodule-disable}'
1545 choosing-strategy: default
1546 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1549 - timed: '{obj:cron}'
1554 - github-pull-request:
1555 trigger-phrase: '^remerge$'
1556 only-trigger-phrase: true
1557 status-context: 'Packer {platforms}-{templates} Merge'
1562 white-list: '{obj:github_pr_whitelist}'
1563 admin-list: '{obj:github_pr_admin_list}'
1564 # included-regions MUST match Gerrit Trigger file-paths
1566 - 'packer\/provision\/.*\.sh'
1567 - 'packer\/provision\/.*\.bat'
1568 - 'packer\/provision\/.*\.ps1'
1569 - 'packer\/provision\/{templates}\.yaml'
1570 - 'packer\/provision\/local-{templates}\.yaml'
1571 - 'packer\/templates\/{templates}\.json'
1572 - 'packer\/vars\/{platforms}\.json'
1573 white-list-target-branches:
1580 - lf_packer_verify: &lf_packer_verify
1581 name: lf-packer-verify
1583 ######################
1584 # Default parameters #
1585 ######################
1589 openstack-cloud: vex
1591 gerrit_verify_triggers:
1592 - patchset-created-event:
1593 exclude-drafts: true
1594 exclude-trivial-rebase: false
1595 exclude-no-code-change: false
1596 - draft-published-event
1597 - comment-added-contains-event:
1598 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1600 gerrit_trigger_file_paths:
1601 - compare-type: REG_EXP
1602 pattern: 'packer\/.*'
1604 # github_included_regions MUST match gerrit_trigger_file_paths
1605 github_included_regions:
1608 #####################
1609 # Job Configuration #
1610 #####################
1615 - lf-infra-packer-validate:
1616 openstack: '{openstack}'
1617 openstack-cloud: '{openstack-cloud}'
1618 packer-cloud-settings: '{packer-cloud-settings}'
1619 packer-version: '{packer-version}'
1622 name: '{project-name}-packer-verify'
1623 id: gerrit-packer-verify
1624 <<: *lf_packer_common
1625 # yamllint disable-line rule:key-duplicates
1626 <<: *lf_packer_verify
1628 ######################
1629 # Default parameters #
1630 ######################
1632 git-url: '$GIT_URL/$GERRIT_PROJECT'
1634 #####################
1635 # Job Configuration #
1636 #####################
1639 - lf-infra-gerrit-scm:
1640 git-url: '{git-url}'
1641 refspec: '$GERRIT_REFSPEC'
1642 branch: '$GERRIT_BRANCH'
1643 submodule-recursive: '{submodule-recursive}'
1644 submodule-timeout: '{submodule-timeout}'
1645 submodule-disable: '{submodule-disable}'
1646 choosing-strategy: gerrit
1647 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1651 server-name: '{gerrit-server-name}'
1652 trigger-on: '{obj:gerrit_verify_triggers}'
1654 - project-compare-type: ANT
1655 project-pattern: '{project}'
1657 - branch-compare-type: ANT
1658 branch-pattern: '**/{branch}'
1659 file-paths: '{obj:gerrit_trigger_file_paths}'
1662 name: '{project-name}-packer-verify'
1663 id: github-packer-verify
1664 <<: *lf_packer_common
1665 # yamllint disable-line rule:key-duplicates
1666 <<: *lf_packer_verify
1668 #####################
1669 # Job Configuration #
1670 #####################
1673 - lf-infra-properties:
1674 project: '{project}'
1675 build-days-to-keep: 7
1677 url: '{github-url}/{github-org}/{project}'
1680 - lf-infra-github-scm:
1681 url: '{git-clone-url}{github-org}/{project}'
1682 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1684 submodule-recursive: '{submodule-recursive}'
1685 submodule-timeout: '{submodule-timeout}'
1686 submodule-disable: '{submodule-disable}'
1687 choosing-strategy: default
1688 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1691 - github-pull-request:
1692 trigger-phrase: '^(recheck|reverify)$'
1693 only-trigger-phrase: false
1694 status-context: 'Packer Verify'
1697 included-regions: '{obj:github_included_regions}'
1698 white-list-target-branches:
1705 - lf_puppet_verify: &lf_puppet_verify
1706 name: lf-puppet-verify
1708 ######################
1709 # Default parameters #
1710 ######################
1713 build-days-to-keep: 7
1716 git-url: '$GIT_URL/$GERRIT_PROJECT'
1717 github-url: 'https://github.com'
1720 puppet-lint-version: 2.3.6
1722 submodule-recursive: true
1723 submodule-timeout: 10
1724 submodule-disable: false
1726 gerrit_trigger_file_paths:
1727 - compare-type: REG_EXP
1730 # github_included_regions MUST match gerrit_trigger_file_paths
1731 github_included_regions:
1734 #####################
1735 # Job Configuration #
1736 #####################
1738 project-type: freestyle
1739 node: '{build-node}'
1741 disabled: '{disable-job}'
1744 - lf-infra-properties:
1745 build-days-to-keep: '{build-days-to-keep}'
1748 - lf-infra-parameters:
1749 project: '{project}'
1752 - lf-puppet-parameters:
1753 puppet-lint-version: '{puppet-lint-version}'
1756 - lf-infra-wrappers:
1757 build-timeout: '{build-timeout}'
1758 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1761 - shell: !include-raw-escape: ../shell/puppet-lint.sh
1767 name: '{project-name}-puppet-verify'
1768 id: gerrit-puppet-verify
1769 <<: *lf_puppet_verify
1771 ######################
1772 # Default parameters #
1773 ######################
1775 gerrit_verify_triggers:
1776 - patchset-created-event:
1777 exclude-drafts: true
1778 exclude-trivial-rebase: false
1779 exclude-no-code-change: false
1780 - draft-published-event
1781 - comment-added-contains-event:
1782 comment-contains-value: '^Patch Set\s+\d+:\s+(recheck|reverify)\s*$'
1784 #####################
1785 # Job Configuration #
1786 #####################
1789 - lf-infra-gerrit-scm:
1790 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1791 git-url: '{git-url}'
1792 refspec: '$GERRIT_REFSPEC'
1793 branch: '$GERRIT_BRANCH'
1794 submodule-recursive: '{submodule-recursive}'
1795 submodule-timeout: '{submodule-timeout}'
1796 submodule-disable: '{submodule-disable}'
1797 choosing-strategy: gerrit
1801 server-name: '{gerrit-server-name}'
1802 trigger-on: '{obj:gerrit_verify_triggers}'
1804 - project-compare-type: ANT
1805 project-pattern: '{project}'
1807 - branch-compare-type: ANT
1808 branch-pattern: '**/{branch}'
1809 file-paths: '{obj:gerrit_trigger_file_paths}'
1812 name: '{project-name}-puppet-verify'
1813 id: github-puppet-verify
1814 <<: *lf_puppet_verify
1816 #####################
1817 # Job Configuration #
1818 #####################
1821 - lf-infra-properties:
1822 project: '{project}'
1823 build-days-to-keep: 7
1825 url: '{github-url}/{github-org}/{project}'
1828 - lf-infra-github-scm:
1829 url: '{git-clone-url}{github-org}/{project}'
1830 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1832 submodule-recursive: '{submodule-recursive}'
1833 submodule-timeout: '{submodule-timeout}'
1834 submodule-disable: '{submodule-disable}'
1835 choosing-strategy: default
1836 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1839 - github-pull-request:
1840 trigger-phrase: '^(recheck|reverify)$'
1841 only-trigger-phrase: false
1842 status-context: 'Puppet Verify'
1845 included-regions: '{obj:github_included_regions}'
1846 white-list-target-branches: