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 lftools-version: '{lftools-version}'
62 - lf-packer-parameters:
63 packer-version: '{packer-version}'
67 build-timeout: '{build-timeout}'
68 jenkins-ssh-credential: '{jenkins-ssh-credential}'
74 name: lf-infra-jjb-parameters
78 default: '{jjb-version}'
79 description: Jenkins Job Builder version to download and install.
82 name: lf-packer-parameters
86 default: '{packer-version}'
87 description: Packer version to download and install.
89 - lf_jjb_common: &lf_jjb_common
92 ######################
93 # Default parameters #
94 ######################
99 github-url: 'https://github.com'
102 submodule-recursive: true
103 submodule-timeout: 10
105 gerrit_trigger_file_paths:
106 - compare-type: REG_EXP
108 - compare-type: REG_EXP
109 pattern: 'global-jjb'
110 - compare-type: REG_EXP
113 # github_included_regions MUST match gerrit_trigger_file_paths
114 github_included_regions:
119 #####################
120 # Job Configuration #
121 #####################
123 project-type: freestyle
125 disabled: '{disable-job}'
128 - lf-infra-properties:
130 build-days-to-keep: 7
133 - lf-infra-parameters:
137 lftools-version: '{lftools-version}'
138 - lf-infra-jjb-parameters:
139 jjb-version: '{jjb-version}'
143 build-timeout: '{build-timeout}'
144 jenkins-ssh-credential: '{jenkins-ssh-credential}'
149 ######################
150 # Gerrit Branch Lock #
151 ######################
154 name: '{project-name}-gerrit-branch-lock-{stream}'
155 id: gerrit-branch-lock
157 ######################
158 # Default parameters #
159 ######################
163 git-url: '$GIT_URL/$GERRIT_PROJECT'
165 submodule-timeout: 10
166 gerrit_merge_triggers:
167 - comment-added-contains-event:
168 comment-contains-value: (un)?lock branch$
170 #####################
171 # Job Configuration #
172 #####################
174 project-type: freestyle
176 disabled: '{disable-job}'
179 - lf-infra-properties:
181 build-days-to-keep: 1
184 - lf-infra-parameters:
188 lftools-version: '{lftools-version}'
193 jenkins-ssh-credential: '{jenkins-ssh-credential}'
196 - lf-infra-gerrit-scm:
200 submodule-recursive: false
201 submodule-timeout: '{submodule-timeout}'
202 choosing-strategy: default
203 jenkins-ssh-credential: '{jenkins-ssh-credential}'
207 server-name: '{gerrit-server-name}'
208 trigger-on: '{obj:gerrit_merge_triggers}'
210 - project-compare-type: ANT
211 project-pattern: '{project}'
213 - branch-compare-type: ANT
214 branch-pattern: '**/{branch}'
217 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
223 ##########################################
224 # Jenkins Configuration Management Merge #
225 ##########################################
228 name: lf-jenkins-cfg-clouds
232 properties-content: 'jenkins_silos={jenkins-silos}'
233 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
234 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
237 name: lf-jenkins-cfg-global-vars
241 properties-content: 'jenkins_silos={jenkins-silos}'
242 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
243 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
245 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
246 name: lf-jenkins-cfg-merge
248 ######################
249 # Default parameters #
250 ######################
255 git-url: '$GIT_URL/$GERRIT_PROJECT'
256 github-url: 'https://github.com'
257 jenkins-silos: production sandbox
258 submodule-timeout: 10
260 gerrit_merge_triggers:
261 - change-merged-event
262 - comment-added-contains-event:
263 comment-contains-value: remerge$
265 gerrit_trigger_file_paths:
266 - compare-type: REG_EXP
267 pattern: 'jenkins-config\/.*'
269 # github_included_regions MUST match gerrit_trigger_file_paths
270 github_included_regions:
271 - 'jenkins-config\/.*'
273 #####################
274 # Job Configuration #
275 #####################
277 project-type: freestyle
280 disabled: '{disable-job}'
283 - lf-infra-properties:
285 build-days-to-keep: 1
288 - lf-infra-parameters:
292 lftools-version: '{lftools-version}'
297 jenkins-ssh-credential: '{jenkins-ssh-credential}'
301 - lf-jenkins-cfg-global-vars:
302 jenkins-silos: '{jenkins-silos}'
303 - lf-jenkins-cfg-clouds:
304 jenkins-silos: '{jenkins-silos}'
310 name: '{project-name}-jenkins-cfg-merge'
311 id: gerrit-jenkins-cfg-merge
312 <<: *lf_jenkins_cfg_merge
315 - lf-infra-gerrit-scm:
317 refspec: 'refs/heads/{branch}'
319 submodule-recursive: true
320 submodule-timeout: '{submodule-timeout}'
321 choosing-strategy: default
322 jenkins-ssh-credential: '{jenkins-ssh-credential}'
325 - timed: '{obj:cron}'
327 server-name: '{gerrit-server-name}'
328 trigger-on: '{obj:gerrit_merge_triggers}'
330 - project-compare-type: ANT
331 project-pattern: '{project}'
333 - branch-compare-type: ANT
334 branch-pattern: '**/{branch}'
335 file-paths: '{obj:gerrit_trigger_file_paths}'
338 name: '{project-name}-jenkins-cfg-merge'
339 id: github-jenkins-cfg-merge
340 <<: *lf_jenkins_cfg_merge
343 - lf-infra-properties:
345 build-days-to-keep: 1
347 url: '{github-url}/{github-org}/{project}'
350 - lf-infra-github-scm:
351 url: '{git-clone-url}{github-org}/{project}'
353 branch: 'refs/heads/{branch}'
354 submodule-recursive: true
355 submodule-timeout: '{submodule-timeout}'
356 choosing-strategy: default
357 jenkins-ssh-credential: '{jenkins-ssh-credential}'
360 - timed: '{obj:cron}'
364 - github-pull-request:
365 trigger-phrase: '^remerge$'
366 only-trigger-phrase: true
367 status-context: 'Jenkins CFG Merge'
372 white-list: '{obj:github_pr_whitelist}'
373 admin-list: '{obj:github_pr_admin_list}'
374 included-regions: '{obj:github_included_regions}'
375 white-list-target-branches:
378 ###########################################
379 # Jenkins Configuration Management Verify #
380 ###########################################
382 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
383 name: lf-jenkins-cfg-verify
385 ######################
386 # Default parameters #
387 ######################
390 build-days-to-keep: 7
392 git-url: '$GIT_URL/$GERRIT_PROJECT'
393 github-url: 'https://github.com'
395 submodule-timeout: 10
397 gerrit_verify_triggers:
398 - patchset-created-event:
400 exclude-trivial-rebase: false
401 exclude-no-code-change: false
402 - draft-published-event
403 - comment-added-contains-event:
404 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
406 gerrit_trigger_file_paths:
407 - compare-type: REG_EXP
408 pattern: 'jenkins-config\/.*'
410 # github_included_regions MUST match gerrit_trigger_file_paths
411 github_included_regions:
412 - 'jenkins-config\/.*'
414 #####################
415 # Job Configuration #
416 #####################
418 project-type: freestyle
421 disabled: '{disable-job}'
424 - lf-infra-properties:
426 build-days-to-keep: 1
429 - lf-infra-parameters:
433 lftools-version: '{lftools-version}'
438 jenkins-ssh-credential: '{jenkins-ssh-credential}'
439 - config-file-provider:
440 # Listed after to override openstack-infra-wrappers clouds.yaml
443 - file-id: clouds-yaml
444 target: '$HOME/.config/openstack/clouds.yaml'
446 target: '$HOME/.npmrc'
448 target: '$HOME/.config/pip/pip.conf'
453 properties-content: OS_CLOUD={openstack-cloud}
454 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
460 name: '{project-name}-jenkins-cfg-verify'
461 id: gerrit-jenkins-cfg-verify
462 <<: *lf_jenkins_cfg_verify
465 - lf-infra-gerrit-scm:
467 refspec: 'refs/heads/{branch}'
469 submodule-recursive: true
470 submodule-timeout: '{submodule-timeout}'
471 choosing-strategy: default
472 jenkins-ssh-credential: '{jenkins-ssh-credential}'
476 server-name: '{gerrit-server-name}'
477 trigger-on: '{obj:gerrit_verify_triggers}'
479 - project-compare-type: ANT
480 project-pattern: '{project}'
482 - branch-compare-type: ANT
483 branch-pattern: '**/{branch}'
484 file-paths: '{obj:gerrit_trigger_file_paths}'
487 name: '{project-name}-jenkins-cfg-verify'
488 id: github-jenkins-cfg-verify
489 <<: *lf_jenkins_cfg_verify
493 url: '{github-url}/{github-org}/{project}'
496 - lf-infra-github-scm:
497 url: '{git-clone-url}{github-org}/{project}'
498 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
500 submodule-recursive: '{submodule-recursive}'
501 submodule-timeout: '{submodule-timeout}'
502 choosing-strategy: default
503 jenkins-ssh-credential: '{jenkins-ssh-credential}'
506 - github-pull-request:
507 trigger-phrase: '^(recheck|reverify)$'
508 only-trigger-phrase: false
509 status-context: 'Jenkins CFG Verify'
512 included-regions: '{obj:github_included_regions}'
513 white-list-target-branches:
516 ###########################
517 # JENKINS SANDBOX CLEANUP #
518 ###########################
520 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
521 name: lf-jenkins-sandbox-cleanup
523 ######################
524 # Default parameters #
525 ######################
528 # Run every Saturday at 08:00 UTC
532 #####################
533 # Job Configuration #
534 #####################
536 project-type: freestyle
539 disabled: '{disable-job}'
542 - lf-infra-jjb-parameters:
543 jjb-version: '{jjb-version}'
546 - timed: '{obj:cron}'
550 - shell: !include-raw-escape:
551 - ../shell/jjb-install.sh
552 - ../shell/jenkins-sandbox-cleanup.sh
553 - ../shell/jjb-cleanup.sh
556 name: '{project-name}-jenkins-sandbox-cleanup'
557 id: gerrit-jenkins-sandbox-cleanup
559 # yamllint disable-line rule:key-duplicates
560 <<: *lf_jenkins_sandbox_cleanup
563 name: '{project-name}-jenkins-sandbox-cleanup'
564 id: github-jenkins-sandbox-cleanup
566 # yamllint disable-line rule:key-duplicates
567 <<: *lf_jenkins_sandbox_cleanup
574 - lf_jjb_deploy_job: &lf_jjb_deploy_job
575 name: lf-jjb-deploy-job
577 ######################
578 # Default parameters #
579 ######################
583 # jjb-deploy should always clone $PROJECT regardless of what
584 # $GERRIT_PROJECT triggered the job.
585 git-url: '$GIT_URL/$PROJECT'
586 github-url: 'https://github.com'
588 submodule-timeout: 10
589 gerrit_jjb_deploy_job_triggers:
590 - comment-added-contains-event:
591 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
593 #####################
594 # Job Configuration #
595 #####################
597 project-type: freestyle
600 disabled: '{disable-job}'
603 - lf-infra-properties:
605 build-days-to-keep: 1
608 - lf-infra-parameters:
612 lftools-version: '{lftools-version}'
617 jenkins-ssh-credential: '{jenkins-ssh-credential}'
621 pip-packages: jenkins-job-builder
622 - lf-infra-jjbini-sandbox
623 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
629 name: '{project-name}-jjb-deploy-job'
630 id: gerrit-jjb-deploy-job
631 <<: *lf_jjb_deploy_job
634 - lf-infra-gerrit-scm:
636 refspec: 'refs/heads/{branch}'
638 submodule-recursive: true
639 submodule-timeout: '{submodule-timeout}'
640 choosing-strategy: default
641 jenkins-ssh-credential: '{jenkins-ssh-credential}'
645 server-name: '{gerrit-server-name}'
646 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
648 - project-compare-type: ANT
649 project-pattern: '**'
651 - branch-compare-type: ANT
660 name: '{project-name}-jjb-deploy-job'
661 id: github-jjb-deploy-job
662 <<: *lf_jjb_deploy_job
665 - lf-infra-properties:
667 build-days-to-keep: 1
669 url: '{github-url}/{github-org}/{project}'
672 - lf-infra-github-scm:
673 url: '{git-clone-url}{github-org}/{project}'
674 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
676 submodule-recursive: true
677 submodule-timeout: '{submodule-timeout}'
678 choosing-strategy: default
679 jenkins-ssh-credential: '{jenkins-ssh-credential}'
682 - github-pull-request:
683 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
684 only-trigger-phrase: true
685 status-context: 'JJB Deploy Job'
688 white-list-target-branches:
695 - lf_jjb_merge: &lf_jjb_merge
698 ######################
699 # Default parameters #
700 ######################
702 gerrit_merge_triggers:
703 - change-merged-event
704 - comment-added-contains-event:
705 comment-contains-value: remerge$
707 #####################
708 # Job Configuration #
709 #####################
714 - shell: !include-raw-escape:
715 - ../shell/jjb-install.sh
716 - ../shell/jjb-merge-job.sh
717 - ../shell/jjb-cleanup.sh
720 name: '{project-name}-jjb-merge'
723 # yamllint disable-line rule:key-duplicates
726 git-url: '$GIT_URL/$GERRIT_PROJECT'
729 - lf-infra-gerrit-scm:
733 submodule-recursive: '{submodule-recursive}'
734 submodule-timeout: '{submodule-timeout}'
735 choosing-strategy: default
736 jenkins-ssh-credential: '{jenkins-ssh-credential}'
740 server-name: '{gerrit-server-name}'
741 trigger-on: '{obj:gerrit_merge_triggers}'
743 - project-compare-type: ANT
744 project-pattern: '{project}'
746 - branch-compare-type: ANT
747 branch-pattern: '**/{branch}'
748 file-paths: '{obj:gerrit_trigger_file_paths}'
751 name: '{project-name}-jjb-merge'
754 # yamllint disable-line rule:key-duplicates
757 #####################
758 # Job Configuration #
759 #####################
762 - lf-infra-properties:
764 build-days-to-keep: 7
766 url: '{github-url}/{github-org}/{project}'
769 - lf-infra-github-scm:
770 url: '{git-clone-url}{github-org}/{project}'
772 branch: 'refs/heads/{branch}'
773 submodule-recursive: '{submodule-recursive}'
774 submodule-timeout: '{submodule-timeout}'
775 choosing-strategy: default
776 jenkins-ssh-credential: '{jenkins-ssh-credential}'
782 - github-pull-request:
783 trigger-phrase: '^remerge$'
784 only-trigger-phrase: true
785 status-context: 'JJB Merge'
790 white-list: '{obj:github_pr_whitelist}'
791 admin-list: '{obj:github_pr_admin_list}'
792 included-regions: '{obj:github_included_regions}'
793 white-list-target-branches:
800 - lf_jjb_verify: &lf_jjb_verify
803 ######################
804 # Default parameters #
805 ######################
807 gerrit_verify_triggers:
808 - patchset-created-event:
810 exclude-trivial-rebase: false
811 exclude-no-code-change: false
812 - draft-published-event
813 - comment-added-contains-event:
814 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
816 #####################
817 # Job Configuration #
818 #####################
825 - shell: !include-raw-escape:
826 - ../shell/git-validate-jira-urls.sh
827 - ../shell/jjb-install.sh
828 - ../shell/jjb-verify-job.sh
829 - ../shell/jjb-check-unicode.sh
830 - ../shell/jjb-cleanup.sh
831 - lf-infra-gpg-verify-git-signature
834 name: '{project-name}-jjb-verify'
835 id: gerrit-jjb-verify
837 # yamllint disable-line rule:key-duplicates
840 ######################
841 # Default parameters #
842 ######################
844 git-url: '$GIT_URL/$GERRIT_PROJECT'
846 #####################
847 # Job Configuration #
848 #####################
851 - lf-infra-gerrit-scm:
853 refspec: '$GERRIT_REFSPEC'
854 branch: '$GERRIT_BRANCH'
855 submodule-recursive: '{submodule-recursive}'
856 submodule-timeout: '{submodule-timeout}'
857 choosing-strategy: gerrit
858 jenkins-ssh-credential: '{jenkins-ssh-credential}'
862 server-name: '{gerrit-server-name}'
863 trigger-on: '{obj:gerrit_verify_triggers}'
865 - project-compare-type: ANT
866 project-pattern: '{project}'
868 - branch-compare-type: ANT
869 branch-pattern: '**/{branch}'
870 file-paths: '{obj:gerrit_trigger_file_paths}'
873 name: '{project-name}-jjb-verify'
874 id: github-jjb-verify
876 # yamllint disable-line rule:key-duplicates
879 #####################
880 # Job Configuration #
881 #####################
884 - lf-infra-properties:
886 build-days-to-keep: 7
888 url: '{github-url}/{github-org}/{project}'
891 - lf-infra-github-scm:
892 url: '{git-clone-url}{github-org}/{project}'
893 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
895 submodule-recursive: '{submodule-recursive}'
896 submodule-timeout: '{submodule-timeout}'
897 choosing-strategy: default
898 jenkins-ssh-credential: '{jenkins-ssh-credential}'
901 - github-pull-request:
902 trigger-phrase: '^(recheck|reverify)$'
903 only-trigger-phrase: false
904 status-context: 'JJB Verify'
907 included-regions: '{obj:github_included_regions}'
908 white-list-target-branches:
911 ############################
912 # JJB Verify Upstream GJJB #
913 ############################
915 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
916 name: lf-jjb-verify-upstream-gjjb
918 #####################
919 # Job Configuration #
920 #####################
927 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
928 git cherry-pick FETCH_HEAD
930 - shell: !include-raw-escape:
931 - ../shell/git-validate-jira-urls.sh
932 - ../shell/jjb-install.sh
933 - ../shell/jjb-verify-job.sh
934 - ../shell/jjb-check-unicode.sh
935 - ../shell/jjb-cleanup.sh
936 - lf-infra-gpg-verify-git-signature
939 name: '{project-name}-jjb-verify-upstream-gjjb'
940 id: gerrit-jjb-verify-upstream-gjjb
942 # yamllint disable-line rule:key-duplicates
943 <<: *lf_jjb_verify_upstream_gjjb
945 ######################
946 # Default parameters #
947 ######################
949 git-url: '$GIT_URL/$PROJECT'
950 submodule-timeout: 10
952 #####################
953 # Job Configuration #
954 #####################
957 - lf-infra-gerrit-scm:
961 submodule-recursive: true
962 submodule-timeout: '{submodule-timeout}'
963 choosing-strategy: default
964 jenkins-ssh-credential: '{jenkins-ssh-credential}'
968 server-name: 'LinuxFoundation'
970 - patchset-created-event:
972 exclude-trivial-rebase: false
973 exclude-no-code-change: false
974 - draft-published-event
975 - comment-added-contains-event:
976 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
978 - project-compare-type: ANT
979 project-pattern: 'releng/global-jjb'
981 - branch-compare-type: ANT
982 branch-pattern: '**/master'
984 gerrit-build-failed-codereview-value: -1
985 gerrit-build-failed-verified-value: 0
986 gerrit-build-successful-codereview-value: 1
987 gerrit-build-successful-verified-value: 0
993 - lf_license_check: &lf_license_check
994 name: lf-license-check
996 ######################
997 # Default parameters #
998 ######################
1001 build-days-to-keep: 7
1010 git-url: '$GIT_URL/$PROJECT'
1011 github-url: 'https://github.com'
1013 license-exclude-paths: ''
1014 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1015 project-pattern: '**'
1018 submodule-timeout: 10
1020 #####################
1021 # Job Configuration #
1022 #####################
1024 project-type: freestyle
1025 node: '{build-node}'
1027 disabled: '{disable-job}'
1030 - lf-infra-properties:
1031 build-days-to-keep: '{build-days-to-keep}'
1034 - lf-infra-parameters:
1035 project: '{project}'
1038 lftools-version: '{lftools-version}'
1041 - lf-infra-wrappers:
1042 build-timeout: '{build-timeout}'
1043 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1047 file-patterns: '{file-patterns}'
1048 spdx-disable: '{spdx-disable}'
1049 lhc-version: '{lhc-version}'
1050 license-exclude-paths: '{license-exclude-paths}'
1051 licenses-allowed: '{licenses-allowed}'
1057 name: '{project-name}-license-check'
1058 id: gerrit-license-check
1059 <<: *lf_license_check
1061 git-url: '$GIT_URL/$GERRIT_PROJECT'
1064 - lf-infra-gerrit-scm:
1065 git-url: '{git-url}'
1066 refspec: '$GERRIT_REFSPEC'
1067 branch: '$GERRIT_BRANCH'
1068 # Submodules are out of the project's control
1069 submodule-recursive: false
1070 submodule-timeout: '{submodule-timeout}'
1071 choosing-strategy: gerrit
1072 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1076 server-name: '{gerrit-server-name}'
1077 # Trigger should not be overridable as we want to always run
1079 - patchset-created-event:
1080 exclude-drafts: false
1081 exclude-trivial-rebase: false
1082 exclude-no-code-change: false
1083 - draft-published-event
1084 - comment-added-contains-event:
1085 comment-contains-value: recheck$
1087 - project-compare-type: ANT
1088 project-pattern: '{project-pattern}'
1090 - branch-compare-type: ANT
1091 branch-pattern: '**'
1094 name: '{project-name}-license-check'
1095 id: github-license-check
1096 <<: *lf_license_check
1099 - lf-infra-properties:
1100 build-days-to-keep: '{build-days-to-keep}'
1102 url: '{github-url}/{github-org}/{project}'
1105 - lf-infra-github-scm:
1106 url: '{git-clone-url}{github-org}/{project}'
1107 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1109 # Submodules are out of the project's control
1110 submodule-recursive: false
1111 submodule-timeout: '{submodule-timeout}'
1112 choosing-strategy: default
1113 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1116 - github-pull-request:
1117 trigger-phrase: '^recheck$'
1118 only-trigger-phrase: false
1119 status-context: 'License Check'
1122 white-list-target-branches:
1125 ####################
1126 # Info YAML Verify #
1127 ####################
1129 - lf_info_yaml_verify: &lf_info_yaml_verify
1130 name: lf-info-yaml-verify
1132 ######################
1133 # Default parameters #
1134 ######################
1136 gerrit_verify_triggers:
1137 - patchset-created-event:
1138 exclude-drafts: true
1139 exclude-trivial-rebase: false
1140 exclude-no-code-change: false
1141 - draft-published-event
1142 - comment-added-contains-event:
1143 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1145 #####################
1146 # Job Configuration #
1147 #####################
1152 - shell: !include-raw-escape:
1153 - ../shell/git-validate-info-yaml.sh
1154 - ../shell/info-file-validate.sh
1157 name: '{project-name}-info-yaml-verify'
1158 id: gerrit-info-yaml-verify
1160 # yamllint disable-line rule:key-duplicates
1161 <<: *lf_info_yaml_verify
1163 git-url: '$GIT_URL/$GERRIT_PROJECT'
1166 - lf-infra-gerrit-scm:
1167 git-url: '{git-url}'
1168 refspec: '$GERRIT_REFSPEC'
1169 branch: '$GERRIT_BRANCH'
1170 submodule-recursive: '{submodule-recursive}'
1171 submodule-timeout: '{submodule-timeout}'
1172 choosing-strategy: gerrit
1173 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1177 server-name: '{gerrit-server-name}'
1178 trigger-on: '{obj:gerrit_verify_triggers}'
1180 - project-compare-type: ANT
1181 project-pattern: '{project}'
1183 - branch-compare-type: ANT
1184 branch-pattern: '**/{branch}'
1186 - compare-type: REG_EXP
1187 pattern: 'INFO.yaml'
1190 name: '{project-name}-info-yaml-verify'
1191 id: github-info-yaml-verify
1193 # yamllint disable-line rule:key-duplicates
1194 <<: *lf_info_yaml_verify
1196 github-url: 'https://github.com'
1199 url: '{github-url}/{github-org}/{project}'
1202 - lf-infra-github-scm:
1203 url: '{git-clone-url}{github-org}/{project}'
1204 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1206 submodule-recursive: '{submodule-recursive}'
1207 submodule-timeout: '{submodule-timeout}'
1208 choosing-strategy: default
1209 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1212 - github-pull-request:
1213 trigger-phrase: '^(recheck|reverify)$'
1214 only-trigger-phrase: false
1215 status-context: 'INFO File Verify'
1218 # included-regions MUST match gerrit file-paths
1219 included-regions: 'INFO.yaml'
1220 white-list-target-branches:
1227 - lf_openstack_cron: &lf_openstack_cron
1228 name: lf-openstack-cron
1230 ######################
1231 # Default parameters #
1232 ######################
1235 build-days-to-keep: 7
1239 git-url: '$GIT_URL/$PROJECT'
1240 github-url: 'https://github.com'
1241 openstack-cloud: vex
1242 openstack-image-cleanup: true
1243 openstack-image-cleanup-age: 30
1244 openstack-image-protect: true
1245 openstack-volume-cleanup: true
1247 submodule-timeout: 10
1249 #####################
1250 # Job Configuration #
1251 #####################
1253 project-type: freestyle
1254 node: '{build-node}'
1256 disabled: '{disable-job}'
1259 - lf-infra-properties:
1260 build-days-to-keep: '{build-days-to-keep}'
1263 - lf-infra-parameters:
1264 project: '{project}'
1267 lftools-version: '{lftools-version}'
1270 - lf-infra-wrappers:
1271 build-timeout: '{build-timeout}'
1272 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1273 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1274 - config-file-provider:
1276 - file-id: clouds-yaml
1277 target: '$HOME/.config/openstack/clouds.yaml'
1279 target: '$HOME/.npmrc'
1281 target: '$HOME/.config/pip/pip.conf'
1284 - timed: '{obj:cron}'
1287 - lf-infra-pre-build
1289 properties-content: OS_CLOUD={openstack-cloud}
1292 condition-kind: boolean-expression
1293 condition-expression: '{openstack-volume-cleanup}'
1295 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1298 condition-kind: boolean-expression
1299 condition-expression: '{openstack-image-protect}'
1301 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1303 condition-kind: boolean-expression
1304 condition-expression: '{openstack-image-cleanup}'
1307 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1308 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1314 name: '{project-name}-openstack-cron'
1315 id: gerrit-openstack-cron
1316 <<: *lf_openstack_cron
1319 - lf-infra-gerrit-scm:
1320 git-url: '{git-url}'
1321 refspec: 'refs/heads/{branch}'
1323 submodule-recursive: true
1324 submodule-timeout: '{submodule-timeout}'
1325 choosing-strategy: default
1326 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1329 name: '{project-name}-openstack-cron'
1330 id: github-openstack-cron
1331 <<: *lf_openstack_cron
1334 - lf-infra-github-scm:
1335 url: '{git-clone-url}{github-org}/{project}'
1337 branch: 'refs/heads/{branch}'
1338 submodule-recursive: true
1339 submodule-timeout: '{submodule-timeout}'
1340 choosing-strategy: default
1341 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1347 - lf_packer_merge: &lf_packer_merge
1348 name: lf-packer-merge
1350 ######################
1351 # Default parameters #
1352 ######################
1355 openstack-cloud: vex
1357 #####################
1358 # Job Configuration #
1359 #####################
1362 - lf-infra-parameters:
1363 project: '{project}'
1366 lftools-version: '{lftools-version}'
1367 - lf-packer-parameters:
1368 packer-version: '{packer-version}'
1371 - lf-infra-packer-build:
1372 openstack: '{openstack}'
1373 openstack-cloud: '{openstack-cloud}'
1374 packer-cloud-settings: '{packer-cloud-settings}'
1375 packer-version: '{packer-version}'
1376 platform: '{platforms}'
1377 template: '{templates}'
1380 name: '{project-name}-packer-merge-{platforms}-{templates}'
1381 id: gerrit-packer-merge
1382 <<: *lf_packer_common
1383 # yamllint disable-line rule:key-duplicates
1384 <<: *lf_packer_merge
1386 ######################
1387 # Default parameters #
1388 ######################
1390 git-url: '$GIT_URL/$GERRIT_PROJECT'
1392 gerrit_merge_triggers:
1393 - change-merged-event
1394 - comment-added-contains-event:
1395 comment-contains-value: remerge$
1397 #####################
1398 # Job Configuration #
1399 #####################
1402 - lf-infra-gerrit-scm:
1403 git-url: '{git-url}'
1404 refspec: '$GERRIT_REFSPEC'
1405 branch: '$GERRIT_BRANCH'
1406 submodule-recursive: '{submodule-recursive}'
1407 submodule-timeout: '{submodule-timeout}'
1408 choosing-strategy: gerrit
1409 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1412 - timed: '{obj:cron}'
1414 server-name: '{gerrit-server-name}'
1415 trigger-on: '{obj:gerrit_merge_triggers}'
1417 - project-compare-type: ANT
1418 project-pattern: '{project}'
1420 - branch-compare-type: ANT
1421 branch-pattern: '**/{branch}'
1423 - compare-type: REG_EXP
1424 pattern: 'packer\/provision\/.*\.sh'
1425 - compare-type: REG_EXP
1426 pattern: 'packer\/provision\/.*\.bat'
1427 - compare-type: REG_EXP
1428 pattern: 'packer\/provision\/.*\.ps1'
1429 - compare-type: REG_EXP
1430 pattern: 'packer\/provision\/{templates}\.yaml'
1431 - compare-type: REG_EXP
1432 pattern: 'packer\/provision\/local-{templates}\.yaml'
1433 - compare-type: REG_EXP
1434 pattern: 'packer\/templates\/{templates}\.json'
1435 - compare-type: REG_EXP
1436 pattern: 'packer\/vars\/{platforms}\.json'
1439 name: '{project-name}-packer-merge-{platforms}-{templates}'
1440 id: github-packer-merge
1441 <<: *lf_packer_common
1442 # yamllint disable-line rule:key-duplicates
1443 <<: *lf_packer_merge
1445 #####################
1446 # Job Configuration #
1447 #####################
1450 - lf-infra-properties:
1451 project: '{project}'
1452 build-days-to-keep: 7
1454 url: '{github-url}/{github-org}/{project}'
1457 - lf-infra-github-scm:
1458 url: '{git-clone-url}{github-org}/{project}'
1460 branch: 'refs/heads/{branch}'
1461 submodule-recursive: '{submodule-recursive}'
1462 submodule-timeout: '{submodule-timeout}'
1463 choosing-strategy: default
1464 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1467 - timed: '{obj:cron}'
1472 - github-pull-request:
1473 trigger-phrase: '^remerge$'
1474 only-trigger-phrase: true
1475 status-context: 'Packer {platforms}-{templates} Merge'
1480 white-list: '{obj:github_pr_whitelist}'
1481 admin-list: '{obj:github_pr_admin_list}'
1482 # included-regions MUST match Gerrit Trigger file-paths
1484 - 'packer\/provision\/.*\.sh'
1485 - 'packer\/provision\/.*\.bat'
1486 - 'packer\/provision\/.*\.ps1'
1487 - 'packer\/provision\/{templates}\.yaml'
1488 - 'packer\/provision\/local-{templates}\.yaml'
1489 - 'packer\/templates\/{templates}\.json'
1490 - 'packer\/vars\/{platforms}\.json'
1491 white-list-target-branches:
1498 - lf_packer_verify: &lf_packer_verify
1499 name: lf-packer-verify
1501 ######################
1502 # Default parameters #
1503 ######################
1507 openstack-cloud: vex
1509 gerrit_verify_triggers:
1510 - patchset-created-event:
1511 exclude-drafts: true
1512 exclude-trivial-rebase: false
1513 exclude-no-code-change: false
1514 - draft-published-event
1515 - comment-added-contains-event:
1516 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1518 gerrit_trigger_file_paths:
1519 - compare-type: REG_EXP
1520 pattern: 'packer\/.*'
1522 # github_included_regions MUST match gerrit_trigger_file_paths
1523 github_included_regions:
1526 #####################
1527 # Job Configuration #
1528 #####################
1533 - lf-infra-packer-validate:
1534 openstack: '{openstack}'
1535 openstack-cloud: '{openstack-cloud}'
1536 packer-cloud-settings: '{packer-cloud-settings}'
1537 packer-version: '{packer-version}'
1540 name: '{project-name}-packer-verify'
1541 id: gerrit-packer-verify
1542 <<: *lf_packer_common
1543 # yamllint disable-line rule:key-duplicates
1544 <<: *lf_packer_verify
1546 ######################
1547 # Default parameters #
1548 ######################
1550 git-url: '$GIT_URL/$GERRIT_PROJECT'
1552 #####################
1553 # Job Configuration #
1554 #####################
1557 - lf-infra-gerrit-scm:
1558 git-url: '{git-url}'
1559 refspec: '$GERRIT_REFSPEC'
1560 branch: '$GERRIT_BRANCH'
1561 submodule-recursive: '{submodule-recursive}'
1562 submodule-timeout: '{submodule-timeout}'
1563 choosing-strategy: gerrit
1564 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1568 server-name: '{gerrit-server-name}'
1569 trigger-on: '{obj:gerrit_verify_triggers}'
1571 - project-compare-type: ANT
1572 project-pattern: '{project}'
1574 - branch-compare-type: ANT
1575 branch-pattern: '**/{branch}'
1576 file-paths: '{obj:gerrit_trigger_file_paths}'
1579 name: '{project-name}-packer-verify'
1580 id: github-packer-verify
1581 <<: *lf_packer_common
1582 # yamllint disable-line rule:key-duplicates
1583 <<: *lf_packer_verify
1585 #####################
1586 # Job Configuration #
1587 #####################
1590 - lf-infra-properties:
1591 project: '{project}'
1592 build-days-to-keep: 7
1594 url: '{github-url}/{github-org}/{project}'
1597 - lf-infra-github-scm:
1598 url: '{git-clone-url}{github-org}/{project}'
1599 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1601 submodule-recursive: '{submodule-recursive}'
1602 submodule-timeout: '{submodule-timeout}'
1603 choosing-strategy: default
1604 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1607 - github-pull-request:
1608 trigger-phrase: '^(recheck|reverify)$'
1609 only-trigger-phrase: false
1610 status-context: 'Packer Verify'
1613 included-regions: '{obj:github_included_regions}'
1614 white-list-target-branches: