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.
92 - lf_jjb_common: &lf_jjb_common
95 ######################
96 # Default parameters #
97 ######################
102 github-url: 'https://github.com'
103 jjb-cache: '$HOME/.cache/jenkins_jobs'
106 submodule-recursive: true
107 submodule-timeout: 10
109 gerrit_trigger_file_paths:
110 - compare-type: REG_EXP
112 - compare-type: REG_EXP
113 pattern: 'global-jjb'
114 - compare-type: REG_EXP
117 # github_included_regions MUST match gerrit_trigger_file_paths
118 github_included_regions:
123 #####################
124 # Job Configuration #
125 #####################
127 project-type: freestyle
129 disabled: '{disable-job}'
132 - lf-infra-properties:
134 build-days-to-keep: 7
137 - lf-infra-parameters:
141 - lf-infra-jjb-parameters:
142 jjb-cache: '{jjb-cache}'
143 jjb-version: '{jjb-version}'
147 build-timeout: '{build-timeout}'
148 jenkins-ssh-credential: '{jenkins-ssh-credential}'
153 ######################
154 # Gerrit Branch Lock #
155 ######################
158 name: '{project-name}-gerrit-branch-lock-{stream}'
159 id: gerrit-branch-lock
161 ######################
162 # Default parameters #
163 ######################
167 git-url: '$GIT_URL/$GERRIT_PROJECT'
169 submodule-timeout: 10
170 gerrit_merge_triggers:
171 - comment-added-contains-event:
172 comment-contains-value: (un)?lock branch$
174 #####################
175 # Job Configuration #
176 #####################
178 project-type: freestyle
180 disabled: '{disable-job}'
183 - lf-infra-properties:
185 build-days-to-keep: 1
188 - lf-infra-parameters:
196 jenkins-ssh-credential: '{jenkins-ssh-credential}'
199 - lf-infra-gerrit-scm:
203 submodule-recursive: false
204 submodule-timeout: '{submodule-timeout}'
205 choosing-strategy: default
206 jenkins-ssh-credential: '{jenkins-ssh-credential}'
210 server-name: '{gerrit-server-name}'
211 trigger-on: '{obj:gerrit_merge_triggers}'
213 - project-compare-type: ANT
214 project-pattern: '{project}'
216 - branch-compare-type: ANT
217 branch-pattern: '**/{branch}'
220 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
226 ##########################################
227 # Jenkins Configuration Management Merge #
228 ##########################################
231 name: lf-jenkins-cfg-clouds
235 properties-content: 'jenkins_silos={jenkins-silos}'
236 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
237 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
240 name: lf-jenkins-cfg-global-vars
244 properties-content: 'jenkins_silos={jenkins-silos}'
245 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
246 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
248 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
249 name: lf-jenkins-cfg-merge
251 ######################
252 # Default parameters #
253 ######################
258 git-url: '$GIT_URL/$GERRIT_PROJECT'
259 github-url: 'https://github.com'
260 jenkins-silos: production sandbox
261 submodule-timeout: 10
263 gerrit_merge_triggers:
264 - change-merged-event
265 - comment-added-contains-event:
266 comment-contains-value: remerge$
268 gerrit_trigger_file_paths:
269 - compare-type: REG_EXP
270 pattern: 'jenkins-config\/.*'
272 # github_included_regions MUST match gerrit_trigger_file_paths
273 github_included_regions:
274 - 'jenkins-config\/.*'
276 #####################
277 # Job Configuration #
278 #####################
280 project-type: freestyle
283 disabled: '{disable-job}'
286 - lf-infra-properties:
288 build-days-to-keep: 1
291 - lf-infra-parameters:
299 jenkins-ssh-credential: '{jenkins-ssh-credential}'
303 - lf-jenkins-cfg-global-vars:
304 jenkins-silos: '{jenkins-silos}'
305 - lf-jenkins-cfg-clouds:
306 jenkins-silos: '{jenkins-silos}'
312 name: '{project-name}-jenkins-cfg-merge'
313 id: gerrit-jenkins-cfg-merge
314 <<: *lf_jenkins_cfg_merge
317 - lf-infra-gerrit-scm:
319 refspec: 'refs/heads/{branch}'
321 submodule-recursive: true
322 submodule-timeout: '{submodule-timeout}'
323 choosing-strategy: default
324 jenkins-ssh-credential: '{jenkins-ssh-credential}'
327 - timed: '{obj:cron}'
329 server-name: '{gerrit-server-name}'
330 trigger-on: '{obj:gerrit_merge_triggers}'
332 - project-compare-type: ANT
333 project-pattern: '{project}'
335 - branch-compare-type: ANT
336 branch-pattern: '**/{branch}'
337 file-paths: '{obj:gerrit_trigger_file_paths}'
340 name: '{project-name}-jenkins-cfg-merge'
341 id: github-jenkins-cfg-merge
342 <<: *lf_jenkins_cfg_merge
345 - lf-infra-properties:
347 build-days-to-keep: 1
349 url: '{github-url}/{github-org}/{project}'
352 - lf-infra-github-scm:
353 url: '{git-clone-url}{github-org}/{project}'
355 branch: 'refs/heads/{branch}'
356 submodule-recursive: true
357 submodule-timeout: '{submodule-timeout}'
358 choosing-strategy: default
359 jenkins-ssh-credential: '{jenkins-ssh-credential}'
362 - timed: '{obj:cron}'
366 - github-pull-request:
367 trigger-phrase: '^remerge$'
368 only-trigger-phrase: true
369 status-context: 'Jenkins CFG Merge'
374 white-list: '{obj:github_pr_whitelist}'
375 admin-list: '{obj:github_pr_admin_list}'
376 included-regions: '{obj:github_included_regions}'
377 white-list-target-branches:
380 ###########################################
381 # Jenkins Configuration Management Verify #
382 ###########################################
384 - lf_jenkins_configuration: &lf_jenkins_cfg_verify
385 name: lf-jenkins-cfg-verify
387 ######################
388 # Default parameters #
389 ######################
392 build-days-to-keep: 7
394 git-url: '$GIT_URL/$GERRIT_PROJECT'
395 github-url: 'https://github.com'
397 submodule-timeout: 10
399 gerrit_verify_triggers:
400 - patchset-created-event:
402 exclude-trivial-rebase: false
403 exclude-no-code-change: false
404 - draft-published-event
405 - comment-added-contains-event:
406 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
408 gerrit_trigger_file_paths:
409 - compare-type: REG_EXP
410 pattern: 'jenkins-config\/.*'
412 # github_included_regions MUST match gerrit_trigger_file_paths
413 github_included_regions:
414 - 'jenkins-config\/.*'
416 #####################
417 # Job Configuration #
418 #####################
420 project-type: freestyle
423 disabled: '{disable-job}'
426 - lf-infra-properties:
428 build-days-to-keep: 1
431 - lf-infra-parameters:
439 jenkins-ssh-credential: '{jenkins-ssh-credential}'
440 - config-file-provider:
441 # Listed after to override openstack-infra-wrappers clouds.yaml
444 - file-id: clouds-yaml
445 target: '$HOME/.config/openstack/clouds.yaml'
447 target: '$HOME/.npmrc'
449 target: '$HOME/.config/pip/pip.conf'
454 properties-content: OS_CLOUD={openstack-cloud}
455 - shell: !include-raw-escape: ../shell/jenkins-verify-images.sh
461 name: '{project-name}-jenkins-cfg-verify'
462 id: gerrit-jenkins-cfg-verify
463 <<: *lf_jenkins_cfg_verify
466 - lf-infra-gerrit-scm:
468 refspec: 'refs/heads/{branch}'
470 submodule-recursive: true
471 submodule-timeout: '{submodule-timeout}'
472 choosing-strategy: default
473 jenkins-ssh-credential: '{jenkins-ssh-credential}'
477 server-name: '{gerrit-server-name}'
478 trigger-on: '{obj:gerrit_verify_triggers}'
480 - project-compare-type: ANT
481 project-pattern: '{project}'
483 - branch-compare-type: ANT
484 branch-pattern: '**/{branch}'
485 file-paths: '{obj:gerrit_trigger_file_paths}'
488 name: '{project-name}-jenkins-cfg-verify'
489 id: github-jenkins-cfg-verify
490 <<: *lf_jenkins_cfg_verify
494 url: '{github-url}/{github-org}/{project}'
497 - lf-infra-github-scm:
498 url: '{git-clone-url}{github-org}/{project}'
499 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
501 submodule-recursive: '{submodule-recursive}'
502 submodule-timeout: '{submodule-timeout}'
503 choosing-strategy: default
504 jenkins-ssh-credential: '{jenkins-ssh-credential}'
507 - github-pull-request:
508 trigger-phrase: '^(recheck|reverify)$'
509 only-trigger-phrase: false
510 status-context: 'Jenkins CFG Verify'
513 included-regions: '{obj:github_included_regions}'
514 white-list-target-branches:
517 ###########################
518 # JENKINS SANDBOX CLEANUP #
519 ###########################
521 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
522 name: lf-jenkins-sandbox-cleanup
524 ######################
525 # Default parameters #
526 ######################
529 # Run every Saturday at 08:00 UTC
533 #####################
534 # Job Configuration #
535 #####################
537 project-type: freestyle
540 disabled: '{disable-job}'
543 - lf-infra-jjb-parameters:
544 jjb-cache: '{jjb-cache}'
545 jjb-version: '{jjb-version}'
548 - timed: '{obj:cron}'
552 - shell: !include-raw-escape:
553 - ../shell/jjb-install.sh
554 - ../shell/jenkins-sandbox-cleanup.sh
555 - ../shell/jjb-cleanup.sh
558 name: '{project-name}-jenkins-sandbox-cleanup'
559 id: gerrit-jenkins-sandbox-cleanup
561 # yamllint disable-line rule:key-duplicates
562 <<: *lf_jenkins_sandbox_cleanup
565 name: '{project-name}-jenkins-sandbox-cleanup'
566 id: github-jenkins-sandbox-cleanup
568 # yamllint disable-line rule:key-duplicates
569 <<: *lf_jenkins_sandbox_cleanup
576 - lf_jjb_deploy_job: &lf_jjb_deploy_job
577 name: lf-jjb-deploy-job
579 ######################
580 # Default parameters #
581 ######################
585 # jjb-deploy should always clone $PROJECT regardless of what
586 # $GERRIT_PROJECT triggered the job.
587 git-url: '$GIT_URL/$PROJECT'
588 github-url: 'https://github.com'
590 submodule-timeout: 10
591 gerrit_jjb_deploy_job_triggers:
592 - comment-added-contains-event:
593 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
595 #####################
596 # Job Configuration #
597 #####################
599 project-type: freestyle
602 disabled: '{disable-job}'
605 - lf-infra-properties:
607 build-days-to-keep: 1
610 - lf-infra-parameters:
618 jenkins-ssh-credential: '{jenkins-ssh-credential}'
622 pip-packages: jenkins-job-builder
623 - lf-infra-jjbini-sandbox
624 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
630 name: '{project-name}-jjb-deploy-job'
631 id: gerrit-jjb-deploy-job
632 <<: *lf_jjb_deploy_job
635 - lf-infra-gerrit-scm:
637 refspec: 'refs/heads/{branch}'
639 submodule-recursive: true
640 submodule-timeout: '{submodule-timeout}'
641 choosing-strategy: default
642 jenkins-ssh-credential: '{jenkins-ssh-credential}'
646 server-name: '{gerrit-server-name}'
647 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
649 - project-compare-type: ANT
650 project-pattern: '**'
652 - branch-compare-type: ANT
661 name: '{project-name}-jjb-deploy-job'
662 id: github-jjb-deploy-job
663 <<: *lf_jjb_deploy_job
666 - lf-infra-properties:
668 build-days-to-keep: 1
670 url: '{github-url}/{github-org}/{project}'
673 - lf-infra-github-scm:
674 url: '{git-clone-url}{github-org}/{project}'
675 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
677 submodule-recursive: true
678 submodule-timeout: '{submodule-timeout}'
679 choosing-strategy: default
680 jenkins-ssh-credential: '{jenkins-ssh-credential}'
683 - github-pull-request:
684 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
685 only-trigger-phrase: true
686 status-context: 'JJB Deploy Job'
689 white-list-target-branches:
696 - lf_jjb_merge: &lf_jjb_merge
699 ######################
700 # Default parameters #
701 ######################
703 gerrit_merge_triggers:
704 - change-merged-event
705 - comment-added-contains-event:
706 comment-contains-value: remerge$
708 #####################
709 # Job Configuration #
710 #####################
715 - shell: !include-raw-escape:
716 - ../shell/jjb-install.sh
717 - ../shell/jjb-merge-job.sh
718 - ../shell/jjb-cleanup.sh
721 name: '{project-name}-jjb-merge'
724 # yamllint disable-line rule:key-duplicates
727 git-url: '$GIT_URL/$GERRIT_PROJECT'
730 - lf-infra-gerrit-scm:
734 submodule-recursive: '{submodule-recursive}'
735 submodule-timeout: '{submodule-timeout}'
736 choosing-strategy: default
737 jenkins-ssh-credential: '{jenkins-ssh-credential}'
741 server-name: '{gerrit-server-name}'
742 trigger-on: '{obj:gerrit_merge_triggers}'
744 - project-compare-type: ANT
745 project-pattern: '{project}'
747 - branch-compare-type: ANT
748 branch-pattern: '**/{branch}'
749 file-paths: '{obj:gerrit_trigger_file_paths}'
752 name: '{project-name}-jjb-merge'
755 # yamllint disable-line rule:key-duplicates
758 #####################
759 # Job Configuration #
760 #####################
763 - lf-infra-properties:
765 build-days-to-keep: 7
767 url: '{github-url}/{github-org}/{project}'
770 - lf-infra-github-scm:
771 url: '{git-clone-url}{github-org}/{project}'
773 branch: 'refs/heads/{branch}'
774 submodule-recursive: '{submodule-recursive}'
775 submodule-timeout: '{submodule-timeout}'
776 choosing-strategy: default
777 jenkins-ssh-credential: '{jenkins-ssh-credential}'
783 - github-pull-request:
784 trigger-phrase: '^remerge$'
785 only-trigger-phrase: true
786 status-context: 'JJB Merge'
791 white-list: '{obj:github_pr_whitelist}'
792 admin-list: '{obj:github_pr_admin_list}'
793 included-regions: '{obj:github_included_regions}'
794 white-list-target-branches:
801 - lf_jjb_verify: &lf_jjb_verify
804 ######################
805 # Default parameters #
806 ######################
808 build-concurrent: true
810 gerrit_verify_triggers:
811 - patchset-created-event:
813 exclude-trivial-rebase: false
814 exclude-no-code-change: false
815 - draft-published-event
816 - comment-added-contains-event:
817 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
819 #####################
820 # Job Configuration #
821 #####################
823 concurrent: '{build-concurrent}'
828 - shell: !include-raw-escape:
829 - ../shell/git-validate-jira-urls.sh
830 - ../shell/jjb-install.sh
831 - ../shell/jjb-verify-job.sh
832 - ../shell/jjb-check-unicode.sh
833 - ../shell/jjb-cleanup.sh
834 - lf-infra-gpg-verify-git-signature
837 name: '{project-name}-jjb-verify'
838 id: gerrit-jjb-verify
840 # yamllint disable-line rule:key-duplicates
843 ######################
844 # Default parameters #
845 ######################
847 git-url: '$GIT_URL/$GERRIT_PROJECT'
849 #####################
850 # Job Configuration #
851 #####################
854 - lf-infra-gerrit-scm:
856 refspec: '$GERRIT_REFSPEC'
857 branch: '$GERRIT_BRANCH'
858 submodule-recursive: '{submodule-recursive}'
859 submodule-timeout: '{submodule-timeout}'
860 choosing-strategy: gerrit
861 jenkins-ssh-credential: '{jenkins-ssh-credential}'
865 server-name: '{gerrit-server-name}'
866 trigger-on: '{obj:gerrit_verify_triggers}'
868 - project-compare-type: ANT
869 project-pattern: '{project}'
871 - branch-compare-type: ANT
872 branch-pattern: '**/{branch}'
873 file-paths: '{obj:gerrit_trigger_file_paths}'
876 name: '{project-name}-jjb-verify'
877 id: github-jjb-verify
879 # yamllint disable-line rule:key-duplicates
882 #####################
883 # Job Configuration #
884 #####################
887 - lf-infra-properties:
889 build-days-to-keep: 7
891 url: '{github-url}/{github-org}/{project}'
894 - lf-infra-github-scm:
895 url: '{git-clone-url}{github-org}/{project}'
896 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
898 submodule-recursive: '{submodule-recursive}'
899 submodule-timeout: '{submodule-timeout}'
900 choosing-strategy: default
901 jenkins-ssh-credential: '{jenkins-ssh-credential}'
904 - github-pull-request:
905 trigger-phrase: '^(recheck|reverify)$'
906 only-trigger-phrase: false
907 status-context: 'JJB Verify'
910 included-regions: '{obj:github_included_regions}'
911 white-list-target-branches:
914 ############################
915 # JJB Verify Upstream GJJB #
916 ############################
918 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
919 name: lf-jjb-verify-upstream-gjjb
921 #####################
922 # Job Configuration #
923 #####################
930 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
931 git cherry-pick FETCH_HEAD
933 - shell: !include-raw-escape:
934 - ../shell/git-validate-jira-urls.sh
935 - ../shell/jjb-install.sh
936 - ../shell/jjb-verify-job.sh
937 - ../shell/jjb-check-unicode.sh
938 - ../shell/jjb-cleanup.sh
939 - lf-infra-gpg-verify-git-signature
942 name: '{project-name}-jjb-verify-upstream-gjjb'
943 id: gerrit-jjb-verify-upstream-gjjb
945 # yamllint disable-line rule:key-duplicates
946 <<: *lf_jjb_verify_upstream_gjjb
948 ######################
949 # Default parameters #
950 ######################
952 git-url: '$GIT_URL/$PROJECT'
953 submodule-timeout: 10
955 #####################
956 # Job Configuration #
957 #####################
960 - lf-infra-gerrit-scm:
964 submodule-recursive: true
965 submodule-timeout: '{submodule-timeout}'
966 choosing-strategy: default
967 jenkins-ssh-credential: '{jenkins-ssh-credential}'
971 server-name: 'LinuxFoundation'
973 - patchset-created-event:
975 exclude-trivial-rebase: false
976 exclude-no-code-change: false
977 - draft-published-event
978 - comment-added-contains-event:
979 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
981 - project-compare-type: ANT
982 project-pattern: 'releng/global-jjb'
984 - branch-compare-type: ANT
985 branch-pattern: '**/master'
987 gerrit-build-failed-codereview-value: -1
988 gerrit-build-failed-verified-value: 0
989 gerrit-build-successful-codereview-value: 1
990 gerrit-build-successful-verified-value: 0
996 - lf_license_check: &lf_license_check
997 name: lf-license-check
999 ######################
1000 # Default parameters #
1001 ######################
1004 build-days-to-keep: 7
1013 git-url: '$GIT_URL/$PROJECT'
1014 github-url: 'https://github.com'
1016 license-exclude-paths: ''
1017 licenses-allowed: Apache-2.0,EPL-1.0,MIT
1018 project-pattern: '**'
1021 submodule-timeout: 10
1023 #####################
1024 # Job Configuration #
1025 #####################
1027 project-type: freestyle
1028 node: '{build-node}'
1030 disabled: '{disable-job}'
1033 - lf-infra-properties:
1034 build-days-to-keep: '{build-days-to-keep}'
1037 - lf-infra-parameters:
1038 project: '{project}'
1043 - lf-infra-wrappers:
1044 build-timeout: '{build-timeout}'
1045 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1049 file-patterns: '{file-patterns}'
1050 spdx-disable: '{spdx-disable}'
1051 lhc-version: '{lhc-version}'
1052 license-exclude-paths: '{license-exclude-paths}'
1053 licenses-allowed: '{licenses-allowed}'
1059 name: '{project-name}-license-check'
1060 id: gerrit-license-check
1061 <<: *lf_license_check
1063 git-url: '$GIT_URL/$GERRIT_PROJECT'
1066 - lf-infra-gerrit-scm:
1067 git-url: '{git-url}'
1068 refspec: '$GERRIT_REFSPEC'
1069 branch: '$GERRIT_BRANCH'
1070 # Submodules are out of the project's control
1071 submodule-recursive: false
1072 submodule-timeout: '{submodule-timeout}'
1073 choosing-strategy: gerrit
1074 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1078 server-name: '{gerrit-server-name}'
1079 # Trigger should not be overridable as we want to always run
1081 - patchset-created-event:
1082 exclude-drafts: false
1083 exclude-trivial-rebase: false
1084 exclude-no-code-change: false
1085 - draft-published-event
1086 - comment-added-contains-event:
1087 comment-contains-value: recheck$
1089 - project-compare-type: ANT
1090 project-pattern: '{project-pattern}'
1092 - branch-compare-type: ANT
1093 branch-pattern: '**'
1096 name: '{project-name}-license-check'
1097 id: github-license-check
1098 <<: *lf_license_check
1101 - lf-infra-properties:
1102 build-days-to-keep: '{build-days-to-keep}'
1104 url: '{github-url}/{github-org}/{project}'
1107 - lf-infra-github-scm:
1108 url: '{git-clone-url}{github-org}/{project}'
1109 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1111 # Submodules are out of the project's control
1112 submodule-recursive: false
1113 submodule-timeout: '{submodule-timeout}'
1114 choosing-strategy: default
1115 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1118 - github-pull-request:
1119 trigger-phrase: '^recheck$'
1120 only-trigger-phrase: false
1121 status-context: 'License Check'
1124 white-list-target-branches:
1127 ####################
1128 # Info YAML Verify #
1129 ####################
1131 - lf_info_yaml_verify: &lf_info_yaml_verify
1132 name: lf-info-yaml-verify
1134 ######################
1135 # Default parameters #
1136 ######################
1138 gerrit_verify_triggers:
1139 - patchset-created-event:
1140 exclude-drafts: true
1141 exclude-trivial-rebase: false
1142 exclude-no-code-change: false
1143 - draft-published-event
1144 - comment-added-contains-event:
1145 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1147 #####################
1148 # Job Configuration #
1149 #####################
1154 - shell: !include-raw-escape:
1155 - ../shell/git-validate-info-yaml.sh
1156 - ../shell/info-file-validate.sh
1159 name: '{project-name}-info-yaml-verify'
1160 id: gerrit-info-yaml-verify
1162 # yamllint disable-line rule:key-duplicates
1163 <<: *lf_info_yaml_verify
1165 git-url: '$GIT_URL/$GERRIT_PROJECT'
1168 - lf-infra-gerrit-scm:
1169 git-url: '{git-url}'
1170 refspec: '$GERRIT_REFSPEC'
1171 branch: '$GERRIT_BRANCH'
1172 submodule-recursive: '{submodule-recursive}'
1173 submodule-timeout: '{submodule-timeout}'
1174 choosing-strategy: gerrit
1175 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1179 server-name: '{gerrit-server-name}'
1180 trigger-on: '{obj:gerrit_verify_triggers}'
1182 - project-compare-type: ANT
1183 project-pattern: '{project}'
1185 - branch-compare-type: ANT
1186 branch-pattern: '**/{branch}'
1188 - compare-type: REG_EXP
1189 pattern: 'INFO.yaml'
1192 name: '{project-name}-info-yaml-verify'
1193 id: github-info-yaml-verify
1195 # yamllint disable-line rule:key-duplicates
1196 <<: *lf_info_yaml_verify
1198 github-url: 'https://github.com'
1201 url: '{github-url}/{github-org}/{project}'
1204 - lf-infra-github-scm:
1205 url: '{git-clone-url}{github-org}/{project}'
1206 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1208 submodule-recursive: '{submodule-recursive}'
1209 submodule-timeout: '{submodule-timeout}'
1210 choosing-strategy: default
1211 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1214 - github-pull-request:
1215 trigger-phrase: '^(recheck|reverify)$'
1216 only-trigger-phrase: false
1217 status-context: 'INFO File Verify'
1220 # included-regions MUST match gerrit file-paths
1221 included-regions: 'INFO.yaml'
1222 white-list-target-branches:
1229 - lf_openstack_cron: &lf_openstack_cron
1230 name: lf-openstack-cron
1232 ######################
1233 # Default parameters #
1234 ######################
1237 build-days-to-keep: 7
1241 git-url: '$GIT_URL/$PROJECT'
1242 github-url: 'https://github.com'
1243 openstack-cloud: vex
1244 openstack-image-cleanup: true
1245 openstack-image-cleanup-age: 30
1246 openstack-image-protect: true
1247 openstack-server-cleanup: true
1248 openstack-stack-cleanup: true
1249 openstack-volume-cleanup: true
1251 submodule-timeout: 10
1253 #####################
1254 # Job Configuration #
1255 #####################
1257 project-type: freestyle
1258 node: '{build-node}'
1260 disabled: '{disable-job}'
1263 - lf-infra-properties:
1264 build-days-to-keep: '{build-days-to-keep}'
1267 - lf-infra-parameters:
1268 project: '{project}'
1273 default: '{jenkins-urls}'
1275 Space separated list of Jenkins URLs to check for active builds.
1278 - lf-infra-wrappers:
1279 build-timeout: '{build-timeout}'
1280 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1281 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1282 - config-file-provider:
1284 - file-id: clouds-yaml
1285 target: '$HOME/.config/openstack/clouds.yaml'
1287 target: '$HOME/.npmrc'
1289 target: '$HOME/.config/pip/pip.conf'
1292 - timed: '{obj:cron}'
1295 - lf-infra-pre-build
1297 properties-content: OS_CLOUD={openstack-cloud}
1300 condition-kind: boolean-expression
1301 condition-expression: '{openstack-stack-cleanup}'
1303 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-stacks.sh
1306 condition-kind: boolean-expression
1307 condition-expression: '{openstack-server-cleanup}'
1309 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-servers.sh
1312 condition-kind: boolean-expression
1313 condition-expression: '{openstack-volume-cleanup}'
1315 - shell: !include-raw-escape: ../shell/openstack-cleanup-orphaned-volumes.sh
1318 condition-kind: boolean-expression
1319 condition-expression: '{openstack-image-protect}'
1321 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1323 condition-kind: boolean-expression
1324 condition-expression: '{openstack-image-cleanup}'
1327 properties-content: OS_IMAGE_CLEANUP_AGE={openstack-image-cleanup-age}
1328 - shell: !include-raw-escape: ../shell/openstack-cleanup-old-images.sh
1334 name: '{project-name}-openstack-cron'
1335 id: gerrit-openstack-cron
1336 <<: *lf_openstack_cron
1339 - lf-infra-gerrit-scm:
1340 git-url: '{git-url}'
1341 refspec: 'refs/heads/{branch}'
1343 submodule-recursive: true
1344 submodule-timeout: '{submodule-timeout}'
1345 choosing-strategy: default
1346 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1349 name: '{project-name}-openstack-cron'
1350 id: github-openstack-cron
1351 <<: *lf_openstack_cron
1354 - lf-infra-github-scm:
1355 url: '{git-clone-url}{github-org}/{project}'
1357 branch: 'refs/heads/{branch}'
1358 submodule-recursive: true
1359 submodule-timeout: '{submodule-timeout}'
1360 choosing-strategy: default
1361 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1367 - lf_packer_merge: &lf_packer_merge
1368 name: lf-packer-merge
1370 ######################
1371 # Default parameters #
1372 ######################
1375 openstack-cloud: vex
1377 #####################
1378 # Job Configuration #
1379 #####################
1382 - lf-infra-parameters:
1383 project: '{project}'
1386 - lf-packer-parameters:
1387 packer-version: '{packer-version}'
1390 - lf-infra-packer-build:
1391 openstack: '{openstack}'
1392 openstack-cloud: '{openstack-cloud}'
1393 packer-cloud-settings: '{packer-cloud-settings}'
1394 packer-version: '{packer-version}'
1395 platform: '{platforms}'
1396 template: '{templates}'
1399 name: '{project-name}-packer-merge-{platforms}-{templates}'
1400 id: gerrit-packer-merge
1401 <<: *lf_packer_common
1402 # yamllint disable-line rule:key-duplicates
1403 <<: *lf_packer_merge
1405 ######################
1406 # Default parameters #
1407 ######################
1409 git-url: '$GIT_URL/$GERRIT_PROJECT'
1411 gerrit_merge_triggers:
1412 - change-merged-event
1413 - comment-added-contains-event:
1414 comment-contains-value: remerge$
1416 #####################
1417 # Job Configuration #
1418 #####################
1421 - lf-infra-gerrit-scm:
1422 git-url: '{git-url}'
1423 refspec: '$GERRIT_REFSPEC'
1424 branch: '$GERRIT_BRANCH'
1425 submodule-recursive: '{submodule-recursive}'
1426 submodule-timeout: '{submodule-timeout}'
1427 choosing-strategy: gerrit
1428 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1431 - timed: '{obj:cron}'
1433 server-name: '{gerrit-server-name}'
1434 trigger-on: '{obj:gerrit_merge_triggers}'
1436 - project-compare-type: ANT
1437 project-pattern: '{project}'
1439 - branch-compare-type: ANT
1440 branch-pattern: '**/{branch}'
1442 - compare-type: REG_EXP
1443 pattern: 'packer\/provision\/.*\.sh'
1444 - compare-type: REG_EXP
1445 pattern: 'packer\/provision\/.*\.bat'
1446 - compare-type: REG_EXP
1447 pattern: 'packer\/provision\/.*\.ps1'
1448 - compare-type: REG_EXP
1449 pattern: 'packer\/provision\/{templates}\.yaml'
1450 - compare-type: REG_EXP
1451 pattern: 'packer\/provision\/local-{templates}\.yaml'
1452 - compare-type: REG_EXP
1453 pattern: 'packer\/templates\/{templates}\.json'
1454 - compare-type: REG_EXP
1455 pattern: 'packer\/vars\/{platforms}\.json'
1458 name: '{project-name}-packer-merge-{platforms}-{templates}'
1459 id: github-packer-merge
1460 <<: *lf_packer_common
1461 # yamllint disable-line rule:key-duplicates
1462 <<: *lf_packer_merge
1464 #####################
1465 # Job Configuration #
1466 #####################
1469 - lf-infra-properties:
1470 project: '{project}'
1471 build-days-to-keep: 7
1473 url: '{github-url}/{github-org}/{project}'
1476 - lf-infra-github-scm:
1477 url: '{git-clone-url}{github-org}/{project}'
1479 +refs/heads/*:refs/remotes/origin/*
1480 +refs/pull/*:refs/remotes/origin/pr/*
1481 branch: '$GERRIT_REFSPEC'
1482 submodule-recursive: '{submodule-recursive}'
1483 submodule-timeout: '{submodule-timeout}'
1484 choosing-strategy: default
1485 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1488 - timed: '{obj:cron}'
1493 - github-pull-request:
1494 trigger-phrase: '^remerge$'
1495 only-trigger-phrase: true
1496 status-context: 'Packer {platforms}-{templates} Merge'
1501 white-list: '{obj:github_pr_whitelist}'
1502 admin-list: '{obj:github_pr_admin_list}'
1503 # included-regions MUST match Gerrit Trigger file-paths
1505 - 'packer\/provision\/.*\.sh'
1506 - 'packer\/provision\/.*\.bat'
1507 - 'packer\/provision\/.*\.ps1'
1508 - 'packer\/provision\/{templates}\.yaml'
1509 - 'packer\/provision\/local-{templates}\.yaml'
1510 - 'packer\/templates\/{templates}\.json'
1511 - 'packer\/vars\/{platforms}\.json'
1512 white-list-target-branches:
1519 - lf_packer_verify: &lf_packer_verify
1520 name: lf-packer-verify
1522 ######################
1523 # Default parameters #
1524 ######################
1528 openstack-cloud: vex
1530 gerrit_verify_triggers:
1531 - patchset-created-event:
1532 exclude-drafts: true
1533 exclude-trivial-rebase: false
1534 exclude-no-code-change: false
1535 - draft-published-event
1536 - comment-added-contains-event:
1537 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1539 gerrit_trigger_file_paths:
1540 - compare-type: REG_EXP
1541 pattern: 'packer\/.*'
1543 # github_included_regions MUST match gerrit_trigger_file_paths
1544 github_included_regions:
1547 #####################
1548 # Job Configuration #
1549 #####################
1554 - lf-infra-packer-validate:
1555 openstack: '{openstack}'
1556 openstack-cloud: '{openstack-cloud}'
1557 packer-cloud-settings: '{packer-cloud-settings}'
1558 packer-version: '{packer-version}'
1561 name: '{project-name}-packer-verify'
1562 id: gerrit-packer-verify
1563 <<: *lf_packer_common
1564 # yamllint disable-line rule:key-duplicates
1565 <<: *lf_packer_verify
1567 ######################
1568 # Default parameters #
1569 ######################
1571 git-url: '$GIT_URL/$GERRIT_PROJECT'
1573 #####################
1574 # Job Configuration #
1575 #####################
1578 - lf-infra-gerrit-scm:
1579 git-url: '{git-url}'
1580 refspec: '$GERRIT_REFSPEC'
1581 branch: '$GERRIT_BRANCH'
1582 submodule-recursive: '{submodule-recursive}'
1583 submodule-timeout: '{submodule-timeout}'
1584 choosing-strategy: gerrit
1585 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1589 server-name: '{gerrit-server-name}'
1590 trigger-on: '{obj:gerrit_verify_triggers}'
1592 - project-compare-type: ANT
1593 project-pattern: '{project}'
1595 - branch-compare-type: ANT
1596 branch-pattern: '**/{branch}'
1597 file-paths: '{obj:gerrit_trigger_file_paths}'
1600 name: '{project-name}-packer-verify'
1601 id: github-packer-verify
1602 <<: *lf_packer_common
1603 # yamllint disable-line rule:key-duplicates
1604 <<: *lf_packer_verify
1606 #####################
1607 # Job Configuration #
1608 #####################
1611 - lf-infra-properties:
1612 project: '{project}'
1613 build-days-to-keep: 7
1615 url: '{github-url}/{github-org}/{project}'
1618 - lf-infra-github-scm:
1619 url: '{git-clone-url}{github-org}/{project}'
1620 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1622 submodule-recursive: '{submodule-recursive}'
1623 submodule-timeout: '{submodule-timeout}'
1624 choosing-strategy: default
1625 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1628 - github-pull-request:
1629 trigger-phrase: '^(recheck|reverify)$'
1630 only-trigger-phrase: false
1631 status-context: 'Packer Verify'
1634 included-regions: '{obj:github_included_regions}'
1635 white-list-target-branches: