3 name: '{project-name}-ci-jobs'
6 - gerrit-jenkins-cfg-merge
7 - gerrit-jenkins-sandbox-cleanup
8 - gerrit-jjb-deploy-job
13 name: '{project-name}-github-ci-jobs'
16 - github-jenkins-cfg-merge
17 - github-jenkins-sandbox-cleanup
18 - github-jjb-deploy-job
23 name: '{project-name}-info-yaml-jobs'
26 - gerrit-info-yaml-verify
29 name: '{project-name}-github-info-yaml-jobs'
32 - github-info-yaml-verify
35 name: '{project-name}-packer-jobs'
39 - gerrit-packer-verify
42 name: '{project-name}-github-packer-jobs'
46 - github-packer-verify
55 - config-file-provider:
58 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
61 name: lf-infra-jjbini-sandbox
62 # TODO: Consolidate this into jjbini when JJB2.0 is available.
64 - config-file-provider:
66 - file-id: jjbini-sandbox
67 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
69 - lf_packer: &lf_packer_common
70 name: lf-packer-common
71 # Provide configuration common in packer jobs.
73 ######################
74 # Default parameters #
75 ######################
81 github-url: 'https://github.com'
83 submodule-recursive: true
84 packer-cloud-settings: packer-cloud-env
91 project-type: freestyle
93 disabled: '{disable-job}'
96 - lf-infra-properties:
101 - lf-infra-parameters:
105 lftools-version: '{lftools-version}'
106 - lf-packer-parameters:
107 packer-version: '{packer-version}'
111 build-timeout: '{build-timeout}'
112 jenkins-ssh-credential: '{jenkins-ssh-credential}'
118 name: lf-infra-jjb-parameters
122 default: '{jjb-version}'
123 description: Jenkins Job Builder version to download and install.
126 name: lf-packer-parameters
130 default: '{packer-version}'
131 description: Packer version to download and install.
133 - lf_jjb_common: &lf_jjb_common
136 ######################
137 # Default parameters #
138 ######################
143 github-url: 'https://github.com'
146 submodule-recursive: true
148 gerrit_trigger_file_paths:
149 - compare-type: REG_EXP
150 pattern: '.*\.groovy'
151 - compare-type: REG_EXP
153 - compare-type: REG_EXP
155 - compare-type: REG_EXP
157 - compare-type: REG_EXP
159 - compare-type: REG_EXP
160 pattern: 'global-jjb'
161 - compare-type: REG_EXP
162 pattern: 'jjb/global-jjb'
164 # github_included_regions MUST match gerrit_trigger_file_paths
165 github_included_regions:
174 #####################
175 # Job Configuration #
176 #####################
178 project-type: freestyle
180 disabled: '{disable-job}'
183 - lf-infra-properties:
185 build-days-to-keep: 7
188 - lf-infra-parameters:
192 lftools-version: '{lftools-version}'
193 - lf-infra-jjb-parameters:
194 jjb-version: '{jjb-version}'
198 build-timeout: '{build-timeout}'
199 jenkins-ssh-credential: '{jenkins-ssh-credential}'
204 ######################
205 # Gerrit Branch Lock #
206 ######################
209 name: '{project-name}-gerrit-branch-lock-{stream}'
210 id: gerrit-branch-lock
212 ######################
213 # Default parameters #
214 ######################
218 git-url: '$GIT_URL/$GERRIT_PROJECT'
220 gerrit_merge_triggers:
221 - comment-added-contains-event:
222 comment-contains-value: (un)?lock branch$
224 #####################
225 # Job Configuration #
226 #####################
228 project-type: freestyle
230 disabled: '{disable-job}'
233 - lf-infra-properties:
235 build-days-to-keep: 1
238 - lf-infra-parameters:
242 lftools-version: '{lftools-version}'
247 jenkins-ssh-credential: '{jenkins-ssh-credential}'
250 - lf-infra-gerrit-scm:
254 submodule-recursive: false
255 choosing-strategy: default
256 jenkins-ssh-credential: '{jenkins-ssh-credential}'
260 server-name: '{gerrit-server-name}'
261 trigger-on: '{obj:gerrit_merge_triggers}'
263 - project-compare-type: ANT
264 project-pattern: '{project}'
266 - branch-compare-type: ANT
267 branch-pattern: '**/{branch}'
270 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
276 ##########################################
277 # Jenkins Configuration Management Merge #
278 ##########################################
281 name: lf-jenkins-cfg-clouds
285 properties-content: 'jenkins_silos={jenkins-silos}'
286 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
287 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
290 name: lf-jenkins-cfg-global-vars
294 properties-content: 'jenkins_silos={jenkins-silos}'
295 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
296 - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
298 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
299 name: lf-jenkins-cfg-merge
301 ######################
302 # Default parameters #
303 ######################
308 git-url: '$GIT_URL/$GERRIT_PROJECT'
309 github-url: 'https://github.com'
310 jenkins-silos: production sandbox
312 gerrit_merge_triggers:
313 - change-merged-event
314 - comment-added-contains-event:
315 comment-contains-value: remerge$
317 gerrit_trigger_file_paths:
318 - compare-type: REG_EXP
319 pattern: 'jenkins-config\/.*'
321 # github_included_regions MUST match gerrit_trigger_file_paths
322 github_included_regions:
323 - 'jenkins-config\/.*'
325 #####################
326 # Job Configuration #
327 #####################
329 project-type: freestyle
332 disabled: '{disable-job}'
335 - lf-infra-properties:
337 build-days-to-keep: 1
340 - lf-infra-parameters:
344 lftools-version: '{lftools-version}'
349 jenkins-ssh-credential: '{jenkins-ssh-credential}'
353 - lf-jenkins-cfg-global-vars:
354 jenkins-silos: '{jenkins-silos}'
355 - lf-jenkins-cfg-clouds:
356 jenkins-silos: '{jenkins-silos}'
362 name: '{project-name}-jenkins-cfg-merge'
363 id: gerrit-jenkins-cfg-merge
364 <<: *lf_jenkins_cfg_merge
367 - lf-infra-gerrit-scm:
369 refspec: 'refs/heads/{branch}'
371 submodule-recursive: true
372 choosing-strategy: default
373 jenkins-ssh-credential: '{jenkins-ssh-credential}'
376 - timed: '{obj:cron}'
378 server-name: '{gerrit-server-name}'
379 trigger-on: '{obj:gerrit_merge_triggers}'
381 - project-compare-type: ANT
382 project-pattern: '{project}'
384 - branch-compare-type: ANT
385 branch-pattern: '**/{branch}'
386 file-paths: '{obj:gerrit_trigger_file_paths}'
389 name: '{project-name}-jenkins-cfg-merge'
390 id: github-jenkins-cfg-merge
391 <<: *lf_jenkins_cfg_merge
394 - lf-infra-properties:
396 build-days-to-keep: 1
398 url: '{github-url}/{github-org}/{project}'
401 - lf-infra-github-scm:
402 url: '{git-clone-url}{github-org}/{project}'
404 branch: 'refs/heads/{branch}'
405 submodule-recursive: true
406 choosing-strategy: default
407 jenkins-ssh-credential: '{jenkins-ssh-credential}'
410 - timed: '{obj:cron}'
414 - github-pull-request:
415 trigger-phrase: '^remerge$'
416 only-trigger-phrase: true
417 status-context: 'Jenkins CFG Merge'
422 white-list: '{obj:github_pr_whitelist}'
423 admin-list: '{obj:github_pr_admin_list}'
424 included-regions: '{obj:github_included_regions}'
425 white-list-target-branches:
429 ###########################
430 # JENKINS SANDBOX CLEANUP #
431 ###########################
433 - lf_jenkins_sandbox_cleanup: &lf_jenkins_sandbox_cleanup
434 name: lf-jenkins-sandbox-cleanup
436 ######################
437 # Default parameters #
438 ######################
441 # Run every Saturday at 08:00 UTC
445 #####################
446 # Job Configuration #
447 #####################
449 project-type: freestyle
452 disabled: '{disable-job}'
455 - lf-infra-jjb-parameters:
456 jjb-version: '{jjb-version}'
459 - timed: '{obj:cron}'
463 - shell: !include-raw-escape:
464 - ../shell/jjb-install.sh
465 - ../shell/jenkins-sandbox-cleanup.sh
466 - ../shell/jjb-cleanup.sh
469 name: '{project-name}-jenkins-sandbox-cleanup'
470 id: gerrit-jenkins-sandbox-cleanup
472 # yamllint disable-line rule:key-duplicates
473 <<: *lf_jenkins_sandbox_cleanup
476 name: '{project-name}-jenkins-sandbox-cleanup'
477 id: github-jenkins-sandbox-cleanup
479 # yamllint disable-line rule:key-duplicates
480 <<: *lf_jenkins_sandbox_cleanup
487 - lf_jjb_deploy_job: &lf_jjb_deploy_job
488 name: lf-jjb-deploy-job
490 ######################
491 # Default parameters #
492 ######################
496 # jjb-deploy should always clone $PROJECT regardless of what
497 # $GERRIT_PROJECT triggered the job.
498 git-url: '$GIT_URL/$PROJECT'
499 github-url: 'https://github.com'
501 gerrit_jjb_deploy_job_triggers:
502 - comment-added-contains-event:
503 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
505 #####################
506 # Job Configuration #
507 #####################
509 project-type: freestyle
512 disabled: '{disable-job}'
515 - lf-infra-properties:
517 build-days-to-keep: 1
520 - lf-infra-parameters:
524 lftools-version: '{lftools-version}'
529 jenkins-ssh-credential: '{jenkins-ssh-credential}'
533 pip-packages: jenkins-job-builder
534 - lf-infra-jjbini-sandbox
535 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
541 name: '{project-name}-jjb-deploy-job'
542 id: gerrit-jjb-deploy-job
543 <<: *lf_jjb_deploy_job
546 - lf-infra-gerrit-scm:
548 refspec: 'refs/heads/{branch}'
550 submodule-recursive: true
551 choosing-strategy: default
552 jenkins-ssh-credential: '{jenkins-ssh-credential}'
556 server-name: '{gerrit-server-name}'
557 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
559 - project-compare-type: ANT
560 project-pattern: '**'
562 - branch-compare-type: ANT
571 name: '{project-name}-jjb-deploy-job'
572 id: github-jjb-deploy-job
573 <<: *lf_jjb_deploy_job
576 - lf-infra-properties:
578 build-days-to-keep: 1
580 url: '{github-url}/{github-org}/{project}'
583 - lf-infra-github-scm:
584 url: '{git-clone-url}{github-org}/{project}'
585 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
587 submodule-recursive: true
588 choosing-strategy: default
589 jenkins-ssh-credential: '{jenkins-ssh-credential}'
592 - github-pull-request:
593 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
594 only-trigger-phrase: true
595 status-context: 'JJB Deploy Job'
598 white-list-target-branches:
605 - lf_jjb_merge: &lf_jjb_merge
608 ######################
609 # Default parameters #
610 ######################
612 gerrit_merge_triggers:
613 - change-merged-event
614 - comment-added-contains-event:
615 comment-contains-value: remerge$
617 #####################
618 # Job Configuration #
619 #####################
624 - shell: !include-raw-escape:
625 - ../shell/jjb-install.sh
626 - ../shell/jjb-merge-job.sh
627 - ../shell/jjb-cleanup.sh
630 name: '{project-name}-jjb-merge'
633 # yamllint disable-line rule:key-duplicates
636 git-url: '$GIT_URL/$GERRIT_PROJECT'
639 - lf-infra-gerrit-scm:
643 submodule-recursive: '{submodule-recursive}'
644 choosing-strategy: default
645 jenkins-ssh-credential: '{jenkins-ssh-credential}'
649 server-name: '{gerrit-server-name}'
650 trigger-on: '{obj:gerrit_merge_triggers}'
652 - project-compare-type: ANT
653 project-pattern: '{project}'
655 - branch-compare-type: ANT
656 branch-pattern: '**/{branch}'
657 file-paths: '{obj:gerrit_trigger_file_paths}'
660 name: '{project-name}-jjb-merge'
663 # yamllint disable-line rule:key-duplicates
666 #####################
667 # Job Configuration #
668 #####################
671 - lf-infra-properties:
673 build-days-to-keep: 7
675 url: '{github-url}/{github-org}/{project}'
678 - lf-infra-github-scm:
679 url: '{git-clone-url}{github-org}/{project}'
681 branch: 'refs/heads/{branch}'
682 submodule-recursive: '{submodule-recursive}'
683 choosing-strategy: default
684 jenkins-ssh-credential: '{jenkins-ssh-credential}'
690 - github-pull-request:
691 trigger-phrase: '^remerge$'
692 only-trigger-phrase: true
693 status-context: 'JJB Merge'
698 white-list: '{obj:github_pr_whitelist}'
699 admin-list: '{obj:github_pr_admin_list}'
700 included-regions: '{obj:github_included_regions}'
701 white-list-target-branches:
708 - lf_jjb_verify: &lf_jjb_verify
711 ######################
712 # Default parameters #
713 ######################
715 gerrit_verify_triggers:
716 - patchset-created-event:
718 exclude-trivial-rebase: false
719 exclude-no-code-change: false
720 - draft-published-event
721 - comment-added-contains-event:
722 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
724 #####################
725 # Job Configuration #
726 #####################
733 - shell: !include-raw-escape:
734 - ../shell/git-validate-jira-urls.sh
735 - ../shell/jjb-install.sh
736 - ../shell/jjb-verify-job.sh
737 - ../shell/jjb-check-unicode.sh
738 - ../shell/jjb-cleanup.sh
739 - lf-infra-gpg-verify-git-signature
742 name: '{project-name}-jjb-verify'
743 id: gerrit-jjb-verify
745 # yamllint disable-line rule:key-duplicates
748 ######################
749 # Default parameters #
750 ######################
752 git-url: '$GIT_URL/$GERRIT_PROJECT'
754 #####################
755 # Job Configuration #
756 #####################
759 - lf-infra-gerrit-scm:
761 refspec: '$GERRIT_REFSPEC'
762 branch: '$GERRIT_BRANCH'
763 submodule-recursive: '{submodule-recursive}'
764 choosing-strategy: gerrit
765 jenkins-ssh-credential: '{jenkins-ssh-credential}'
769 server-name: '{gerrit-server-name}'
770 trigger-on: '{obj:gerrit_verify_triggers}'
772 - project-compare-type: ANT
773 project-pattern: '{project}'
775 - branch-compare-type: ANT
776 branch-pattern: '**/{branch}'
777 file-paths: '{obj:gerrit_trigger_file_paths}'
780 name: '{project-name}-jjb-verify'
781 id: github-jjb-verify
783 # yamllint disable-line rule:key-duplicates
786 #####################
787 # Job Configuration #
788 #####################
791 - lf-infra-properties:
793 build-days-to-keep: 7
795 url: '{github-url}/{github-org}/{project}'
798 - lf-infra-github-scm:
799 url: '{git-clone-url}{github-org}/{project}'
800 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
802 submodule-recursive: '{submodule-recursive}'
803 choosing-strategy: default
804 jenkins-ssh-credential: '{jenkins-ssh-credential}'
807 - github-pull-request:
808 trigger-phrase: '^(recheck|reverify)$'
809 only-trigger-phrase: false
810 status-context: 'JJB Verify'
813 included-regions: '{obj:github_included_regions}'
814 white-list-target-branches:
817 ############################
818 # JJB Verify Upstream GJJB #
819 ############################
821 - lf_jjb_verify: &lf_jjb_verify_upstream_gjjb
822 name: lf-jjb-verify-upstream-gjjb
824 #####################
825 # Job Configuration #
826 #####################
833 git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
834 git cherry-pick FETCH_HEAD
836 - shell: !include-raw-escape:
837 - ../shell/git-validate-jira-urls.sh
838 - ../shell/jjb-install.sh
839 - ../shell/jjb-verify-job.sh
840 - ../shell/jjb-check-unicode.sh
841 - ../shell/jjb-cleanup.sh
842 - lf-infra-gpg-verify-git-signature
845 name: '{project-name}-jjb-verify-upstream-gjjb'
846 id: gerrit-jjb-verify-upstream-gjjb
848 # yamllint disable-line rule:key-duplicates
849 <<: *lf_jjb_verify_upstream_gjjb
851 ######################
852 # Default parameters #
853 ######################
855 git-url: '$GIT_URL/$PROJECT'
857 #####################
858 # Job Configuration #
859 #####################
862 - lf-infra-gerrit-scm:
866 submodule-recursive: true
867 choosing-strategy: default
868 jenkins-ssh-credential: '{jenkins-ssh-credential}'
872 server-name: 'LinuxFoundation'
874 - patchset-created-event:
876 exclude-trivial-rebase: false
877 exclude-no-code-change: false
878 - draft-published-event
879 - comment-added-contains-event:
880 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
882 - project-compare-type: ANT
883 project-pattern: 'releng/global-jjb'
885 - branch-compare-type: ANT
886 branch-pattern: '**/master'
888 gerrit-build-failed-codereview-value: -1
889 gerrit-build-failed-verified-value: 0
890 gerrit-build-successful-codereview-value: 1
891 gerrit-build-successful-verified-value: 0
897 - lf_license_check: &lf_license_check
898 name: lf-license-check
900 ######################
901 # Default parameters #
902 ######################
905 build-days-to-keep: 7
914 git-url: '$GIT_URL/$PROJECT'
915 github-url: 'https://github.com'
917 license-exclude-paths: ''
918 licenses-allowed: Apache-2.0,EPL-1.0,MIT
919 project-pattern: '**'
923 #####################
924 # Job Configuration #
925 #####################
927 project-type: freestyle
930 disabled: '{disable-job}'
933 - lf-infra-properties:
934 build-days-to-keep: '{build-days-to-keep}'
937 - lf-infra-parameters:
941 lftools-version: '{lftools-version}'
945 build-timeout: '{build-timeout}'
946 jenkins-ssh-credential: '{jenkins-ssh-credential}'
950 file-patterns: '{file-patterns}'
951 spdx-disable: '{spdx-disable}'
952 lhc-version: '{lhc-version}'
953 license-exclude-paths: '{license-exclude-paths}'
954 licenses-allowed: '{licenses-allowed}'
960 name: '{project-name}-license-check'
961 id: gerrit-license-check
962 <<: *lf_license_check
964 git-url: '$GIT_URL/$GERRIT_PROJECT'
967 - lf-infra-gerrit-scm:
969 refspec: '$GERRIT_REFSPEC'
970 branch: '$GERRIT_BRANCH'
971 # Submodules are out of the project's control
972 submodule-recursive: false
973 choosing-strategy: gerrit
974 jenkins-ssh-credential: '{jenkins-ssh-credential}'
978 server-name: '{gerrit-server-name}'
979 # Trigger should not be overridable as we want to always run
981 - patchset-created-event:
982 exclude-drafts: false
983 exclude-trivial-rebase: false
984 exclude-no-code-change: false
985 - draft-published-event
986 - comment-added-contains-event:
987 comment-contains-value: recheck$
989 - project-compare-type: ANT
990 project-pattern: '{project-pattern}'
992 - branch-compare-type: ANT
996 name: '{project-name}-license-check'
997 id: github-license-check
998 <<: *lf_license_check
1001 - lf-infra-properties:
1002 build-days-to-keep: '{build-days-to-keep}'
1004 url: '{github-url}/{github-org}/{project}'
1007 - lf-infra-github-scm:
1008 url: '{git-clone-url}{github-org}/{project}'
1009 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1011 # Submodules are out of the project's control
1012 submodule-recursive: false
1013 choosing-strategy: default
1014 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1017 - github-pull-request:
1018 trigger-phrase: '^recheck$'
1019 only-trigger-phrase: false
1020 status-context: 'License Check'
1023 white-list-target-branches:
1026 ####################
1027 # Info YAML Verify #
1028 ####################
1030 - lf_info_yaml_verify: &lf_info_yaml_verify
1031 name: lf-info-yaml-verify
1033 ######################
1034 # Default parameters #
1035 ######################
1037 gerrit_verify_triggers:
1038 - patchset-created-event:
1039 exclude-drafts: true
1040 exclude-trivial-rebase: false
1041 exclude-no-code-change: false
1042 - draft-published-event
1043 - comment-added-contains-event:
1044 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1046 #####################
1047 # Job Configuration #
1048 #####################
1053 - shell: !include-raw-escape:
1054 - ../shell/git-validate-info-yaml.sh
1055 - ../shell/info-file-validate.sh
1058 name: '{project-name}-info-yaml-verify'
1059 id: gerrit-info-yaml-verify
1061 # yamllint disable-line rule:key-duplicates
1062 <<: *lf_info_yaml_verify
1064 git-url: '$GIT_URL/$GERRIT_PROJECT'
1067 - lf-infra-gerrit-scm:
1068 git-url: '{git-url}'
1069 refspec: '$GERRIT_REFSPEC'
1070 branch: '$GERRIT_BRANCH'
1071 submodule-recursive: '{submodule-recursive}'
1072 choosing-strategy: gerrit
1073 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1077 server-name: '{gerrit-server-name}'
1078 trigger-on: '{obj:gerrit_verify_triggers}'
1080 - project-compare-type: ANT
1081 project-pattern: '{project}'
1083 - branch-compare-type: ANT
1084 branch-pattern: '**/{branch}'
1086 - compare-type: REG_EXP
1087 pattern: 'INFO.yaml'
1090 name: '{project-name}-info-yaml-verify'
1091 id: github-info-yaml-verify
1093 # yamllint disable-line rule:key-duplicates
1094 <<: *lf_info_yaml_verify
1096 github-url: 'https://github.com'
1099 url: '{github-url}/{github-org}/{project}'
1102 - lf-infra-github-scm:
1103 url: '{git-clone-url}{github-org}/{project}'
1104 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1106 submodule-recursive: '{submodule-recursive}'
1107 choosing-strategy: default
1108 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1111 - github-pull-request:
1112 trigger-phrase: '^(recheck|reverify)$'
1113 only-trigger-phrase: false
1114 status-context: 'INFO File Verify'
1117 # included-regions MUST match gerrit file-paths
1118 included-regions: 'INFO.yaml'
1119 white-list-target-branches:
1126 - lf_openstack_cron: &lf_openstack_cron
1127 name: lf-openstack-cron
1129 ######################
1130 # Default parameters #
1131 ######################
1134 build-days-to-keep: 7
1138 git-url: '$GIT_URL/$PROJECT'
1139 github-url: 'https://github.com'
1140 openstack-cloud: vex
1143 #####################
1144 # Job Configuration #
1145 #####################
1147 project-type: freestyle
1148 node: '{build-node}'
1150 disabled: '{disable-job}'
1153 - lf-infra-properties:
1154 build-days-to-keep: '{build-days-to-keep}'
1157 - lf-infra-parameters:
1158 project: '{project}'
1161 lftools-version: '{lftools-version}'
1164 - lf-infra-wrappers:
1165 build-timeout: '{build-timeout}'
1166 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1167 # Listed after to override openstack-infra-wrappers clouds.yaml definition
1168 - config-file-provider:
1170 - file-id: clouds-yaml
1171 target: '$HOME/.config/openstack/clouds.yaml'
1173 target: '$HOME/.npmrc'
1175 target: '$HOME/.config/pip/pip.conf'
1178 - timed: '{obj:cron}'
1182 properties-content: OS_CLOUD={openstack-cloud}
1183 - shell: !include-raw-escape: ../shell/openstack-install.sh
1184 - shell: !include-raw-escape: ../shell/openstack-protect-in-use-images.sh
1190 name: '{project-name}-openstack-cron'
1191 id: gerrit-openstack-cron
1192 <<: *lf_openstack_cron
1195 - lf-infra-gerrit-scm:
1196 git-url: '{git-url}'
1197 refspec: 'refs/heads/{branch}'
1199 submodule-recursive: true
1200 choosing-strategy: default
1201 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1204 name: '{project-name}-openstack-cron'
1205 id: github-openstack-cron
1206 <<: *lf_openstack_cron
1209 - lf-infra-github-scm:
1210 url: '{git-clone-url}{github-org}/{project}'
1212 branch: 'refs/heads/{branch}'
1213 submodule-recursive: true
1214 choosing-strategy: default
1215 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1221 - lf_packer_merge: &lf_packer_merge
1222 name: lf-packer-merge
1224 #####################
1225 # Job Configuration #
1226 #####################
1229 - lf-infra-packer-build:
1230 packer-cloud-settings: '{packer-cloud-settings}'
1231 packer-version: '{packer-version}'
1232 platform: '{platforms}'
1233 template: '{templates}'
1236 name: '{project-name}-packer-merge-{platforms}-{templates}'
1237 id: gerrit-packer-merge
1238 <<: *lf_packer_common
1239 # yamllint disable-line rule:key-duplicates
1240 <<: *lf_packer_merge
1242 ######################
1243 # Default parameters #
1244 ######################
1246 git-url: '$GIT_URL/$GERRIT_PROJECT'
1248 gerrit_merge_triggers:
1249 - change-merged-event
1250 - comment-added-contains-event:
1251 comment-contains-value: remerge$
1253 #####################
1254 # Job Configuration #
1255 #####################
1258 - lf-infra-gerrit-scm:
1259 git-url: '{git-url}'
1260 refspec: '$GERRIT_REFSPEC'
1261 branch: '$GERRIT_BRANCH'
1262 submodule-recursive: '{submodule-recursive}'
1263 choosing-strategy: gerrit
1264 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1267 - timed: '{obj:cron}'
1269 server-name: '{gerrit-server-name}'
1270 trigger-on: '{obj:gerrit_merge_triggers}'
1272 - project-compare-type: ANT
1273 project-pattern: '{project}'
1275 - branch-compare-type: ANT
1276 branch-pattern: '**/{branch}'
1278 - compare-type: REG_EXP
1279 pattern: 'packer\/provision\/.*\.sh'
1280 - compare-type: REG_EXP
1281 pattern: 'packer\/provision\/.*\.bat'
1282 - compare-type: REG_EXP
1283 pattern: 'packer\/provision\/.*\.ps1'
1284 - compare-type: REG_EXP
1285 pattern: 'packer\/provision\/{templates}\.yaml'
1286 - compare-type: REG_EXP
1287 pattern: 'packer\/provision\/local-{templates}\.yaml'
1288 - compare-type: REG_EXP
1289 pattern: 'packer\/templates\/{templates}\.json'
1290 - compare-type: REG_EXP
1291 pattern: 'packer\/vars\/{platforms}\.json'
1294 name: '{project-name}-packer-merge-{platforms}-{templates}'
1295 id: github-packer-merge
1296 <<: *lf_packer_common
1297 # yamllint disable-line rule:key-duplicates
1298 <<: *lf_packer_merge
1300 #####################
1301 # Job Configuration #
1302 #####################
1305 - lf-infra-properties:
1306 project: '{project}'
1307 build-days-to-keep: 7
1309 url: '{github-url}/{github-org}/{project}'
1312 - lf-infra-github-scm:
1313 url: '{git-clone-url}{github-org}/{project}'
1315 branch: 'refs/heads/{branch}'
1316 submodule-recursive: '{submodule-recursive}'
1317 choosing-strategy: default
1318 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1321 - timed: '{obj:cron}'
1326 - github-pull-request:
1327 trigger-phrase: '^remerge$'
1328 only-trigger-phrase: true
1329 status-context: 'Packer {platforms}-{templates} Merge'
1334 white-list: '{obj:github_pr_whitelist}'
1335 admin-list: '{obj:github_pr_admin_list}'
1336 # included-regions MUST match Gerrit Trigger file-paths
1338 - 'packer\/provision\/.*\.sh'
1339 - 'packer\/provision\/.*\.bat'
1340 - 'packer\/provision\/.*\.ps1'
1341 - 'packer\/provision\/{templates}\.yaml'
1342 - 'packer\/provision\/local-{templates}\.yaml'
1343 - 'packer\/templates\/{templates}\.json'
1344 - 'packer\/vars\/{platforms}\.json'
1345 white-list-target-branches:
1352 - lf_packer_verify: &lf_packer_verify
1353 name: lf-packer-verify
1355 ######################
1356 # Default parameters #
1357 ######################
1361 gerrit_verify_triggers:
1362 - patchset-created-event:
1363 exclude-drafts: true
1364 exclude-trivial-rebase: false
1365 exclude-no-code-change: false
1366 - draft-published-event
1367 - comment-added-contains-event:
1368 comment-contains-value: '^Patch Set[ ]+[0-9]+:([ ]+|[\n]+)(recheck|reverify)$'
1370 gerrit_trigger_file_paths:
1371 - compare-type: REG_EXP
1372 pattern: 'packer\/.*'
1374 # github_included_regions MUST match gerrit_trigger_file_paths
1375 github_included_regions:
1378 #####################
1379 # Job Configuration #
1380 #####################
1385 - lf-infra-packer-validate:
1386 packer-cloud-settings: '{packer-cloud-settings}'
1387 packer-version: '{packer-version}'
1390 name: '{project-name}-packer-verify'
1391 id: gerrit-packer-verify
1392 <<: *lf_packer_common
1393 # yamllint disable-line rule:key-duplicates
1394 <<: *lf_packer_verify
1396 ######################
1397 # Default parameters #
1398 ######################
1400 git-url: '$GIT_URL/$GERRIT_PROJECT'
1402 #####################
1403 # Job Configuration #
1404 #####################
1407 - lf-infra-gerrit-scm:
1408 git-url: '{git-url}'
1409 refspec: '$GERRIT_REFSPEC'
1410 branch: '$GERRIT_BRANCH'
1411 submodule-recursive: '{submodule-recursive}'
1412 choosing-strategy: gerrit
1413 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1417 server-name: '{gerrit-server-name}'
1418 trigger-on: '{obj:gerrit_verify_triggers}'
1420 - project-compare-type: ANT
1421 project-pattern: '{project}'
1423 - branch-compare-type: ANT
1424 branch-pattern: '**/{branch}'
1425 file-paths: '{obj:gerrit_trigger_file_paths}'
1428 name: '{project-name}-packer-verify'
1429 id: github-packer-verify
1430 <<: *lf_packer_common
1431 # yamllint disable-line rule:key-duplicates
1432 <<: *lf_packer_verify
1434 #####################
1435 # Job Configuration #
1436 #####################
1439 - lf-infra-properties:
1440 project: '{project}'
1441 build-days-to-keep: 7
1443 url: '{github-url}/{github-org}/{project}'
1446 - lf-infra-github-scm:
1447 url: '{git-clone-url}{github-org}/{project}'
1448 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
1450 submodule-recursive: '{submodule-recursive}'
1451 choosing-strategy: default
1452 jenkins-ssh-credential: '{jenkins-ssh-credential}'
1455 - github-pull-request:
1456 trigger-phrase: '^(recheck|reverify)$'
1457 only-trigger-phrase: false
1458 status-context: 'Packer Verify'
1461 included-regions: '{obj:github_included_regions}'
1462 white-list-target-branches: