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: 'refs/heads/{branch}'
489 submodule-recursive: true
490 submodule-timeout: '{submodule-timeout}'
491 choosing-strategy: default
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 ######################
722 gerrit_merge_triggers:
723 - change-merged-event
724 - comment-added-contains-event:
725 comment-contains-value: remerge$
727 #####################
728 # Job Configuration #
729 #####################
734 - shell: !include-raw-escape:
735 - ../shell/jjb-install.sh
736 - ../shell/jjb-merge-job.sh
737 - ../shell/jjb-cleanup.sh
740 name: '{project-name}-jjb-merge'
743 # yamllint disable-line rule:key-duplicates
746 git-url: '$GIT_URL/$GERRIT_PROJECT'
749 - lf-infra-gerrit-scm:
753 submodule-recursive: '{submodule-recursive}'
754 submodule-timeout: '{submodule-timeout}'
755 choosing-strategy: default
756 jenkins-ssh-credential: '{jenkins-ssh-credential}'
760 server-name: '{gerrit-server-name}'
761 trigger-on: '{obj:gerrit_merge_triggers}'
763 - project-compare-type: ANT
764 project-pattern: '{project}'
766 - branch-compare-type: ANT
767 branch-pattern: '**/{branch}'
768 file-paths: '{obj:gerrit_trigger_file_paths}'
771 name: '{project-name}-jjb-merge'
774 # yamllint disable-line rule:key-duplicates
777 #####################
778 # Job Configuration #
779 #####################
782 - lf-infra-properties:
784 build-days-to-keep: 7
786 url: '{github-url}/{github-org}/{project}'
789 - lf-infra-github-scm:
790 url: '{git-clone-url}{github-org}/{project}'
792 branch: 'refs/heads/{branch}'
793 submodule-recursive: '{submodule-recursive}'
794 submodule-timeout: '{submodule-timeout}'
795 choosing-strategy: default
796 jenkins-ssh-credential: '{jenkins-ssh-credential}'
802 - github-pull-request:
803 trigger-phrase: '^remerge$'
804 only-trigger-phrase: true
805 status-context: 'JJB Merge'
810 white-list: '{obj:github_pr_whitelist}'
811 admin-list: '{obj:github_pr_admin_list}'
812 included-regions: '{obj:github_included_regions}'
813 white-list-target-branches:
820 - lf_jjb_verify: &lf_jjb_verify
823 ######################
824 # Default parameters #
825 ######################
827 build-concurrent: true
829 gerrit_verify_triggers:
830 - patchset-created-event:
832 exclude-trivial-rebase: false
833 exclude-no-code-change: false
834 - draft-published-event
835 - comment-added-contains-event:
836 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
838 #####################
839 # Job Configuration #
840 #####################
842 concurrent: '{build-concurrent}'
847 - shell: !include-raw-escape:
848 - ../shell/git-validate-jira-urls.sh
849 - ../shell/jjb-install.sh
850 - ../shell/jjb-verify-job.sh
851 - ../shell/jjb-check-unicode.sh
852 - ../shell/jjb-cleanup.sh
853 - lf-infra-gpg-verify-git-signature
856 name: '{project-name}-jjb-verify'
857 id: gerrit-jjb-verify
859 # yamllint disable-line rule:key-duplicates
862 ######################
863 # Default parameters #
864 ######################
866 git-url: '$GIT_URL/$GERRIT_PROJECT'
868 #####################
869 # Job Configuration #
870 #####################
873 - lf-infra-gerrit-scm:
875 refspec: '$GERRIT_REFSPEC'
876 branch: '$GERRIT_BRANCH'
877 submodule-recursive: '{submodule-recursive}'
878 submodule-timeout: '{submodule-timeout}'
879 choosing-strategy: gerrit
880 jenkins-ssh-credential: '{jenkins-ssh-credential}'
884 server-name: '{gerrit-server-name}'
885 trigger-on: '{obj:gerrit_verify_triggers}'
887 - project-compare-type: ANT
888 project-pattern: '{project}'
890 - branch-compare-type: ANT
891 branch-pattern: '**/{branch}'
892 file-paths: '{obj:gerrit_trigger_file_paths}'
895 name: '{project-name}-jjb-verify'
896 id: github-jjb-verify
898 # yamllint disable-line rule:key-duplicates
901 #####################
902 # Job Configuration #
903 #####################
906 - lf-infra-properties:
908 build-days-to-keep: 7
910 url: '{github-url}/{github-org}/{project}'
913 - lf-infra-github-scm:
914 url: '{git-clone-url}{github-org}/{project}'
915 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
917 submodule-recursive: '{submodule-recursive}'
918 submodule-timeout: '{submodule-timeout}'
919 choosing-strategy: default
920 jenkins-ssh-credential: '{jenkins-ssh-credential}'
923 - github-pull-request:
924 trigger-phrase: '^(recheck|reverify)$'
925 only-trigger-phrase: false
926 status-context: 'JJB Verify'
929 included-regions: '{obj:github_included_regions}'
930 white-list-target-branches:
933 ############################
934 # JJB Verify Upstream GJJB #
935 ############################
937 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
938 name: lf-jjb-verify-upstream-gjjb
940 #####################
941 # Job Configuration #
942 #####################
949 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
950 git cherry-pick FETCH_HEAD
952 - shell: !include-raw-escape:
953 - ../shell/git-validate-jira-urls.sh
954 - ../shell/jjb-install.sh
955 - ../shell/jjb-verify-job.sh
956 - ../shell/jjb-check-unicode.sh
957 - ../shell/jjb-cleanup.sh
958 - lf-infra-gpg-verify-git-signature
961 name: '{project-name}-jjb-verify-upstream-gjjb'
962 id: gerrit-jjb-verify-upstream-gjjb
964 # yamllint disable-line rule:key-duplicates
965 <<: *lf_jjb_verify_upstream_gjjb
967 ######################
968 # Default parameters #
969 ######################
971 git-url: '$GIT_URL/$PROJECT'
972 submodule-timeout: 10
974 #####################
975 # Job Configuration #
976 #####################
979 - lf-infra-gerrit-scm:
983 submodule-recursive: true
984 submodule-timeout: '{submodule-timeout}'
985 choosing-strategy: default
986 jenkins-ssh-credential: '{jenkins-ssh-credential}'
990 server-name: 'LinuxFoundation'
992 - patchset-created-event:
994 exclude-trivial-rebase: false
995 exclude-no-code-change: false
996 - draft-published-event
997 - comment-added-contains-event:
998 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1000 - project-compare-type: ANT
1001 project-pattern: 'releng/global-jjb'
1003 - branch-compare-type: ANT
1004 branch-pattern: '**/master'
1005 override-votes: true
1006 gerrit-build-failed-codereview-value: -1
1007 gerrit-build-failed-verified-value: 0
1008 gerrit-build-successful-codereview-value: 1
1009 gerrit-build-successful-verified-value: 0
1015 - lf_license_check: &lf_license_check
1016 name: lf-license-check
1018 ######################
1019 # Default parameters #
1020 ######################
1023 build-days-to-keep: 7
1032 git-url: '$GIT_URL/$PROJECT'
1033 github-url: 'https://github.com'
1035 license-exclude-paths: ''
1036 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1037 project-pattern: '**'
1040 submodule-timeout: 10
1042 #####################
1043 # Job Configuration #
1044 #####################
1046 project-type: freestyle
1047 node: '{build-node}'
1049 disabled: '{disable-job}'
1052 - lf-infra-properties:
1053 build-days-to-keep: '{build-days-to-keep}'
1056 - lf-infra-parameters:
1057 project: '{project}'
1062 - lf-infra-wrappers:
1063 build-timeout: '{build-timeout}'
1064 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1068 file-patterns: '{file-patterns}'
1069 spdx-disable: '{spdx-disable}'
1070 lhc-version: '{lhc-version}'
1071 license-exclude-paths: '{license-exclude-paths}'
1072 licenses-allowed: '{licenses-allowed}'
1078 name: '{project-name}-license-check'
1079 id: gerrit-license-check
1080 <<: *lf_license_check
1082 git-url: '$GIT_URL/$GERRIT_PROJECT'
1085 - lf-infra-gerrit-scm:
1086 git-url: '{git-url}'
1087 refspec: '$GERRIT_REFSPEC'
1088 branch: '$GERRIT_BRANCH'
1089 # Submodules are out of the project's control
1090 submodule-recursive: false
1091 submodule-timeout: '{submodule-timeout}'
1092 choosing-strategy: gerrit
1093 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1097 server-name: '{gerrit-server-name}'
1098 # Trigger should not be overridable as we want to always run
1100 - patchset-created-event:
1101 exclude-drafts: false
1102 exclude-trivial-rebase: false
1103 exclude-no-code-change: false
1104 - draft-published-event
1105 - comment-added-contains-event:
1106 comment-contains-value: recheck$
1108 - project-compare-type: ANT
1109 project-pattern: '{project-pattern}'
1111 - branch-compare-type: ANT
1112 branch-pattern: '**'
1115 name: '{project-name}-license-check'
1116 id: github-license-check
1117 <<: *lf_license_check
1120 - lf-infra-properties:
1121 build-days-to-keep: '{build-days-to-keep}'
1123 url: '{github-url}/{github-org}/{project}'
1126 - lf-infra-github-scm:
1127 url: '{git-clone-url}{github-org}/{project}'
1128 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1130 # Submodules are out of the project's control
1131 submodule-recursive: false
1132 submodule-timeout: '{submodule-timeout}'
1133 choosing-strategy: default
1134 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1137 - github-pull-request:
1138 trigger-phrase: '^recheck$'
1139 only-trigger-phrase: false
1140 status-context: 'License Check'
1143 white-list-target-branches:
1146 ####################
1147 # Info YAML Verify #
1148 ####################
1150 - lf_info_yaml_verify: &lf_info_yaml_verify
1151 name: lf-info-yaml-verify
1153 ######################
1154 # Default parameters #
1155 ######################
1157 gerrit_verify_triggers:
1158 - patchset-created-event:
1159 exclude-drafts: true
1160 exclude-trivial-rebase: false
1161 exclude-no-code-change: false
1162 - draft-published-event
1163 - comment-added-contains-event:
1164 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1166 #####################
1167 # Job Configuration #
1168 #####################
1173 - shell: !include-raw-escape:
1174 - ../shell/git-validate-info-yaml.sh
1175 - ../shell/info-file-validate.sh
1178 name: '{project-name}-info-yaml-verify'
1179 id: gerrit-info-yaml-verify
1181 # yamllint disable-line rule:key-duplicates
1182 <<: *lf_info_yaml_verify
1184 git-url: '$GIT_URL/$GERRIT_PROJECT'
1187 - lf-infra-gerrit-scm:
1188 git-url: '{git-url}'
1189 refspec: '$GERRIT_REFSPEC'
1190 branch: '$GERRIT_BRANCH'
1191 submodule-recursive: '{submodule-recursive}'
1192 submodule-timeout: '{submodule-timeout}'
1193 choosing-strategy: gerrit
1194 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1198 server-name: '{gerrit-server-name}'
1199 trigger-on: '{obj:gerrit_verify_triggers}'
1201 - project-compare-type: ANT
1202 project-pattern: '{project}'
1204 - branch-compare-type: ANT
1205 branch-pattern: '**/{branch}'
1207 - compare-type: REG_EXP
1208 pattern: 'INFO.yaml'
1211 name: '{project-name}-info-yaml-verify'
1212 id: github-info-yaml-verify
1214 # yamllint disable-line rule:key-duplicates
1215 <<: *lf_info_yaml_verify
1217 github-url: 'https://github.com'
1220 url: '{github-url}/{github-org}/{project}'
1223 - lf-infra-github-scm:
1224 url: '{git-clone-url}{github-org}/{project}'
1225 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1227 submodule-recursive: '{submodule-recursive}'
1228 submodule-timeout: '{submodule-timeout}'
1229 choosing-strategy: default
1230 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1233 - github-pull-request:
1234 trigger-phrase: '^(recheck|reverify)$'
1235 only-trigger-phrase: false
1236 status-context: 'INFO File Verify'
1239 # included-regions MUST match gerrit file-paths
1240 included-regions: 'INFO.yaml'
1241 white-list-target-branches:
1248 - lf_openstack_cron: &lf_openstack_cron
1249 name: lf-openstack-cron
1251 ######################
1252 # Default parameters #
1253 ######################
1256 build-days-to-keep: 7
1260 git-url: '$GIT_URL/$PROJECT'
1261 github-url: 'https://github.com'
1262 openstack-cloud: vex
1263 openstack-image-cleanup: true
1264 openstack-image-cleanup-age: 30
1265 openstack-image-protect: true
1266 openstack-server-cleanup: true
1267 openstack-stack-cleanup: true
1268 openstack-volume-cleanup: true
1270 submodule-timeout: 10
1272 #####################
1273 # Job Configuration #
1274 #####################
1276 project-type: freestyle
1277 node: '{build-node}'
1279 disabled: '{disable-job}'
1282 - lf-infra-properties:
1283 build-days-to-keep: '{build-days-to-keep}'
1286 - lf-infra-parameters:
1287 project: '{project}'
1292 default: '{jenkins-urls}'
1294 Space separated list of Jenkins URLs to check for active builds.
1297 - lf-infra-wrappers:
1298 build-timeout: '{build-timeout}'
1299 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1300 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1301 - config-file-provider:
1303 - file-id: clouds-yaml
1304 target: '$HOME/.config/openstack/clouds.yaml'
1306 target: '$HOME/.npmrc'
1308 target: '$HOME/.config/pip/pip.conf'
1311 - timed: '{obj:cron}'
1314 - lf-infra-pre-build
1316 properties-content: OS_CLOUD={openstack-cloud}
1319 condition-kind: boolean-expression
1320 condition-expression: '{openstack-stack-cleanup}'
1322 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1325 condition-kind: boolean-expression
1326 condition-expression: '{openstack-server-cleanup}'
1328 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1331 condition-kind: boolean-expression
1332 condition-expression: '{openstack-volume-cleanup}'
1334 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1337 condition-kind: boolean-expression
1338 condition-expression: '{openstack-image-protect}'
1340 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1342 condition-kind: boolean-expression
1343 condition-expression: '{openstack-image-cleanup}'
1346 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1347 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1353 name: '{project-name}-openstack-cron'
1354 id: gerrit-openstack-cron
1355 <<: *lf_openstack_cron
1358 - lf-infra-gerrit-scm:
1359 git-url: '{git-url}'
1360 refspec: 'refs/heads/{branch}'
1362 submodule-recursive: true
1363 submodule-timeout: '{submodule-timeout}'
1364 choosing-strategy: default
1365 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1368 name: '{project-name}-openstack-cron'
1369 id: github-openstack-cron
1370 <<: *lf_openstack_cron
1373 - lf-infra-github-scm:
1374 url: '{git-clone-url}{github-org}/{project}'
1376 branch: 'refs/heads/{branch}'
1377 submodule-recursive: true
1378 submodule-timeout: '{submodule-timeout}'
1379 choosing-strategy: default
1380 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1386 - lf_packer_merge: &lf_packer_merge
1387 name: lf-packer-merge
1389 ######################
1390 # Default parameters #
1391 ######################
1394 openstack-cloud: vex
1396 #####################
1397 # Job Configuration #
1398 #####################
1401 - lf-infra-parameters:
1402 project: '{project}'
1405 - lf-packer-parameters:
1406 packer-version: '{packer-version}'
1409 - lf-infra-packer-build:
1410 openstack: '{openstack}'
1411 openstack-cloud: '{openstack-cloud}'
1412 packer-cloud-settings: '{packer-cloud-settings}'
1413 packer-version: '{packer-version}'
1414 platform: '{platforms}'
1415 template: '{templates}'
1416 - description-setter:
1417 description: '.*Creating the image:(.*)'
1420 name: '{project-name}-packer-merge-{platforms}-{templates}'
1421 id: gerrit-packer-merge
1422 <<: *lf_packer_common
1423 # yamllint disable-line rule:key-duplicates
1424 <<: *lf_packer_merge
1426 ######################
1427 # Default parameters #
1428 ######################
1430 git-url: '$GIT_URL/$GERRIT_PROJECT'
1432 gerrit_merge_triggers:
1433 - change-merged-event
1434 - comment-added-contains-event:
1435 comment-contains-value: remerge$
1437 #####################
1438 # Job Configuration #
1439 #####################
1442 - lf-infra-gerrit-scm:
1443 git-url: '{git-url}'
1444 refspec: '$GERRIT_REFSPEC'
1445 branch: '$GERRIT_BRANCH'
1446 submodule-recursive: '{submodule-recursive}'
1447 submodule-timeout: '{submodule-timeout}'
1448 choosing-strategy: gerrit
1449 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1452 - timed: '{obj:cron}'
1454 server-name: '{gerrit-server-name}'
1455 trigger-on: '{obj:gerrit_merge_triggers}'
1457 - project-compare-type: ANT
1458 project-pattern: '{project}'
1460 - branch-compare-type: ANT
1461 branch-pattern: '**/{branch}'
1463 - compare-type: REG_EXP
1464 pattern: 'packer\/provision\/.*\.sh'
1465 - compare-type: REG_EXP
1466 pattern: 'packer\/provision\/.*\.bat'
1467 - compare-type: REG_EXP
1468 pattern: 'packer\/provision\/.*\.ps1'
1469 - compare-type: REG_EXP
1470 pattern: 'packer\/provision\/{templates}\.yaml'
1471 - compare-type: REG_EXP
1472 pattern: 'packer\/provision\/local-{templates}\.yaml'
1473 - compare-type: REG_EXP
1474 pattern: 'packer\/templates\/{templates}\.json'
1475 - compare-type: REG_EXP
1476 pattern: 'packer\/vars\/{platforms}\.json'
1479 name: '{project-name}-packer-merge-{platforms}-{templates}'
1480 id: github-packer-merge
1481 <<: *lf_packer_common
1482 # yamllint disable-line rule:key-duplicates
1483 <<: *lf_packer_merge
1485 #####################
1486 # Job Configuration #
1487 #####################
1490 - lf-infra-properties:
1491 project: '{project}'
1492 build-days-to-keep: 7
1494 url: '{github-url}/{github-org}/{project}'
1497 - lf-infra-github-scm:
1498 url: '{git-clone-url}{github-org}/{project}'
1500 +refs/heads/*:refs/remotes/origin/*
1501 +refs/pull/*:refs/remotes/origin/pr/*
1502 branch: '$GERRIT_REFSPEC'
1503 submodule-recursive: '{submodule-recursive}'
1504 submodule-timeout: '{submodule-timeout}'
1505 choosing-strategy: default
1506 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1509 - timed: '{obj:cron}'
1514 - github-pull-request:
1515 trigger-phrase: '^remerge$'
1516 only-trigger-phrase: true
1517 status-context: 'Packer {platforms}-{templates} Merge'
1522 white-list: '{obj:github_pr_whitelist}'
1523 admin-list: '{obj:github_pr_admin_list}'
1524 # included-regions MUST match Gerrit Trigger file-paths
1526 - 'packer\/provision\/.*\.sh'
1527 - 'packer\/provision\/.*\.bat'
1528 - 'packer\/provision\/.*\.ps1'
1529 - 'packer\/provision\/{templates}\.yaml'
1530 - 'packer\/provision\/local-{templates}\.yaml'
1531 - 'packer\/templates\/{templates}\.json'
1532 - 'packer\/vars\/{platforms}\.json'
1533 white-list-target-branches:
1540 - lf_packer_verify: &lf_packer_verify
1541 name: lf-packer-verify
1543 ######################
1544 # Default parameters #
1545 ######################
1549 openstack-cloud: vex
1551 gerrit_verify_triggers:
1552 - patchset-created-event:
1553 exclude-drafts: true
1554 exclude-trivial-rebase: false
1555 exclude-no-code-change: false
1556 - draft-published-event
1557 - comment-added-contains-event:
1558 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1560 gerrit_trigger_file_paths:
1561 - compare-type: REG_EXP
1562 pattern: 'packer\/.*'
1564 # github_included_regions MUST match gerrit_trigger_file_paths
1565 github_included_regions:
1568 #####################
1569 # Job Configuration #
1570 #####################
1575 - lf-infra-packer-validate:
1576 openstack: '{openstack}'
1577 openstack-cloud: '{openstack-cloud}'
1578 packer-cloud-settings: '{packer-cloud-settings}'
1579 packer-version: '{packer-version}'
1582 name: '{project-name}-packer-verify'
1583 id: gerrit-packer-verify
1584 <<: *lf_packer_common
1585 # yamllint disable-line rule:key-duplicates
1586 <<: *lf_packer_verify
1588 ######################
1589 # Default parameters #
1590 ######################
1592 git-url: '$GIT_URL/$GERRIT_PROJECT'
1594 #####################
1595 # Job Configuration #
1596 #####################
1599 - lf-infra-gerrit-scm:
1600 git-url: '{git-url}'
1601 refspec: '$GERRIT_REFSPEC'
1602 branch: '$GERRIT_BRANCH'
1603 submodule-recursive: '{submodule-recursive}'
1604 submodule-timeout: '{submodule-timeout}'
1605 choosing-strategy: gerrit
1606 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1610 server-name: '{gerrit-server-name}'
1611 trigger-on: '{obj:gerrit_verify_triggers}'
1613 - project-compare-type: ANT
1614 project-pattern: '{project}'
1616 - branch-compare-type: ANT
1617 branch-pattern: '**/{branch}'
1618 file-paths: '{obj:gerrit_trigger_file_paths}'
1621 name: '{project-name}-packer-verify'
1622 id: github-packer-verify
1623 <<: *lf_packer_common
1624 # yamllint disable-line rule:key-duplicates
1625 <<: *lf_packer_verify
1627 #####################
1628 # Job Configuration #
1629 #####################
1632 - lf-infra-properties:
1633 project: '{project}'
1634 build-days-to-keep: 7
1636 url: '{github-url}/{github-org}/{project}'
1639 - lf-infra-github-scm:
1640 url: '{git-clone-url}{github-org}/{project}'
1641 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1643 submodule-recursive: '{submodule-recursive}'
1644 submodule-timeout: '{submodule-timeout}'
1645 choosing-strategy: default
1646 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1649 - github-pull-request:
1650 trigger-phrase: '^(recheck|reverify)$'
1651 only-trigger-phrase: false
1652 status-context: 'Packer Verify'
1655 included-regions: '{obj:github_included_regions}'
1656 white-list-target-branches:
1663 - lf_puppet_verify: &lf_puppet_verify
1664 name: lf-puppet-verify
1666 ######################
1667 # Default parameters #
1668 ######################
1671 build-days-to-keep: 7
1674 git-url: '$GIT_URL/$GERRIT_PROJECT'
1675 github-url: 'https://github.com'
1678 puppet-lint-version: 2.3.6
1680 submodule-recursive: true
1681 submodule-timeout: 10
1683 gerrit_trigger_file_paths:
1684 - compare-type: REG_EXP
1687 # github_included_regions MUST match gerrit_trigger_file_paths
1688 github_included_regions:
1691 #####################
1692 # Job Configuration #
1693 #####################
1695 project-type: freestyle
1696 node: '{build-node}'
1698 disabled: '{disable-job}'
1701 - lf-infra-properties:
1702 build-days-to-keep: '{build-days-to-keep}'
1705 - lf-infra-parameters:
1706 project: '{project}'
1709 - lf-puppet-parameters:
1710 puppet-lint-version: '{puppet-lint-version}'
1713 - lf-infra-wrappers:
1714 build-timeout: '{build-timeout}'
1715 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1718 - shell: !include-raw-escape: ../shell/puppet-lint.sh
1724 name: '{project-name}-puppet-verify'
1725 id: gerrit-puppet-verify
1726 <<: *lf_puppet_verify
1728 ######################
1729 # Default parameters #
1730 ######################
1732 gerrit_verify_triggers:
1733 - patchset-created-event:
1734 exclude-drafts: true
1735 exclude-trivial-rebase: false
1736 exclude-no-code-change: false
1737 - draft-published-event
1738 - comment-added-contains-event:
1739 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1741 #####################
1742 # Job Configuration #
1743 #####################
1746 - lf-infra-gerrit-scm:
1747 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1748 git-url: '{git-url}'
1749 refspec: '$GERRIT_REFSPEC'
1750 branch: '$GERRIT_BRANCH'
1751 submodule-recursive: '{submodule-recursive}'
1752 submodule-timeout: '{submodule-timeout}'
1753 choosing-strategy: gerrit
1757 server-name: '{gerrit-server-name}'
1758 trigger-on: '{obj:gerrit_verify_triggers}'
1760 - project-compare-type: ANT
1761 project-pattern: '{project}'
1763 - branch-compare-type: ANT
1764 branch-pattern: '**/{branch}'
1765 file-paths: '{obj:gerrit_trigger_file_paths}'
1768 name: '{project-name}-puppet-verify'
1769 id: github-puppet-verify
1770 <<: *lf_puppet_verify
1772 #####################
1773 # Job Configuration #
1774 #####################
1777 - lf-infra-properties:
1778 project: '{project}'
1779 build-days-to-keep: 7
1781 url: '{github-url}/{github-org}/{project}'
1784 - lf-infra-github-scm:
1785 url: '{git-clone-url}{github-org}/{project}'
1786 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1788 submodule-recursive: '{submodule-recursive}'
1789 submodule-timeout: '{submodule-timeout}'
1790 choosing-strategy: default
1791 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1794 - github-pull-request:
1795 trigger-phrase: '^(recheck|reverify)$'
1796 only-trigger-phrase: false
1797 status-context: 'Puppet Verify'
1800 included-regions: '{obj:github_included_regions}'
1801 white-list-target-branches: