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
117 gerrit_trigger_file_paths:
118 - compare-type: REG_EXP
120 - compare-type: REG_EXP
121 pattern: 'global-jjb'
122 - compare-type: REG_EXP
125 # github_included_regions MUST match gerrit_trigger_file_paths
126 github_included_regions:
131 #####################
132 # Job Configuration #
133 #####################
135 project-type: freestyle
137 disabled: '{disable-job}'
140 - lf-infra-properties:
142 build-days-to-keep: 7
145 - lf-infra-parameters:
149 - lf-infra-jjb-parameters:
150 jjb-cache: '{jjb-cache}'
151 jjb-version: '{jjb-version}'
155 build-timeout: '{build-timeout}'
156 jenkins-ssh-credential: '{jenkins-ssh-credential}'
161 ######################
162 # Gerrit Branch Lock #
163 ######################
166 name: '{project-name}-gerrit-branch-lock-{stream}'
167 id: gerrit-branch-lock
169 ######################
170 # Default parameters #
171 ######################
175 git-url: '$GIT_URL/$GERRIT_PROJECT'
177 submodule-timeout: 10
178 gerrit_merge_triggers:
179 - comment-added-contains-event:
180 comment-contains-value: (un)?lock branch$
182 #####################
183 # Job Configuration #
184 #####################
186 project-type: freestyle
188 disabled: '{disable-job}'
191 - lf-infra-properties:
193 build-days-to-keep: 1
196 - lf-infra-parameters:
204 jenkins-ssh-credential: '{jenkins-ssh-credential}'
207 - lf-infra-gerrit-scm:
211 submodule-recursive: false
212 submodule-timeout: '{submodule-timeout}'
213 choosing-strategy: default
214 jenkins-ssh-credential: '{jenkins-ssh-credential}'
218 server-name: '{gerrit-server-name}'
219 trigger-on: '{obj:gerrit_merge_triggers}'
221 - project-compare-type: ANT
222 project-pattern: '{project}'
224 - branch-compare-type: ANT
225 branch-pattern: '**/{branch}'
228 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
234 ##########################################
235 # Jenkins Configuration Management Merge #
236 ##########################################
239 name: lf-jenkins-cfg-clouds
243 properties-content: 'jenkins_silos={jenkins-silos}'
244 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
245 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
248 name: lf-jenkins-cfg-global-vars
252 properties-content: 'jenkins_silos={jenkins-silos}'
253 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
254 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
256 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
257 name: lf-jenkins-cfg-merge
259 ######################
260 # Default parameters #
261 ######################
266 git-url: '$GIT_URL/$GERRIT_PROJECT'
267 github-url: 'https://github.com'
268 jenkins-silos: production sandbox
269 submodule-timeout: 10
271 gerrit_merge_triggers:
272 - change-merged-event
273 - comment-added-contains-event:
274 comment-contains-value: remerge$
276 gerrit_trigger_file_paths:
277 - compare-type: REG_EXP
278 pattern: 'jenkins-config\/.*'
280 # github_included_regions MUST match gerrit_trigger_file_paths
281 github_included_regions:
282 - 'jenkins-config\/.*'
284 #####################
285 # Job Configuration #
286 #####################
288 project-type: freestyle
291 disabled: '{disable-job}'
294 - lf-infra-properties:
296 build-days-to-keep: 1
299 - lf-infra-parameters:
307 jenkins-ssh-credential: '{jenkins-ssh-credential}'
311 - lf-jenkins-cfg-global-vars:
312 jenkins-silos: '{jenkins-silos}'
313 - lf-jenkins-cfg-clouds:
314 jenkins-silos: '{jenkins-silos}'
320 name: '{project-name}-jenkins-cfg-merge'
321 id: gerrit-jenkins-cfg-merge
322 <<: *lf_jenkins_cfg_merge
325 - lf-infra-gerrit-scm:
327 refspec: 'refs/heads/{branch}'
329 submodule-recursive: true
330 submodule-timeout: '{submodule-timeout}'
331 choosing-strategy: default
332 jenkins-ssh-credential: '{jenkins-ssh-credential}'
335 - timed: '{obj:cron}'
337 server-name: '{gerrit-server-name}'
338 trigger-on: '{obj:gerrit_merge_triggers}'
340 - project-compare-type: ANT
341 project-pattern: '{project}'
343 - branch-compare-type: ANT
344 branch-pattern: '**/{branch}'
345 file-paths: '{obj:gerrit_trigger_file_paths}'
348 name: '{project-name}-jenkins-cfg-merge'
349 id: github-jenkins-cfg-merge
350 <<: *lf_jenkins_cfg_merge
353 - lf-infra-properties:
355 build-days-to-keep: 1
357 url: '{github-url}/{github-org}/{project}'
360 - lf-infra-github-scm:
361 url: '{git-clone-url}{github-org}/{project}'
363 branch: 'refs/heads/{branch}'
364 submodule-recursive: true
365 submodule-timeout: '{submodule-timeout}'
366 choosing-strategy: default
367 jenkins-ssh-credential: '{jenkins-ssh-credential}'
370 - timed: '{obj:cron}'
374 - github-pull-request:
375 trigger-phrase: '^remerge$'
376 only-trigger-phrase: true
377 status-context: 'Jenkins CFG Merge'
382 white-list: '{obj:github_pr_whitelist}'
383 admin-list: '{obj:github_pr_admin_list}'
384 included-regions: '{obj:github_included_regions}'
385 white-list-target-branches:
388 ###########################################
389 # Jenkins Configuration Management Verify #
390 ###########################################
392 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
393 name: lf-jenkins-cfg-verify
395 ######################
396 # Default parameters #
397 ######################
400 build-days-to-keep: 7
402 git-url: '$GIT_URL/$GERRIT_PROJECT'
403 github-url: 'https://github.com'
405 submodule-timeout: 10
407 gerrit_verify_triggers:
408 - patchset-created-event:
410 exclude-trivial-rebase: false
411 exclude-no-code-change: false
412 - draft-published-event
413 - comment-added-contains-event:
414 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
416 gerrit_trigger_file_paths:
417 - compare-type: REG_EXP
418 pattern: 'jenkins-config\/.*'
420 # github_included_regions MUST match gerrit_trigger_file_paths
421 github_included_regions:
422 - 'jenkins-config\/.*'
424 #####################
425 # Job Configuration #
426 #####################
428 project-type: freestyle
431 disabled: '{disable-job}'
434 - lf-infra-properties:
436 build-days-to-keep: 1
439 - lf-infra-parameters:
447 jenkins-ssh-credential: '{jenkins-ssh-credential}'
448 - config-file-provider:
449 # Listed after to override openstack-infra-wrappers clouds.yaml
452 - file-id: clouds-yaml
453 target: '$HOME/.config/openstack/clouds.yaml'
455 target: '$HOME/.npmrc'
457 target: '$HOME/.config/pip/pip.conf'
462 properties-content: OS_CLOUD={openstack-cloud}
463 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
469 name: '{project-name}-jenkins-cfg-verify'
470 id: gerrit-jenkins-cfg-verify
471 <<: *lf_jenkins_cfg_verify
474 - lf-infra-gerrit-scm:
476 refspec: 'refs/heads/{branch}'
478 submodule-recursive: true
479 submodule-timeout: '{submodule-timeout}'
480 choosing-strategy: default
481 jenkins-ssh-credential: '{jenkins-ssh-credential}'
485 server-name: '{gerrit-server-name}'
486 trigger-on: '{obj:gerrit_verify_triggers}'
488 - project-compare-type: ANT
489 project-pattern: '{project}'
491 - branch-compare-type: ANT
492 branch-pattern: '**/{branch}'
493 file-paths: '{obj:gerrit_trigger_file_paths}'
496 name: '{project-name}-jenkins-cfg-verify'
497 id: github-jenkins-cfg-verify
498 <<: *lf_jenkins_cfg_verify
502 url: '{github-url}/{github-org}/{project}'
505 - lf-infra-github-scm:
506 url: '{git-clone-url}{github-org}/{project}'
507 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
509 submodule-recursive: true
510 submodule-timeout: '{submodule-timeout}'
511 choosing-strategy: default
512 jenkins-ssh-credential: '{jenkins-ssh-credential}'
515 - github-pull-request:
516 trigger-phrase: '^(recheck|reverify)$'
517 only-trigger-phrase: false
518 status-context: 'Jenkins CFG Verify'
521 included-regions: '{obj:github_included_regions}'
522 white-list-target-branches:
525 ###########################
526 # JENKINS SANDBOX CLEANUP #
527 ###########################
529 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
530 name: lf-jenkins-sandbox-cleanup
532 ######################
533 # Default parameters #
534 ######################
537 # Run every Saturday at 08:00 UTC
541 #####################
542 # Job Configuration #
543 #####################
545 project-type: freestyle
548 disabled: '{disable-job}'
551 - lf-infra-jjb-parameters:
552 jjb-cache: '{jjb-cache}'
553 jjb-version: '{jjb-version}'
556 - timed: '{obj:cron}'
560 - shell: !include-raw-escape:
561 - ../shell/jjb-install.sh
562 - ../shell/jenkins-sandbox-cleanup.sh
563 - ../shell/jjb-cleanup.sh
566 name: '{project-name}-jenkins-sandbox-cleanup'
567 id: gerrit-jenkins-sandbox-cleanup
569 # yamllint disable-line rule:key-duplicates
570 <<: *lf_jenkins_sandbox_cleanup
573 name: '{project-name}-jenkins-sandbox-cleanup'
574 id: github-jenkins-sandbox-cleanup
576 # yamllint disable-line rule:key-duplicates
577 <<: *lf_jenkins_sandbox_cleanup
584 - lf_jjb_deploy_job: &lf_jjb_deploy_job
585 name: lf-jjb-deploy-job
587 ######################
588 # Default parameters #
589 ######################
593 # jjb-deploy should always clone $PROJECT regardless of what
594 # $GERRIT_PROJECT triggered the job.
595 git-url: '$GIT_URL/$PROJECT'
596 github-url: 'https://github.com'
598 submodule-timeout: 10
599 gerrit_jjb_deploy_job_triggers:
600 - comment-added-contains-event:
601 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
603 #####################
604 # Job Configuration #
605 #####################
607 project-type: freestyle
610 disabled: '{disable-job}'
613 - lf-infra-properties:
615 build-days-to-keep: 1
618 - lf-infra-parameters:
626 jenkins-ssh-credential: '{jenkins-ssh-credential}'
630 pip-packages: jenkins-job-builder
631 - lf-infra-jjbini-sandbox
632 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
638 name: '{project-name}-jjb-deploy-job'
639 id: gerrit-jjb-deploy-job
640 <<: *lf_jjb_deploy_job
643 - lf-infra-gerrit-scm:
645 refspec: 'refs/heads/{branch}'
647 submodule-recursive: true
648 submodule-timeout: '{submodule-timeout}'
649 choosing-strategy: default
650 jenkins-ssh-credential: '{jenkins-ssh-credential}'
654 server-name: '{gerrit-server-name}'
655 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
657 - project-compare-type: ANT
658 project-pattern: '**'
660 - branch-compare-type: ANT
669 name: '{project-name}-jjb-deploy-job'
670 id: github-jjb-deploy-job
671 <<: *lf_jjb_deploy_job
674 - lf-infra-properties:
676 build-days-to-keep: 1
678 url: '{github-url}/{github-org}/{project}'
681 - lf-infra-github-scm:
682 url: '{git-clone-url}{github-org}/{project}'
683 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
685 submodule-recursive: true
686 submodule-timeout: '{submodule-timeout}'
687 choosing-strategy: default
688 jenkins-ssh-credential: '{jenkins-ssh-credential}'
691 - github-pull-request:
692 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
693 only-trigger-phrase: true
694 status-context: 'JJB Deploy Job'
697 white-list-target-branches:
704 - lf_jjb_merge: &lf_jjb_merge
707 ######################
708 # Default parameters #
709 ######################
711 gerrit_merge_triggers:
712 - change-merged-event
713 - comment-added-contains-event:
714 comment-contains-value: remerge$
716 #####################
717 # Job Configuration #
718 #####################
723 - shell: !include-raw-escape:
724 - ../shell/jjb-install.sh
725 - ../shell/jjb-merge-job.sh
726 - ../shell/jjb-cleanup.sh
729 name: '{project-name}-jjb-merge'
732 # yamllint disable-line rule:key-duplicates
735 git-url: '$GIT_URL/$GERRIT_PROJECT'
738 - lf-infra-gerrit-scm:
742 submodule-recursive: '{submodule-recursive}'
743 submodule-timeout: '{submodule-timeout}'
744 choosing-strategy: default
745 jenkins-ssh-credential: '{jenkins-ssh-credential}'
749 server-name: '{gerrit-server-name}'
750 trigger-on: '{obj:gerrit_merge_triggers}'
752 - project-compare-type: ANT
753 project-pattern: '{project}'
755 - branch-compare-type: ANT
756 branch-pattern: '**/{branch}'
757 file-paths: '{obj:gerrit_trigger_file_paths}'
760 name: '{project-name}-jjb-merge'
763 # yamllint disable-line rule:key-duplicates
766 #####################
767 # Job Configuration #
768 #####################
771 - lf-infra-properties:
773 build-days-to-keep: 7
775 url: '{github-url}/{github-org}/{project}'
778 - lf-infra-github-scm:
779 url: '{git-clone-url}{github-org}/{project}'
781 branch: 'refs/heads/{branch}'
782 submodule-recursive: '{submodule-recursive}'
783 submodule-timeout: '{submodule-timeout}'
784 choosing-strategy: default
785 jenkins-ssh-credential: '{jenkins-ssh-credential}'
791 - github-pull-request:
792 trigger-phrase: '^remerge$'
793 only-trigger-phrase: true
794 status-context: 'JJB Merge'
799 white-list: '{obj:github_pr_whitelist}'
800 admin-list: '{obj:github_pr_admin_list}'
801 included-regions: '{obj:github_included_regions}'
802 white-list-target-branches:
809 - lf_jjb_verify: &lf_jjb_verify
812 ######################
813 # Default parameters #
814 ######################
816 build-concurrent: true
818 gerrit_verify_triggers:
819 - patchset-created-event:
821 exclude-trivial-rebase: false
822 exclude-no-code-change: false
823 - draft-published-event
824 - comment-added-contains-event:
825 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
827 #####################
828 # Job Configuration #
829 #####################
831 concurrent: '{build-concurrent}'
836 - shell: !include-raw-escape:
837 - ../shell/git-validate-jira-urls.sh
838 - ../shell/jjb-install.sh
839 - ../shell/jjb-verify-job.sh
840 - ../shell/jjb-check-unicode.sh
841 - ../shell/jjb-cleanup.sh
842 - lf-infra-gpg-verify-git-signature
845 name: '{project-name}-jjb-verify'
846 id: gerrit-jjb-verify
848 # yamllint disable-line rule:key-duplicates
851 ######################
852 # Default parameters #
853 ######################
855 git-url: '$GIT_URL/$GERRIT_PROJECT'
857 #####################
858 # Job Configuration #
859 #####################
862 - lf-infra-gerrit-scm:
864 refspec: '$GERRIT_REFSPEC'
865 branch: '$GERRIT_BRANCH'
866 submodule-recursive: '{submodule-recursive}'
867 submodule-timeout: '{submodule-timeout}'
868 choosing-strategy: gerrit
869 jenkins-ssh-credential: '{jenkins-ssh-credential}'
873 server-name: '{gerrit-server-name}'
874 trigger-on: '{obj:gerrit_verify_triggers}'
876 - project-compare-type: ANT
877 project-pattern: '{project}'
879 - branch-compare-type: ANT
880 branch-pattern: '**/{branch}'
881 file-paths: '{obj:gerrit_trigger_file_paths}'
884 name: '{project-name}-jjb-verify'
885 id: github-jjb-verify
887 # yamllint disable-line rule:key-duplicates
890 #####################
891 # Job Configuration #
892 #####################
895 - lf-infra-properties:
897 build-days-to-keep: 7
899 url: '{github-url}/{github-org}/{project}'
902 - lf-infra-github-scm:
903 url: '{git-clone-url}{github-org}/{project}'
904 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
906 submodule-recursive: '{submodule-recursive}'
907 submodule-timeout: '{submodule-timeout}'
908 choosing-strategy: default
909 jenkins-ssh-credential: '{jenkins-ssh-credential}'
912 - github-pull-request:
913 trigger-phrase: '^(recheck|reverify)$'
914 only-trigger-phrase: false
915 status-context: 'JJB Verify'
918 included-regions: '{obj:github_included_regions}'
919 white-list-target-branches:
922 ############################
923 # JJB Verify Upstream GJJB #
924 ############################
926 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
927 name: lf-jjb-verify-upstream-gjjb
929 #####################
930 # Job Configuration #
931 #####################
938 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
939 git cherry-pick FETCH_HEAD
941 - shell: !include-raw-escape:
942 - ../shell/git-validate-jira-urls.sh
943 - ../shell/jjb-install.sh
944 - ../shell/jjb-verify-job.sh
945 - ../shell/jjb-check-unicode.sh
946 - ../shell/jjb-cleanup.sh
947 - lf-infra-gpg-verify-git-signature
950 name: '{project-name}-jjb-verify-upstream-gjjb'
951 id: gerrit-jjb-verify-upstream-gjjb
953 # yamllint disable-line rule:key-duplicates
954 <<: *lf_jjb_verify_upstream_gjjb
956 ######################
957 # Default parameters #
958 ######################
960 git-url: '$GIT_URL/$PROJECT'
961 submodule-timeout: 10
963 #####################
964 # Job Configuration #
965 #####################
968 - lf-infra-gerrit-scm:
972 submodule-recursive: true
973 submodule-timeout: '{submodule-timeout}'
974 choosing-strategy: default
975 jenkins-ssh-credential: '{jenkins-ssh-credential}'
979 server-name: 'LinuxFoundation'
981 - patchset-created-event:
983 exclude-trivial-rebase: false
984 exclude-no-code-change: false
985 - draft-published-event
986 - comment-added-contains-event:
987 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
989 - project-compare-type: ANT
990 project-pattern: 'releng/global-jjb'
992 - branch-compare-type: ANT
993 branch-pattern: '**/master'
995 gerrit-build-failed-codereview-value: -1
996 gerrit-build-failed-verified-value: 0
997 gerrit-build-successful-codereview-value: 1
998 gerrit-build-successful-verified-value: 0
1004 - lf_license_check: &lf_license_check
1005 name: lf-license-check
1007 ######################
1008 # Default parameters #
1009 ######################
1012 build-days-to-keep: 7
1021 git-url: '$GIT_URL/$PROJECT'
1022 github-url: 'https://github.com'
1024 license-exclude-paths: ''
1025 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1026 project-pattern: '**'
1029 submodule-timeout: 10
1031 #####################
1032 # Job Configuration #
1033 #####################
1035 project-type: freestyle
1036 node: '{build-node}'
1038 disabled: '{disable-job}'
1041 - lf-infra-properties:
1042 build-days-to-keep: '{build-days-to-keep}'
1045 - lf-infra-parameters:
1046 project: '{project}'
1051 - lf-infra-wrappers:
1052 build-timeout: '{build-timeout}'
1053 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1057 file-patterns: '{file-patterns}'
1058 spdx-disable: '{spdx-disable}'
1059 lhc-version: '{lhc-version}'
1060 license-exclude-paths: '{license-exclude-paths}'
1061 licenses-allowed: '{licenses-allowed}'
1067 name: '{project-name}-license-check'
1068 id: gerrit-license-check
1069 <<: *lf_license_check
1071 git-url: '$GIT_URL/$GERRIT_PROJECT'
1074 - lf-infra-gerrit-scm:
1075 git-url: '{git-url}'
1076 refspec: '$GERRIT_REFSPEC'
1077 branch: '$GERRIT_BRANCH'
1078 # Submodules are out of the project's control
1079 submodule-recursive: false
1080 submodule-timeout: '{submodule-timeout}'
1081 choosing-strategy: gerrit
1082 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1086 server-name: '{gerrit-server-name}'
1087 # Trigger should not be overridable as we want to always run
1089 - patchset-created-event:
1090 exclude-drafts: false
1091 exclude-trivial-rebase: false
1092 exclude-no-code-change: false
1093 - draft-published-event
1094 - comment-added-contains-event:
1095 comment-contains-value: recheck$
1097 - project-compare-type: ANT
1098 project-pattern: '{project-pattern}'
1100 - branch-compare-type: ANT
1101 branch-pattern: '**'
1104 name: '{project-name}-license-check'
1105 id: github-license-check
1106 <<: *lf_license_check
1109 - lf-infra-properties:
1110 build-days-to-keep: '{build-days-to-keep}'
1112 url: '{github-url}/{github-org}/{project}'
1115 - lf-infra-github-scm:
1116 url: '{git-clone-url}{github-org}/{project}'
1117 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1119 # Submodules are out of the project's control
1120 submodule-recursive: false
1121 submodule-timeout: '{submodule-timeout}'
1122 choosing-strategy: default
1123 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1126 - github-pull-request:
1127 trigger-phrase: '^recheck$'
1128 only-trigger-phrase: false
1129 status-context: 'License Check'
1132 white-list-target-branches:
1135 ####################
1136 # Info YAML Verify #
1137 ####################
1139 - lf_info_yaml_verify: &lf_info_yaml_verify
1140 name: lf-info-yaml-verify
1142 ######################
1143 # Default parameters #
1144 ######################
1146 gerrit_verify_triggers:
1147 - patchset-created-event:
1148 exclude-drafts: true
1149 exclude-trivial-rebase: false
1150 exclude-no-code-change: false
1151 - draft-published-event
1152 - comment-added-contains-event:
1153 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1155 #####################
1156 # Job Configuration #
1157 #####################
1162 - shell: !include-raw-escape:
1163 - ../shell/git-validate-info-yaml.sh
1164 - ../shell/info-file-validate.sh
1167 name: '{project-name}-info-yaml-verify'
1168 id: gerrit-info-yaml-verify
1170 # yamllint disable-line rule:key-duplicates
1171 <<: *lf_info_yaml_verify
1173 git-url: '$GIT_URL/$GERRIT_PROJECT'
1176 - lf-infra-gerrit-scm:
1177 git-url: '{git-url}'
1178 refspec: '$GERRIT_REFSPEC'
1179 branch: '$GERRIT_BRANCH'
1180 submodule-recursive: '{submodule-recursive}'
1181 submodule-timeout: '{submodule-timeout}'
1182 choosing-strategy: gerrit
1183 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1187 server-name: '{gerrit-server-name}'
1188 trigger-on: '{obj:gerrit_verify_triggers}'
1190 - project-compare-type: ANT
1191 project-pattern: '{project}'
1193 - branch-compare-type: ANT
1194 branch-pattern: '**/{branch}'
1196 - compare-type: REG_EXP
1197 pattern: 'INFO.yaml'
1200 name: '{project-name}-info-yaml-verify'
1201 id: github-info-yaml-verify
1203 # yamllint disable-line rule:key-duplicates
1204 <<: *lf_info_yaml_verify
1206 github-url: 'https://github.com'
1209 url: '{github-url}/{github-org}/{project}'
1212 - lf-infra-github-scm:
1213 url: '{git-clone-url}{github-org}/{project}'
1214 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1216 submodule-recursive: '{submodule-recursive}'
1217 submodule-timeout: '{submodule-timeout}'
1218 choosing-strategy: default
1219 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1222 - github-pull-request:
1223 trigger-phrase: '^(recheck|reverify)$'
1224 only-trigger-phrase: false
1225 status-context: 'INFO File Verify'
1228 # included-regions MUST match gerrit file-paths
1229 included-regions: 'INFO.yaml'
1230 white-list-target-branches:
1237 - lf_openstack_cron: &lf_openstack_cron
1238 name: lf-openstack-cron
1240 ######################
1241 # Default parameters #
1242 ######################
1245 build-days-to-keep: 7
1249 git-url: '$GIT_URL/$PROJECT'
1250 github-url: 'https://github.com'
1251 openstack-cloud: vex
1252 openstack-image-cleanup: true
1253 openstack-image-cleanup-age: 30
1254 openstack-image-protect: true
1255 openstack-server-cleanup: true
1256 openstack-stack-cleanup: true
1257 openstack-volume-cleanup: true
1259 submodule-timeout: 10
1261 #####################
1262 # Job Configuration #
1263 #####################
1265 project-type: freestyle
1266 node: '{build-node}'
1268 disabled: '{disable-job}'
1271 - lf-infra-properties:
1272 build-days-to-keep: '{build-days-to-keep}'
1275 - lf-infra-parameters:
1276 project: '{project}'
1281 default: '{jenkins-urls}'
1283 Space separated list of Jenkins URLs to check for active builds.
1286 - lf-infra-wrappers:
1287 build-timeout: '{build-timeout}'
1288 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1289 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1290 - config-file-provider:
1292 - file-id: clouds-yaml
1293 target: '$HOME/.config/openstack/clouds.yaml'
1295 target: '$HOME/.npmrc'
1297 target: '$HOME/.config/pip/pip.conf'
1300 - timed: '{obj:cron}'
1303 - lf-infra-pre-build
1305 properties-content: OS_CLOUD={openstack-cloud}
1308 condition-kind: boolean-expression
1309 condition-expression: '{openstack-stack-cleanup}'
1311 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1314 condition-kind: boolean-expression
1315 condition-expression: '{openstack-server-cleanup}'
1317 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1320 condition-kind: boolean-expression
1321 condition-expression: '{openstack-volume-cleanup}'
1323 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1326 condition-kind: boolean-expression
1327 condition-expression: '{openstack-image-protect}'
1329 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1331 condition-kind: boolean-expression
1332 condition-expression: '{openstack-image-cleanup}'
1335 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1336 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1342 name: '{project-name}-openstack-cron'
1343 id: gerrit-openstack-cron
1344 <<: *lf_openstack_cron
1347 - lf-infra-gerrit-scm:
1348 git-url: '{git-url}'
1349 refspec: 'refs/heads/{branch}'
1351 submodule-recursive: true
1352 submodule-timeout: '{submodule-timeout}'
1353 choosing-strategy: default
1354 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1357 name: '{project-name}-openstack-cron'
1358 id: github-openstack-cron
1359 <<: *lf_openstack_cron
1362 - lf-infra-github-scm:
1363 url: '{git-clone-url}{github-org}/{project}'
1365 branch: 'refs/heads/{branch}'
1366 submodule-recursive: true
1367 submodule-timeout: '{submodule-timeout}'
1368 choosing-strategy: default
1369 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1375 - lf_packer_merge: &lf_packer_merge
1376 name: lf-packer-merge
1378 ######################
1379 # Default parameters #
1380 ######################
1383 openstack-cloud: vex
1385 #####################
1386 # Job Configuration #
1387 #####################
1390 - lf-infra-parameters:
1391 project: '{project}'
1394 - lf-packer-parameters:
1395 packer-version: '{packer-version}'
1398 - lf-infra-packer-build:
1399 openstack: '{openstack}'
1400 openstack-cloud: '{openstack-cloud}'
1401 packer-cloud-settings: '{packer-cloud-settings}'
1402 packer-version: '{packer-version}'
1403 platform: '{platforms}'
1404 template: '{templates}'
1405 - description-setter:
1406 description: '.*Creating the image:(.*)'
1409 name: '{project-name}-packer-merge-{platforms}-{templates}'
1410 id: gerrit-packer-merge
1411 <<: *lf_packer_common
1412 # yamllint disable-line rule:key-duplicates
1413 <<: *lf_packer_merge
1415 ######################
1416 # Default parameters #
1417 ######################
1419 git-url: '$GIT_URL/$GERRIT_PROJECT'
1421 gerrit_merge_triggers:
1422 - change-merged-event
1423 - comment-added-contains-event:
1424 comment-contains-value: remerge$
1426 #####################
1427 # Job Configuration #
1428 #####################
1431 - lf-infra-gerrit-scm:
1432 git-url: '{git-url}'
1433 refspec: '$GERRIT_REFSPEC'
1434 branch: '$GERRIT_BRANCH'
1435 submodule-recursive: '{submodule-recursive}'
1436 submodule-timeout: '{submodule-timeout}'
1437 choosing-strategy: gerrit
1438 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1441 - timed: '{obj:cron}'
1443 server-name: '{gerrit-server-name}'
1444 trigger-on: '{obj:gerrit_merge_triggers}'
1446 - project-compare-type: ANT
1447 project-pattern: '{project}'
1449 - branch-compare-type: ANT
1450 branch-pattern: '**/{branch}'
1452 - compare-type: REG_EXP
1453 pattern: 'packer\/provision\/.*\.sh'
1454 - compare-type: REG_EXP
1455 pattern: 'packer\/provision\/.*\.bat'
1456 - compare-type: REG_EXP
1457 pattern: 'packer\/provision\/.*\.ps1'
1458 - compare-type: REG_EXP
1459 pattern: 'packer\/provision\/{templates}\.yaml'
1460 - compare-type: REG_EXP
1461 pattern: 'packer\/provision\/local-{templates}\.yaml'
1462 - compare-type: REG_EXP
1463 pattern: 'packer\/templates\/{templates}\.json'
1464 - compare-type: REG_EXP
1465 pattern: 'packer\/vars\/{platforms}\.json'
1468 name: '{project-name}-packer-merge-{platforms}-{templates}'
1469 id: github-packer-merge
1470 <<: *lf_packer_common
1471 # yamllint disable-line rule:key-duplicates
1472 <<: *lf_packer_merge
1474 #####################
1475 # Job Configuration #
1476 #####################
1479 - lf-infra-properties:
1480 project: '{project}'
1481 build-days-to-keep: 7
1483 url: '{github-url}/{github-org}/{project}'
1486 - lf-infra-github-scm:
1487 url: '{git-clone-url}{github-org}/{project}'
1489 +refs/heads/*:refs/remotes/origin/*
1490 +refs/pull/*:refs/remotes/origin/pr/*
1491 branch: '$GERRIT_REFSPEC'
1492 submodule-recursive: '{submodule-recursive}'
1493 submodule-timeout: '{submodule-timeout}'
1494 choosing-strategy: default
1495 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1498 - timed: '{obj:cron}'
1503 - github-pull-request:
1504 trigger-phrase: '^remerge$'
1505 only-trigger-phrase: true
1506 status-context: 'Packer {platforms}-{templates} Merge'
1511 white-list: '{obj:github_pr_whitelist}'
1512 admin-list: '{obj:github_pr_admin_list}'
1513 # included-regions MUST match Gerrit Trigger file-paths
1515 - 'packer\/provision\/.*\.sh'
1516 - 'packer\/provision\/.*\.bat'
1517 - 'packer\/provision\/.*\.ps1'
1518 - 'packer\/provision\/{templates}\.yaml'
1519 - 'packer\/provision\/local-{templates}\.yaml'
1520 - 'packer\/templates\/{templates}\.json'
1521 - 'packer\/vars\/{platforms}\.json'
1522 white-list-target-branches:
1529 - lf_packer_verify: &lf_packer_verify
1530 name: lf-packer-verify
1532 ######################
1533 # Default parameters #
1534 ######################
1538 openstack-cloud: vex
1540 gerrit_verify_triggers:
1541 - patchset-created-event:
1542 exclude-drafts: true
1543 exclude-trivial-rebase: false
1544 exclude-no-code-change: false
1545 - draft-published-event
1546 - comment-added-contains-event:
1547 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1549 gerrit_trigger_file_paths:
1550 - compare-type: REG_EXP
1551 pattern: 'packer\/.*'
1553 # github_included_regions MUST match gerrit_trigger_file_paths
1554 github_included_regions:
1557 #####################
1558 # Job Configuration #
1559 #####################
1564 - lf-infra-packer-validate:
1565 openstack: '{openstack}'
1566 openstack-cloud: '{openstack-cloud}'
1567 packer-cloud-settings: '{packer-cloud-settings}'
1568 packer-version: '{packer-version}'
1571 name: '{project-name}-packer-verify'
1572 id: gerrit-packer-verify
1573 <<: *lf_packer_common
1574 # yamllint disable-line rule:key-duplicates
1575 <<: *lf_packer_verify
1577 ######################
1578 # Default parameters #
1579 ######################
1581 git-url: '$GIT_URL/$GERRIT_PROJECT'
1583 #####################
1584 # Job Configuration #
1585 #####################
1588 - lf-infra-gerrit-scm:
1589 git-url: '{git-url}'
1590 refspec: '$GERRIT_REFSPEC'
1591 branch: '$GERRIT_BRANCH'
1592 submodule-recursive: '{submodule-recursive}'
1593 submodule-timeout: '{submodule-timeout}'
1594 choosing-strategy: gerrit
1595 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1599 server-name: '{gerrit-server-name}'
1600 trigger-on: '{obj:gerrit_verify_triggers}'
1602 - project-compare-type: ANT
1603 project-pattern: '{project}'
1605 - branch-compare-type: ANT
1606 branch-pattern: '**/{branch}'
1607 file-paths: '{obj:gerrit_trigger_file_paths}'
1610 name: '{project-name}-packer-verify'
1611 id: github-packer-verify
1612 <<: *lf_packer_common
1613 # yamllint disable-line rule:key-duplicates
1614 <<: *lf_packer_verify
1616 #####################
1617 # Job Configuration #
1618 #####################
1621 - lf-infra-properties:
1622 project: '{project}'
1623 build-days-to-keep: 7
1625 url: '{github-url}/{github-org}/{project}'
1628 - lf-infra-github-scm:
1629 url: '{git-clone-url}{github-org}/{project}'
1630 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1632 submodule-recursive: '{submodule-recursive}'
1633 submodule-timeout: '{submodule-timeout}'
1634 choosing-strategy: default
1635 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1638 - github-pull-request:
1639 trigger-phrase: '^(recheck|reverify)$'
1640 only-trigger-phrase: false
1641 status-context: 'Packer Verify'
1644 included-regions: '{obj:github_included_regions}'
1645 white-list-target-branches:
1652 - lf_puppet_verify: &lf_puppet_verify
1653 name: lf-puppet-verify
1655 ######################
1656 # Default parameters #
1657 ######################
1660 build-days-to-keep: 7
1663 git-url: '$GIT_URL/$GERRIT_PROJECT'
1664 github-url: 'https://github.com'
1667 puppet-lint-version: 2.3.6
1669 submodule-recursive: true
1670 submodule-timeout: 10
1672 gerrit_trigger_file_paths:
1673 - compare-type: REG_EXP
1676 # github_included_regions MUST match gerrit_trigger_file_paths
1677 github_included_regions:
1680 #####################
1681 # Job Configuration #
1682 #####################
1684 project-type: freestyle
1685 node: '{build-node}'
1687 disabled: '{disable-job}'
1690 - lf-infra-properties:
1691 build-days-to-keep: '{build-days-to-keep}'
1694 - lf-infra-parameters:
1695 project: '{project}'
1698 - lf-puppet-parameters:
1699 puppet-lint-version: '{puppet-lint-version}'
1702 - lf-infra-wrappers:
1703 build-timeout: '{build-timeout}'
1704 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1707 - shell: !include-raw-escape: ../shell/puppet-lint.sh
1713 name: '{project-name}-puppet-verify'
1714 id: gerrit-puppet-verify
1715 <<: *lf_puppet_verify
1717 ######################
1718 # Default parameters #
1719 ######################
1721 gerrit_verify_triggers:
1722 - patchset-created-event:
1723 exclude-drafts: true
1724 exclude-trivial-rebase: false
1725 exclude-no-code-change: false
1726 - draft-published-event
1727 - comment-added-contains-event:
1728 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1730 #####################
1731 # Job Configuration #
1732 #####################
1735 - lf-infra-gerrit-scm:
1736 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1737 git-url: '{git-url}'
1738 refspec: '$GERRIT_REFSPEC'
1739 branch: '$GERRIT_BRANCH'
1740 submodule-recursive: '{submodule-recursive}'
1741 submodule-timeout: '{submodule-timeout}'
1742 choosing-strategy: gerrit
1746 server-name: '{gerrit-server-name}'
1747 trigger-on: '{obj:gerrit_verify_triggers}'
1749 - project-compare-type: ANT
1750 project-pattern: '{project}'
1752 - branch-compare-type: ANT
1753 branch-pattern: '**/{branch}'
1754 file-paths: '{obj:gerrit_trigger_file_paths}'
1757 name: '{project-name}-puppet-verify'
1758 id: github-puppet-verify
1759 <<: *lf_puppet_verify
1761 #####################
1762 # Job Configuration #
1763 #####################
1766 - lf-infra-properties:
1767 project: '{project}'
1768 build-days-to-keep: 7
1770 url: '{github-url}/{github-org}/{project}'
1773 - lf-infra-github-scm:
1774 url: '{git-clone-url}{github-org}/{project}'
1775 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1777 submodule-recursive: '{submodule-recursive}'
1778 submodule-timeout: '{submodule-timeout}'
1779 choosing-strategy: default
1780 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1783 - github-pull-request:
1784 trigger-phrase: '^(recheck|reverify)$'
1785 only-trigger-phrase: false
1786 status-context: 'Puppet Verify'
1789 included-regions: '{obj:github_included_regions}'
1790 white-list-target-branches: