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
1245 submodule-timeout: 10
1247 #####################
1248 # Job Configuration #
1249 #####################
1251 project-type: freestyle
1252 node: '{build-node}'
1254 disabled: '{disable-job}'
1257 - lf-infra-properties:
1258 build-days-to-keep: '{build-days-to-keep}'
1261 - lf-infra-parameters:
1262 project: '{project}'
1265 lftools-version: '{lftools-version}'
1268 - lf-infra-wrappers:
1269 build-timeout: '{build-timeout}'
1270 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1271 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1272 - config-file-provider:
1274 - file-id: clouds-yaml
1275 target: '$HOME/.config/openstack/clouds.yaml'
1277 target: '$HOME/.npmrc'
1279 target: '$HOME/.config/pip/pip.conf'
1282 - timed: '{obj:cron}'
1285 - lf-infra-pre-build
1287 properties-content: OS_CLOUD={openstack-cloud}
1289 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1291 condition-kind: boolean-expression
1292 condition-expression: '{openstack-image-cleanup}'
1295 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1296 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1302 name: '{project-name}-openstack-cron'
1303 id: gerrit-openstack-cron
1304 <<: *lf_openstack_cron
1307 - lf-infra-gerrit-scm:
1308 git-url: '{git-url}'
1309 refspec: 'refs/heads/{branch}'
1311 submodule-recursive: true
1312 submodule-timeout: '{submodule-timeout}'
1313 choosing-strategy: default
1314 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1317 name: '{project-name}-openstack-cron'
1318 id: github-openstack-cron
1319 <<: *lf_openstack_cron
1322 - lf-infra-github-scm:
1323 url: '{git-clone-url}{github-org}/{project}'
1325 branch: 'refs/heads/{branch}'
1326 submodule-recursive: true
1327 submodule-timeout: '{submodule-timeout}'
1328 choosing-strategy: default
1329 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1335 - lf_packer_merge: &lf_packer_merge
1336 name: lf-packer-merge
1338 ######################
1339 # Default parameters #
1340 ######################
1343 openstack-cloud: vex
1345 #####################
1346 # Job Configuration #
1347 #####################
1350 - lf-infra-parameters:
1351 project: '{project}'
1354 lftools-version: '{lftools-version}'
1355 - lf-packer-parameters:
1356 packer-version: '{packer-version}'
1359 - lf-infra-packer-build:
1360 openstack: '{openstack}'
1361 openstack-cloud: '{openstack-cloud}'
1362 packer-cloud-settings: '{packer-cloud-settings}'
1363 packer-version: '{packer-version}'
1364 platform: '{platforms}'
1365 template: '{templates}'
1368 name: '{project-name}-packer-merge-{platforms}-{templates}'
1369 id: gerrit-packer-merge
1370 <<: *lf_packer_common
1371 # yamllint disable-line rule:key-duplicates
1372 <<: *lf_packer_merge
1374 ######################
1375 # Default parameters #
1376 ######################
1378 git-url: '$GIT_URL/$GERRIT_PROJECT'
1380 gerrit_merge_triggers:
1381 - change-merged-event
1382 - comment-added-contains-event:
1383 comment-contains-value: remerge$
1385 #####################
1386 # Job Configuration #
1387 #####################
1390 - lf-infra-gerrit-scm:
1391 git-url: '{git-url}'
1392 refspec: '$GERRIT_REFSPEC'
1393 branch: '$GERRIT_BRANCH'
1394 submodule-recursive: '{submodule-recursive}'
1395 submodule-timeout: '{submodule-timeout}'
1396 choosing-strategy: gerrit
1397 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1400 - timed: '{obj:cron}'
1402 server-name: '{gerrit-server-name}'
1403 trigger-on: '{obj:gerrit_merge_triggers}'
1405 - project-compare-type: ANT
1406 project-pattern: '{project}'
1408 - branch-compare-type: ANT
1409 branch-pattern: '**/{branch}'
1411 - compare-type: REG_EXP
1412 pattern: 'packer\/provision\/.*\.sh'
1413 - compare-type: REG_EXP
1414 pattern: 'packer\/provision\/.*\.bat'
1415 - compare-type: REG_EXP
1416 pattern: 'packer\/provision\/.*\.ps1'
1417 - compare-type: REG_EXP
1418 pattern: 'packer\/provision\/{templates}\.yaml'
1419 - compare-type: REG_EXP
1420 pattern: 'packer\/provision\/local-{templates}\.yaml'
1421 - compare-type: REG_EXP
1422 pattern: 'packer\/templates\/{templates}\.json'
1423 - compare-type: REG_EXP
1424 pattern: 'packer\/vars\/{platforms}\.json'
1427 name: '{project-name}-packer-merge-{platforms}-{templates}'
1428 id: github-packer-merge
1429 <<: *lf_packer_common
1430 # yamllint disable-line rule:key-duplicates
1431 <<: *lf_packer_merge
1433 #####################
1434 # Job Configuration #
1435 #####################
1438 - lf-infra-properties:
1439 project: '{project}'
1440 build-days-to-keep: 7
1442 url: '{github-url}/{github-org}/{project}'
1445 - lf-infra-github-scm:
1446 url: '{git-clone-url}{github-org}/{project}'
1448 branch: 'refs/heads/{branch}'
1449 submodule-recursive: '{submodule-recursive}'
1450 submodule-timeout: '{submodule-timeout}'
1451 choosing-strategy: default
1452 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1455 - timed: '{obj:cron}'
1460 - github-pull-request:
1461 trigger-phrase: '^remerge$'
1462 only-trigger-phrase: true
1463 status-context: 'Packer {platforms}-{templates} Merge'
1468 white-list: '{obj:github_pr_whitelist}'
1469 admin-list: '{obj:github_pr_admin_list}'
1470 # included-regions MUST match Gerrit Trigger file-paths
1472 - 'packer\/provision\/.*\.sh'
1473 - 'packer\/provision\/.*\.bat'
1474 - 'packer\/provision\/.*\.ps1'
1475 - 'packer\/provision\/{templates}\.yaml'
1476 - 'packer\/provision\/local-{templates}\.yaml'
1477 - 'packer\/templates\/{templates}\.json'
1478 - 'packer\/vars\/{platforms}\.json'
1479 white-list-target-branches:
1486 - lf_packer_verify: &lf_packer_verify
1487 name: lf-packer-verify
1489 ######################
1490 # Default parameters #
1491 ######################
1495 openstack-cloud: vex
1497 gerrit_verify_triggers:
1498 - patchset-created-event:
1499 exclude-drafts: true
1500 exclude-trivial-rebase: false
1501 exclude-no-code-change: false
1502 - draft-published-event
1503 - comment-added-contains-event:
1504 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1506 gerrit_trigger_file_paths:
1507 - compare-type: REG_EXP
1508 pattern: 'packer\/.*'
1510 # github_included_regions MUST match gerrit_trigger_file_paths
1511 github_included_regions:
1514 #####################
1515 # Job Configuration #
1516 #####################
1521 - lf-infra-packer-validate:
1522 openstack: '{openstack}'
1523 openstack-cloud: '{openstack-cloud}'
1524 packer-cloud-settings: '{packer-cloud-settings}'
1525 packer-version: '{packer-version}'
1528 name: '{project-name}-packer-verify'
1529 id: gerrit-packer-verify
1530 <<: *lf_packer_common
1531 # yamllint disable-line rule:key-duplicates
1532 <<: *lf_packer_verify
1534 ######################
1535 # Default parameters #
1536 ######################
1538 git-url: '$GIT_URL/$GERRIT_PROJECT'
1540 #####################
1541 # Job Configuration #
1542 #####################
1545 - lf-infra-gerrit-scm:
1546 git-url: '{git-url}'
1547 refspec: '$GERRIT_REFSPEC'
1548 branch: '$GERRIT_BRANCH'
1549 submodule-recursive: '{submodule-recursive}'
1550 submodule-timeout: '{submodule-timeout}'
1551 choosing-strategy: gerrit
1552 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1556 server-name: '{gerrit-server-name}'
1557 trigger-on: '{obj:gerrit_verify_triggers}'
1559 - project-compare-type: ANT
1560 project-pattern: '{project}'
1562 - branch-compare-type: ANT
1563 branch-pattern: '**/{branch}'
1564 file-paths: '{obj:gerrit_trigger_file_paths}'
1567 name: '{project-name}-packer-verify'
1568 id: github-packer-verify
1569 <<: *lf_packer_common
1570 # yamllint disable-line rule:key-duplicates
1571 <<: *lf_packer_verify
1573 #####################
1574 # Job Configuration #
1575 #####################
1578 - lf-infra-properties:
1579 project: '{project}'
1580 build-days-to-keep: 7
1582 url: '{github-url}/{github-org}/{project}'
1585 - lf-infra-github-scm:
1586 url: '{git-clone-url}{github-org}/{project}'
1587 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1589 submodule-recursive: '{submodule-recursive}'
1590 submodule-timeout: '{submodule-timeout}'
1591 choosing-strategy: default
1592 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1595 - github-pull-request:
1596 trigger-phrase: '^(recheck|reverify)$'
1597 only-trigger-phrase: false
1598 status-context: 'Packer Verify'
1601 included-regions: '{obj:github_included_regions}'
1602 white-list-target-branches: