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 packer-cloud-settings: packer-cloud-env
47 project-type: freestyle
49 disabled: '{disable-job}'
52 - lf-infra-properties:
57 - lf-infra-parameters:
61 - lf-packer-parameters:
62 packer-version: '{packer-version}'
66 build-timeout: '{build-timeout}'
67 jenkins-ssh-credential: '{jenkins-ssh-credential}'
73 name: lf-infra-jjb-parameters
77 default: '{jjb-version}'
78 description: Jenkins Job Builder version to download and install.
81 default: '{jjb-cache}'
82 description: Jenkins Job Builder cache location.
85 name: lf-packer-parameters
89 default: '{packer-version}'
90 description: Packer version to download and install.
93 name: lf-puppet-parameters
96 name: PUPPET_LINT_VERSION
97 default: '{puppet-lint-version}'
98 description: Puppet-lint version to download and install.
100 - lf_jjb_common: &lf_jjb_common
103 ######################
104 # Default parameters #
105 ######################
110 github-url: 'https://github.com'
111 jjb-cache: '$HOME/.cache/jenkins_jobs'
114 submodule-recursive: true
115 submodule-timeout: 10
116 throttle_categories: []
117 throttle-enabled: false
118 throttle-max-per-node: 1
119 throttle-max-total: 0
120 throttle-option: 'project'
122 gerrit_trigger_file_paths:
123 - compare-type: REG_EXP
125 - compare-type: REG_EXP
126 pattern: 'global-jjb'
127 - compare-type: REG_EXP
130 # github_included_regions MUST match gerrit_trigger_file_paths
131 github_included_regions:
136 #####################
137 # Job Configuration #
138 #####################
140 project-type: freestyle
142 disabled: '{disable-job}'
145 - lf-infra-properties:
147 build-days-to-keep: 7
149 categories: '{obj:throttle_categories}'
150 enabled: '{throttle-enabled}'
151 max-per-node: '{throttle-max-per-node}'
152 max-total: '{throttle-max-total}'
153 option: '{throttle-option}'
156 - lf-infra-parameters:
160 - lf-infra-jjb-parameters:
161 jjb-cache: '{jjb-cache}'
162 jjb-version: '{jjb-version}'
166 build-timeout: '{build-timeout}'
167 jenkins-ssh-credential: '{jenkins-ssh-credential}'
172 ######################
173 # Gerrit Branch Lock #
174 ######################
177 name: '{project-name}-gerrit-branch-lock-{stream}'
178 id: gerrit-branch-lock
180 ######################
181 # Default parameters #
182 ######################
186 git-url: '$GIT_URL/$GERRIT_PROJECT'
188 submodule-timeout: 10
189 gerrit_merge_triggers:
190 - comment-added-contains-event:
191 comment-contains-value: (un)?lock branch$
193 #####################
194 # Job Configuration #
195 #####################
197 project-type: freestyle
199 disabled: '{disable-job}'
202 - lf-infra-properties:
204 build-days-to-keep: 1
207 - lf-infra-parameters:
215 jenkins-ssh-credential: '{jenkins-ssh-credential}'
218 - lf-infra-gerrit-scm:
222 submodule-recursive: false
223 submodule-timeout: '{submodule-timeout}'
224 choosing-strategy: default
225 jenkins-ssh-credential: '{jenkins-ssh-credential}'
229 server-name: '{gerrit-server-name}'
230 trigger-on: '{obj:gerrit_merge_triggers}'
232 - project-compare-type: ANT
233 project-pattern: '{project}'
235 - branch-compare-type: ANT
236 branch-pattern: '**/{branch}'
239 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
245 ##########################################
246 # Jenkins Configuration Management Merge #
247 ##########################################
250 name: lf-jenkins-cfg-clouds
254 properties-content: 'jenkins_silos={jenkins-silos}'
255 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
256 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
259 name: lf-jenkins-cfg-global-vars
263 properties-content: 'jenkins_silos={jenkins-silos}'
264 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
265 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
267 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
268 name: lf-jenkins-cfg-merge
270 ######################
271 # Default parameters #
272 ######################
277 git-url: '$GIT_URL/$GERRIT_PROJECT'
278 github-url: 'https://github.com'
279 jenkins-silos: production sandbox
280 submodule-timeout: 10
282 gerrit_merge_triggers:
283 - change-merged-event
284 - comment-added-contains-event:
285 comment-contains-value: remerge$
287 gerrit_trigger_file_paths:
288 - compare-type: REG_EXP
289 pattern: 'jenkins-config\/.*'
291 # github_included_regions MUST match gerrit_trigger_file_paths
292 github_included_regions:
293 - 'jenkins-config\/.*'
295 #####################
296 # Job Configuration #
297 #####################
299 project-type: freestyle
302 disabled: '{disable-job}'
305 - lf-infra-properties:
307 build-days-to-keep: 1
310 - lf-infra-parameters:
318 jenkins-ssh-credential: '{jenkins-ssh-credential}'
322 - lf-jenkins-cfg-global-vars:
323 jenkins-silos: '{jenkins-silos}'
324 - lf-jenkins-cfg-clouds:
325 jenkins-silos: '{jenkins-silos}'
331 name: '{project-name}-jenkins-cfg-merge'
332 id: gerrit-jenkins-cfg-merge
333 <<: *lf_jenkins_cfg_merge
336 - lf-infra-gerrit-scm:
338 refspec: 'refs/heads/{branch}'
340 submodule-recursive: true
341 submodule-timeout: '{submodule-timeout}'
342 choosing-strategy: default
343 jenkins-ssh-credential: '{jenkins-ssh-credential}'
346 - timed: '{obj:cron}'
348 server-name: '{gerrit-server-name}'
349 trigger-on: '{obj:gerrit_merge_triggers}'
351 - project-compare-type: ANT
352 project-pattern: '{project}'
354 - branch-compare-type: ANT
355 branch-pattern: '**/{branch}'
356 file-paths: '{obj:gerrit_trigger_file_paths}'
359 name: '{project-name}-jenkins-cfg-merge'
360 id: github-jenkins-cfg-merge
361 <<: *lf_jenkins_cfg_merge
364 - lf-infra-properties:
366 build-days-to-keep: 1
368 url: '{github-url}/{github-org}/{project}'
371 - lf-infra-github-scm:
372 url: '{git-clone-url}{github-org}/{project}'
374 branch: 'refs/heads/{branch}'
375 submodule-recursive: true
376 submodule-timeout: '{submodule-timeout}'
377 choosing-strategy: default
378 jenkins-ssh-credential: '{jenkins-ssh-credential}'
381 - timed: '{obj:cron}'
385 - github-pull-request:
386 trigger-phrase: '^remerge$'
387 only-trigger-phrase: true
388 status-context: 'Jenkins CFG Merge'
393 white-list: '{obj:github_pr_whitelist}'
394 admin-list: '{obj:github_pr_admin_list}'
395 included-regions: '{obj:github_included_regions}'
396 white-list-target-branches:
399 ###########################################
400 # Jenkins Configuration Management Verify #
401 ###########################################
403 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
404 name: lf-jenkins-cfg-verify
406 ######################
407 # Default parameters #
408 ######################
411 build-days-to-keep: 7
413 git-url: '$GIT_URL/$GERRIT_PROJECT'
414 github-url: 'https://github.com'
416 submodule-timeout: 10
418 gerrit_verify_triggers:
419 - patchset-created-event:
421 exclude-trivial-rebase: false
422 exclude-no-code-change: false
423 - draft-published-event
424 - comment-added-contains-event:
425 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
427 gerrit_trigger_file_paths:
428 - compare-type: REG_EXP
429 pattern: 'jenkins-config\/.*'
431 # github_included_regions MUST match gerrit_trigger_file_paths
432 github_included_regions:
433 - 'jenkins-config\/.*'
435 #####################
436 # Job Configuration #
437 #####################
439 project-type: freestyle
442 disabled: '{disable-job}'
445 - lf-infra-properties:
447 build-days-to-keep: 1
450 - lf-infra-parameters:
458 jenkins-ssh-credential: '{jenkins-ssh-credential}'
459 - config-file-provider:
460 # Listed after to override openstack-infra-wrappers clouds.yaml
463 - file-id: clouds-yaml
464 target: '$HOME/.config/openstack/clouds.yaml'
466 target: '$HOME/.npmrc'
468 target: '$HOME/.config/pip/pip.conf'
473 properties-content: OS_CLOUD={openstack-cloud}
474 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
480 name: '{project-name}-jenkins-cfg-verify'
481 id: gerrit-jenkins-cfg-verify
482 <<: *lf_jenkins_cfg_verify
485 - lf-infra-gerrit-scm:
487 refspec: '$GERRIT_REFSPEC'
488 branch: '$GERRIT_BRANCH'
489 submodule-recursive: true
490 submodule-timeout: '{submodule-timeout}'
491 choosing-strategy: gerrit
492 jenkins-ssh-credential: '{jenkins-ssh-credential}'
496 server-name: '{gerrit-server-name}'
497 trigger-on: '{obj:gerrit_verify_triggers}'
499 - project-compare-type: ANT
500 project-pattern: '{project}'
502 - branch-compare-type: ANT
503 branch-pattern: '**/{branch}'
504 file-paths: '{obj:gerrit_trigger_file_paths}'
507 name: '{project-name}-jenkins-cfg-verify'
508 id: github-jenkins-cfg-verify
509 <<: *lf_jenkins_cfg_verify
513 url: '{github-url}/{github-org}/{project}'
516 - lf-infra-github-scm:
517 url: '{git-clone-url}{github-org}/{project}'
518 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
520 submodule-recursive: true
521 submodule-timeout: '{submodule-timeout}'
522 choosing-strategy: default
523 jenkins-ssh-credential: '{jenkins-ssh-credential}'
526 - github-pull-request:
527 trigger-phrase: '^(recheck|reverify)$'
528 only-trigger-phrase: false
529 status-context: 'Jenkins CFG Verify'
532 included-regions: '{obj:github_included_regions}'
533 white-list-target-branches:
536 ###########################
537 # JENKINS SANDBOX CLEANUP #
538 ###########################
540 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
541 name: lf-jenkins-sandbox-cleanup
543 ######################
544 # Default parameters #
545 ######################
548 # Run every Saturday at 08:00 UTC
552 #####################
553 # Job Configuration #
554 #####################
556 project-type: freestyle
559 disabled: '{disable-job}'
562 - lf-infra-jjb-parameters:
563 jjb-cache: '{jjb-cache}'
564 jjb-version: '{jjb-version}'
567 - timed: '{obj:cron}'
571 - shell: !include-raw-escape:
572 - ../shell/jjb-install.sh
573 - ../shell/jenkins-sandbox-cleanup.sh
574 - ../shell/jjb-cleanup.sh
577 name: '{project-name}-jenkins-sandbox-cleanup'
578 id: gerrit-jenkins-sandbox-cleanup
580 # yamllint disable-line rule:key-duplicates
581 <<: *lf_jenkins_sandbox_cleanup
584 name: '{project-name}-jenkins-sandbox-cleanup'
585 id: github-jenkins-sandbox-cleanup
587 # yamllint disable-line rule:key-duplicates
588 <<: *lf_jenkins_sandbox_cleanup
595 - lf_jjb_deploy_job: &lf_jjb_deploy_job
596 name: lf-jjb-deploy-job
598 ######################
599 # Default parameters #
600 ######################
604 # jjb-deploy should always clone $PROJECT regardless of what
605 # $GERRIT_PROJECT triggered the job.
606 git-url: '$GIT_URL/$PROJECT'
607 github-url: 'https://github.com'
609 submodule-timeout: 10
610 gerrit_jjb_deploy_job_triggers:
611 - comment-added-contains-event:
612 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(jjb-deploy[:]* (?!\*+$).+$)'
614 #####################
615 # Job Configuration #
616 #####################
618 project-type: freestyle
621 disabled: '{disable-job}'
624 - lf-infra-properties:
626 build-days-to-keep: 1
629 - lf-infra-parameters:
637 jenkins-ssh-credential: '{jenkins-ssh-credential}'
641 pip-packages: jenkins-job-builder
642 - lf-infra-jjbini-sandbox
643 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
649 name: '{project-name}-jjb-deploy-job'
650 id: gerrit-jjb-deploy-job
651 <<: *lf_jjb_deploy_job
654 - lf-infra-gerrit-scm:
656 refspec: 'refs/heads/{branch}'
658 submodule-recursive: true
659 submodule-timeout: '{submodule-timeout}'
660 choosing-strategy: default
661 jenkins-ssh-credential: '{jenkins-ssh-credential}'
665 server-name: '{gerrit-server-name}'
666 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
668 - project-compare-type: ANT
669 project-pattern: '**'
671 - branch-compare-type: ANT
680 name: '{project-name}-jjb-deploy-job'
681 id: github-jjb-deploy-job
682 <<: *lf_jjb_deploy_job
685 - lf-infra-properties:
687 build-days-to-keep: 1
689 url: '{github-url}/{github-org}/{project}'
692 - lf-infra-github-scm:
693 url: '{git-clone-url}{github-org}/{project}'
694 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
696 submodule-recursive: true
697 submodule-timeout: '{submodule-timeout}'
698 choosing-strategy: default
699 jenkins-ssh-credential: '{jenkins-ssh-credential}'
702 - github-pull-request:
703 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
704 only-trigger-phrase: true
705 status-context: 'JJB Deploy Job'
708 white-list-target-branches:
715 - lf_jjb_merge: &lf_jjb_merge
718 ######################
719 # Default parameters #
720 ######################
724 gerrit_merge_triggers:
725 - change-merged-event
726 - comment-added-contains-event:
727 comment-contains-value: remerge$
729 #####################
730 # Job Configuration #
731 #####################
737 properties-content: JJB_WORKERS={jjb-workers}
738 - shell: !include-raw-escape:
739 - ../shell/jjb-install.sh
740 - ../shell/jjb-merge-job.sh
741 - ../shell/jjb-cleanup.sh
744 name: '{project-name}-jjb-merge'
747 # yamllint disable-line rule:key-duplicates
750 git-url: '$GIT_URL/$GERRIT_PROJECT'
753 - lf-infra-gerrit-scm:
757 submodule-recursive: '{submodule-recursive}'
758 submodule-timeout: '{submodule-timeout}'
759 choosing-strategy: default
760 jenkins-ssh-credential: '{jenkins-ssh-credential}'
764 server-name: '{gerrit-server-name}'
765 trigger-on: '{obj:gerrit_merge_triggers}'
767 - project-compare-type: ANT
768 project-pattern: '{project}'
770 - branch-compare-type: ANT
771 branch-pattern: '**/{branch}'
772 file-paths: '{obj:gerrit_trigger_file_paths}'
775 name: '{project-name}-jjb-merge'
778 # yamllint disable-line rule:key-duplicates
781 #####################
782 # Job Configuration #
783 #####################
786 - lf-infra-properties:
788 build-days-to-keep: 7
790 url: '{github-url}/{github-org}/{project}'
793 - lf-infra-github-scm:
794 url: '{git-clone-url}{github-org}/{project}'
796 branch: 'refs/heads/{branch}'
797 submodule-recursive: '{submodule-recursive}'
798 submodule-timeout: '{submodule-timeout}'
799 choosing-strategy: default
800 jenkins-ssh-credential: '{jenkins-ssh-credential}'
806 - github-pull-request:
807 trigger-phrase: '^remerge$'
808 only-trigger-phrase: true
809 status-context: 'JJB Merge'
814 white-list: '{obj:github_pr_whitelist}'
815 admin-list: '{obj:github_pr_admin_list}'
816 included-regions: '{obj:github_included_regions}'
817 white-list-target-branches:
824 - lf_jjb_verify: &lf_jjb_verify
827 ######################
828 # Default parameters #
829 ######################
831 build-concurrent: true
833 gerrit_verify_triggers:
834 - patchset-created-event:
836 exclude-trivial-rebase: false
837 exclude-no-code-change: false
838 - draft-published-event
839 - comment-added-contains-event:
840 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
842 #####################
843 # Job Configuration #
844 #####################
846 concurrent: '{build-concurrent}'
851 - shell: !include-raw-escape:
852 - ../shell/git-validate-jira-urls.sh
853 - ../shell/jjb-install.sh
854 - ../shell/jjb-verify-job.sh
855 - ../shell/jjb-check-unicode.sh
856 - ../shell/jjb-cleanup.sh
857 - lf-infra-gpg-verify-git-signature
860 name: '{project-name}-jjb-verify'
861 id: gerrit-jjb-verify
863 # yamllint disable-line rule:key-duplicates
866 ######################
867 # Default parameters #
868 ######################
870 git-url: '$GIT_URL/$GERRIT_PROJECT'
872 #####################
873 # Job Configuration #
874 #####################
877 - lf-infra-gerrit-scm:
879 refspec: '$GERRIT_REFSPEC'
880 branch: '$GERRIT_BRANCH'
881 submodule-recursive: '{submodule-recursive}'
882 submodule-timeout: '{submodule-timeout}'
883 choosing-strategy: gerrit
884 jenkins-ssh-credential: '{jenkins-ssh-credential}'
888 server-name: '{gerrit-server-name}'
889 trigger-on: '{obj:gerrit_verify_triggers}'
891 - project-compare-type: ANT
892 project-pattern: '{project}'
894 - branch-compare-type: ANT
895 branch-pattern: '**/{branch}'
896 file-paths: '{obj:gerrit_trigger_file_paths}'
899 name: '{project-name}-jjb-verify'
900 id: github-jjb-verify
902 # yamllint disable-line rule:key-duplicates
905 #####################
906 # Job Configuration #
907 #####################
910 - lf-infra-properties:
912 build-days-to-keep: 7
914 url: '{github-url}/{github-org}/{project}'
917 - lf-infra-github-scm:
918 url: '{git-clone-url}{github-org}/{project}'
919 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
921 submodule-recursive: '{submodule-recursive}'
922 submodule-timeout: '{submodule-timeout}'
923 choosing-strategy: default
924 jenkins-ssh-credential: '{jenkins-ssh-credential}'
927 - github-pull-request:
928 trigger-phrase: '^(recheck|reverify)$'
929 only-trigger-phrase: false
930 status-context: 'JJB Verify'
933 included-regions: '{obj:github_included_regions}'
934 white-list-target-branches:
937 ############################
938 # JJB Verify Upstream GJJB #
939 ############################
941 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
942 name: lf-jjb-verify-upstream-gjjb
944 #####################
945 # Job Configuration #
946 #####################
953 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
954 git cherry-pick FETCH_HEAD
956 - shell: !include-raw-escape:
957 - ../shell/git-validate-jira-urls.sh
958 - ../shell/jjb-install.sh
959 - ../shell/jjb-verify-job.sh
960 - ../shell/jjb-check-unicode.sh
961 - ../shell/jjb-cleanup.sh
962 - lf-infra-gpg-verify-git-signature
965 name: '{project-name}-jjb-verify-upstream-gjjb'
966 id: gerrit-jjb-verify-upstream-gjjb
968 # yamllint disable-line rule:key-duplicates
969 <<: *lf_jjb_verify_upstream_gjjb
971 ######################
972 # Default parameters #
973 ######################
975 git-url: '$GIT_URL/$PROJECT'
976 submodule-timeout: 10
978 #####################
979 # Job Configuration #
980 #####################
983 - lf-infra-gerrit-scm:
987 submodule-recursive: true
988 submodule-timeout: '{submodule-timeout}'
989 choosing-strategy: default
990 jenkins-ssh-credential: '{jenkins-ssh-credential}'
994 server-name: 'LinuxFoundation'
996 - patchset-created-event:
998 exclude-trivial-rebase: false
999 exclude-no-code-change: false
1000 - draft-published-event
1001 - comment-added-contains-event:
1002 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1004 - project-compare-type: ANT
1005 project-pattern: 'releng/global-jjb'
1007 - branch-compare-type: ANT
1008 branch-pattern: '**/master'
1009 override-votes: true
1010 gerrit-build-failed-codereview-value: -1
1011 gerrit-build-failed-verified-value: 0
1012 gerrit-build-successful-codereview-value: 1
1013 gerrit-build-successful-verified-value: 0
1019 - lf_license_check: &lf_license_check
1020 name: lf-license-check
1022 ######################
1023 # Default parameters #
1024 ######################
1027 build-days-to-keep: 7
1036 git-url: '$GIT_URL/$PROJECT'
1037 github-url: 'https://github.com'
1039 license-exclude-paths: ''
1040 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1041 project-pattern: '**'
1044 submodule-timeout: 10
1046 #####################
1047 # Job Configuration #
1048 #####################
1050 project-type: freestyle
1051 node: '{build-node}'
1053 disabled: '{disable-job}'
1056 - lf-infra-properties:
1057 build-days-to-keep: '{build-days-to-keep}'
1060 - lf-infra-parameters:
1061 project: '{project}'
1066 - lf-infra-wrappers:
1067 build-timeout: '{build-timeout}'
1068 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1072 file-patterns: '{file-patterns}'
1073 spdx-disable: '{spdx-disable}'
1074 lhc-version: '{lhc-version}'
1075 license-exclude-paths: '{license-exclude-paths}'
1076 licenses-allowed: '{licenses-allowed}'
1082 name: '{project-name}-license-check'
1083 id: gerrit-license-check
1084 <<: *lf_license_check
1086 git-url: '$GIT_URL/$GERRIT_PROJECT'
1089 - lf-infra-gerrit-scm:
1090 git-url: '{git-url}'
1091 refspec: '$GERRIT_REFSPEC'
1092 branch: '$GERRIT_BRANCH'
1093 # Submodules are out of the project's control
1094 submodule-recursive: false
1095 submodule-timeout: '{submodule-timeout}'
1096 choosing-strategy: gerrit
1097 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1101 server-name: '{gerrit-server-name}'
1102 # Trigger should not be overridable as we want to always run
1104 - patchset-created-event:
1105 exclude-drafts: false
1106 exclude-trivial-rebase: false
1107 exclude-no-code-change: false
1108 - draft-published-event
1109 - comment-added-contains-event:
1110 comment-contains-value: recheck$
1112 - project-compare-type: ANT
1113 project-pattern: '{project-pattern}'
1115 - branch-compare-type: ANT
1116 branch-pattern: '**'
1119 name: '{project-name}-license-check'
1120 id: github-license-check
1121 <<: *lf_license_check
1124 - lf-infra-properties:
1125 build-days-to-keep: '{build-days-to-keep}'
1127 url: '{github-url}/{github-org}/{project}'
1130 - lf-infra-github-scm:
1131 url: '{git-clone-url}{github-org}/{project}'
1132 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1134 # Submodules are out of the project's control
1135 submodule-recursive: false
1136 submodule-timeout: '{submodule-timeout}'
1137 choosing-strategy: default
1138 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1141 - github-pull-request:
1142 trigger-phrase: '^recheck$'
1143 only-trigger-phrase: false
1144 status-context: 'License Check'
1147 white-list-target-branches:
1150 ####################
1151 # Info YAML Verify #
1152 ####################
1154 - lf_info_yaml_verify: &lf_info_yaml_verify
1155 name: lf-info-yaml-verify
1157 ######################
1158 # Default parameters #
1159 ######################
1161 gerrit_verify_triggers:
1162 - patchset-created-event:
1163 exclude-drafts: true
1164 exclude-trivial-rebase: false
1165 exclude-no-code-change: false
1166 - draft-published-event
1167 - comment-added-contains-event:
1168 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1170 #####################
1171 # Job Configuration #
1172 #####################
1177 - shell: !include-raw-escape:
1178 - ../shell/git-validate-info-yaml.sh
1179 - ../shell/info-file-validate.sh
1182 name: '{project-name}-info-yaml-verify'
1183 id: gerrit-info-yaml-verify
1185 # yamllint disable-line rule:key-duplicates
1186 <<: *lf_info_yaml_verify
1188 git-url: '$GIT_URL/$GERRIT_PROJECT'
1191 - lf-infra-gerrit-scm:
1192 git-url: '{git-url}'
1193 refspec: '$GERRIT_REFSPEC'
1194 branch: '$GERRIT_BRANCH'
1195 submodule-recursive: '{submodule-recursive}'
1196 submodule-timeout: '{submodule-timeout}'
1197 choosing-strategy: gerrit
1198 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1202 server-name: '{gerrit-server-name}'
1203 trigger-on: '{obj:gerrit_verify_triggers}'
1205 - project-compare-type: ANT
1206 project-pattern: '{project}'
1208 - branch-compare-type: ANT
1209 branch-pattern: '**/{branch}'
1211 - compare-type: REG_EXP
1212 pattern: 'INFO.yaml'
1215 name: '{project-name}-info-yaml-verify'
1216 id: github-info-yaml-verify
1218 # yamllint disable-line rule:key-duplicates
1219 <<: *lf_info_yaml_verify
1221 github-url: 'https://github.com'
1224 url: '{github-url}/{github-org}/{project}'
1227 - lf-infra-github-scm:
1228 url: '{git-clone-url}{github-org}/{project}'
1229 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1231 submodule-recursive: '{submodule-recursive}'
1232 submodule-timeout: '{submodule-timeout}'
1233 choosing-strategy: default
1234 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1237 - github-pull-request:
1238 trigger-phrase: '^(recheck|reverify)$'
1239 only-trigger-phrase: false
1240 status-context: 'INFO File Verify'
1243 # included-regions MUST match gerrit file-paths
1244 included-regions: 'INFO.yaml'
1245 white-list-target-branches:
1252 - lf_openstack_cron: &lf_openstack_cron
1253 name: lf-openstack-cron
1255 ######################
1256 # Default parameters #
1257 ######################
1260 build-days-to-keep: 7
1264 git-url: '$GIT_URL/$PROJECT'
1265 github-url: 'https://github.com'
1266 openstack-cloud: vex
1267 openstack-image-cleanup: true
1268 openstack-image-cleanup-age: 30
1269 openstack-image-protect: true
1270 openstack-server-cleanup: true
1271 openstack-stack-cleanup: true
1272 openstack-volume-cleanup: true
1274 submodule-timeout: 10
1276 #####################
1277 # Job Configuration #
1278 #####################
1280 project-type: freestyle
1281 node: '{build-node}'
1283 disabled: '{disable-job}'
1286 - lf-infra-properties:
1287 build-days-to-keep: '{build-days-to-keep}'
1290 - lf-infra-parameters:
1291 project: '{project}'
1296 default: '{jenkins-urls}'
1298 Space separated list of Jenkins URLs to check for active builds.
1301 - lf-infra-wrappers:
1302 build-timeout: '{build-timeout}'
1303 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1304 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1305 - config-file-provider:
1307 - file-id: clouds-yaml
1308 target: '$HOME/.config/openstack/clouds.yaml'
1310 target: '$HOME/.npmrc'
1312 target: '$HOME/.config/pip/pip.conf'
1315 - timed: '{obj:cron}'
1318 - lf-infra-pre-build
1320 properties-content: OS_CLOUD={openstack-cloud}
1323 condition-kind: boolean-expression
1324 condition-expression: '{openstack-stack-cleanup}'
1326 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1329 condition-kind: boolean-expression
1330 condition-expression: '{openstack-server-cleanup}'
1332 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1335 condition-kind: boolean-expression
1336 condition-expression: '{openstack-volume-cleanup}'
1338 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1341 condition-kind: boolean-expression
1342 condition-expression: '{openstack-image-protect}'
1344 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1346 condition-kind: boolean-expression
1347 condition-expression: '{openstack-image-cleanup}'
1350 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1351 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1357 name: '{project-name}-openstack-cron'
1358 id: gerrit-openstack-cron
1359 <<: *lf_openstack_cron
1362 - lf-infra-gerrit-scm:
1363 git-url: '{git-url}'
1364 refspec: 'refs/heads/{branch}'
1366 submodule-recursive: true
1367 submodule-timeout: '{submodule-timeout}'
1368 choosing-strategy: default
1369 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1372 name: '{project-name}-openstack-cron'
1373 id: github-openstack-cron
1374 <<: *lf_openstack_cron
1377 - lf-infra-github-scm:
1378 url: '{git-clone-url}{github-org}/{project}'
1380 branch: 'refs/heads/{branch}'
1381 submodule-recursive: true
1382 submodule-timeout: '{submodule-timeout}'
1383 choosing-strategy: default
1384 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1390 - lf_packer_merge: &lf_packer_merge
1391 name: lf-packer-merge
1393 ######################
1394 # Default parameters #
1395 ######################
1398 openstack-cloud: vex
1400 #####################
1401 # Job Configuration #
1402 #####################
1405 - lf-infra-parameters:
1406 project: '{project}'
1409 - lf-packer-parameters:
1410 packer-version: '{packer-version}'
1413 - lf-infra-packer-build:
1414 openstack: '{openstack}'
1415 openstack-cloud: '{openstack-cloud}'
1416 packer-cloud-settings: '{packer-cloud-settings}'
1417 packer-version: '{packer-version}'
1418 platform: '{platforms}'
1419 template: '{templates}'
1420 - description-setter:
1421 description: '.*Creating the image:(.*)'
1424 name: '{project-name}-packer-merge-{platforms}-{templates}'
1425 id: gerrit-packer-merge
1426 <<: *lf_packer_common
1427 # yamllint disable-line rule:key-duplicates
1428 <<: *lf_packer_merge
1430 ######################
1431 # Default parameters #
1432 ######################
1434 git-url: '$GIT_URL/$GERRIT_PROJECT'
1436 gerrit_merge_triggers:
1437 - change-merged-event
1438 - comment-added-contains-event:
1439 comment-contains-value: remerge$
1441 #####################
1442 # Job Configuration #
1443 #####################
1446 - lf-infra-gerrit-scm:
1447 git-url: '{git-url}'
1448 refspec: '$GERRIT_REFSPEC'
1449 branch: '$GERRIT_BRANCH'
1450 submodule-recursive: '{submodule-recursive}'
1451 submodule-timeout: '{submodule-timeout}'
1452 choosing-strategy: default
1453 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1456 - timed: '{obj:cron}'
1458 server-name: '{gerrit-server-name}'
1459 trigger-on: '{obj:gerrit_merge_triggers}'
1461 - project-compare-type: ANT
1462 project-pattern: '{project}'
1464 - branch-compare-type: ANT
1465 branch-pattern: '**/{branch}'
1467 - compare-type: REG_EXP
1468 pattern: 'packer\/provision\/.*\.sh'
1469 - compare-type: REG_EXP
1470 pattern: 'packer\/provision\/.*\.bat'
1471 - compare-type: REG_EXP
1472 pattern: 'packer\/provision\/.*\.ps1'
1473 - compare-type: REG_EXP
1474 pattern: 'packer\/provision\/{templates}\.yaml'
1475 - compare-type: REG_EXP
1476 pattern: 'packer\/provision\/local-{templates}\.yaml'
1477 - compare-type: REG_EXP
1478 pattern: 'packer\/templates\/{templates}\.json'
1479 - compare-type: REG_EXP
1480 pattern: 'packer\/vars\/{platforms}\.json'
1483 name: '{project-name}-packer-merge-{platforms}-{templates}'
1484 id: github-packer-merge
1485 <<: *lf_packer_common
1486 # yamllint disable-line rule:key-duplicates
1487 <<: *lf_packer_merge
1489 #####################
1490 # Job Configuration #
1491 #####################
1494 - lf-infra-properties:
1495 project: '{project}'
1496 build-days-to-keep: 7
1498 url: '{github-url}/{github-org}/{project}'
1501 - lf-infra-github-scm:
1502 url: '{git-clone-url}{github-org}/{project}'
1504 +refs/heads/*:refs/remotes/origin/*
1505 +refs/pull/*:refs/remotes/origin/pr/*
1506 branch: '$GERRIT_REFSPEC'
1507 submodule-recursive: '{submodule-recursive}'
1508 submodule-timeout: '{submodule-timeout}'
1509 choosing-strategy: default
1510 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1513 - timed: '{obj:cron}'
1518 - github-pull-request:
1519 trigger-phrase: '^remerge$'
1520 only-trigger-phrase: true
1521 status-context: 'Packer {platforms}-{templates} Merge'
1526 white-list: '{obj:github_pr_whitelist}'
1527 admin-list: '{obj:github_pr_admin_list}'
1528 # included-regions MUST match Gerrit Trigger file-paths
1530 - 'packer\/provision\/.*\.sh'
1531 - 'packer\/provision\/.*\.bat'
1532 - 'packer\/provision\/.*\.ps1'
1533 - 'packer\/provision\/{templates}\.yaml'
1534 - 'packer\/provision\/local-{templates}\.yaml'
1535 - 'packer\/templates\/{templates}\.json'
1536 - 'packer\/vars\/{platforms}\.json'
1537 white-list-target-branches:
1544 - lf_packer_verify: &lf_packer_verify
1545 name: lf-packer-verify
1547 ######################
1548 # Default parameters #
1549 ######################
1553 openstack-cloud: vex
1555 gerrit_verify_triggers:
1556 - patchset-created-event:
1557 exclude-drafts: true
1558 exclude-trivial-rebase: false
1559 exclude-no-code-change: false
1560 - draft-published-event
1561 - comment-added-contains-event:
1562 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1564 gerrit_trigger_file_paths:
1565 - compare-type: REG_EXP
1566 pattern: 'packer\/.*'
1568 # github_included_regions MUST match gerrit_trigger_file_paths
1569 github_included_regions:
1572 #####################
1573 # Job Configuration #
1574 #####################
1579 - lf-infra-packer-validate:
1580 openstack: '{openstack}'
1581 openstack-cloud: '{openstack-cloud}'
1582 packer-cloud-settings: '{packer-cloud-settings}'
1583 packer-version: '{packer-version}'
1586 name: '{project-name}-packer-verify'
1587 id: gerrit-packer-verify
1588 <<: *lf_packer_common
1589 # yamllint disable-line rule:key-duplicates
1590 <<: *lf_packer_verify
1592 ######################
1593 # Default parameters #
1594 ######################
1596 git-url: '$GIT_URL/$GERRIT_PROJECT'
1598 #####################
1599 # Job Configuration #
1600 #####################
1603 - lf-infra-gerrit-scm:
1604 git-url: '{git-url}'
1605 refspec: '$GERRIT_REFSPEC'
1606 branch: '$GERRIT_BRANCH'
1607 submodule-recursive: '{submodule-recursive}'
1608 submodule-timeout: '{submodule-timeout}'
1609 choosing-strategy: gerrit
1610 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1614 server-name: '{gerrit-server-name}'
1615 trigger-on: '{obj:gerrit_verify_triggers}'
1617 - project-compare-type: ANT
1618 project-pattern: '{project}'
1620 - branch-compare-type: ANT
1621 branch-pattern: '**/{branch}'
1622 file-paths: '{obj:gerrit_trigger_file_paths}'
1625 name: '{project-name}-packer-verify'
1626 id: github-packer-verify
1627 <<: *lf_packer_common
1628 # yamllint disable-line rule:key-duplicates
1629 <<: *lf_packer_verify
1631 #####################
1632 # Job Configuration #
1633 #####################
1636 - lf-infra-properties:
1637 project: '{project}'
1638 build-days-to-keep: 7
1640 url: '{github-url}/{github-org}/{project}'
1643 - lf-infra-github-scm:
1644 url: '{git-clone-url}{github-org}/{project}'
1645 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1647 submodule-recursive: '{submodule-recursive}'
1648 submodule-timeout: '{submodule-timeout}'
1649 choosing-strategy: default
1650 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1653 - github-pull-request:
1654 trigger-phrase: '^(recheck|reverify)$'
1655 only-trigger-phrase: false
1656 status-context: 'Packer Verify'
1659 included-regions: '{obj:github_included_regions}'
1660 white-list-target-branches:
1667 - lf_puppet_verify: &lf_puppet_verify
1668 name: lf-puppet-verify
1670 ######################
1671 # Default parameters #
1672 ######################
1675 build-days-to-keep: 7
1678 git-url: '$GIT_URL/$GERRIT_PROJECT'
1679 github-url: 'https://github.com'
1682 puppet-lint-version: 2.3.6
1684 submodule-recursive: true
1685 submodule-timeout: 10
1687 gerrit_trigger_file_paths:
1688 - compare-type: REG_EXP
1691 # github_included_regions MUST match gerrit_trigger_file_paths
1692 github_included_regions:
1695 #####################
1696 # Job Configuration #
1697 #####################
1699 project-type: freestyle
1700 node: '{build-node}'
1702 disabled: '{disable-job}'
1705 - lf-infra-properties:
1706 build-days-to-keep: '{build-days-to-keep}'
1709 - lf-infra-parameters:
1710 project: '{project}'
1713 - lf-puppet-parameters:
1714 puppet-lint-version: '{puppet-lint-version}'
1717 - lf-infra-wrappers:
1718 build-timeout: '{build-timeout}'
1719 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1722 - shell: !include-raw-escape: ../shell/puppet-lint.sh
1728 name: '{project-name}-puppet-verify'
1729 id: gerrit-puppet-verify
1730 <<: *lf_puppet_verify
1732 ######################
1733 # Default parameters #
1734 ######################
1736 gerrit_verify_triggers:
1737 - patchset-created-event:
1738 exclude-drafts: true
1739 exclude-trivial-rebase: false
1740 exclude-no-code-change: false
1741 - draft-published-event
1742 - comment-added-contains-event:
1743 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1745 #####################
1746 # Job Configuration #
1747 #####################
1750 - lf-infra-gerrit-scm:
1751 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1752 git-url: '{git-url}'
1753 refspec: '$GERRIT_REFSPEC'
1754 branch: '$GERRIT_BRANCH'
1755 submodule-recursive: '{submodule-recursive}'
1756 submodule-timeout: '{submodule-timeout}'
1757 choosing-strategy: gerrit
1761 server-name: '{gerrit-server-name}'
1762 trigger-on: '{obj:gerrit_verify_triggers}'
1764 - project-compare-type: ANT
1765 project-pattern: '{project}'
1767 - branch-compare-type: ANT
1768 branch-pattern: '**/{branch}'
1769 file-paths: '{obj:gerrit_trigger_file_paths}'
1772 name: '{project-name}-puppet-verify'
1773 id: github-puppet-verify
1774 <<: *lf_puppet_verify
1776 #####################
1777 # Job Configuration #
1778 #####################
1781 - lf-infra-properties:
1782 project: '{project}'
1783 build-days-to-keep: 7
1785 url: '{github-url}/{github-org}/{project}'
1788 - lf-infra-github-scm:
1789 url: '{git-clone-url}{github-org}/{project}'
1790 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1792 submodule-recursive: '{submodule-recursive}'
1793 submodule-timeout: '{submodule-timeout}'
1794 choosing-strategy: default
1795 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1798 - github-pull-request:
1799 trigger-phrase: '^(recheck|reverify)$'
1800 only-trigger-phrase: false
1801 status-context: 'Puppet Verify'
1804 included-regions: '{obj:github_included_regions}'
1805 white-list-target-branches: