3 name: '{project-name}-ci-jobs'
6 - gerrit-jenkins-cfg-merge
7 - gerrit-jjb-deploy-job
12 name: '{project-name}-github-ci-jobs'
15 - github-jenkins-cfg-merge
16 - github-jjb-deploy-job
21 name: '{project-name}-packer-jobs'
25 - gerrit-packer-verify
29 name: '{project-name}-github-packer-jobs'
33 - github-packer-verify
42 - config-file-provider:
45 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
48 name: lf-infra-jjbini-sandbox
49 # TODO: Consolidate this into jjbini when JJB2.0 is available.
51 - config-file-provider:
53 - file-id: jjbini-sandbox
54 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
56 - lf_packer_file_paths: &lf_packer_file_paths
57 name: lf-packer-file-paths
60 pattern: 'packer/vars/{platforms}.json'
62 pattern: 'packer/templates/{templates}.json'
64 pattern: 'packer/provision/*.sh'
66 pattern: 'packer/provision/{templates}.yaml'
68 pattern: 'packer/provision/local-{templates}.yaml'
70 pattern: 'packer/provision/lib/**'
72 - lf_packer: &lf_packer_common
73 name: lf-packer-common
74 # Provide configuration common in packer jobs.
76 ######################
77 # Default parameters #
78 ######################
83 submodule-recursive: true
84 packer-cloud-settings: packer-cloud-env
91 project-type: freestyle
95 - lf-infra-properties:
100 - lf-infra-parameters:
104 lftools-version: '{lftools-version}'
105 - lf-packer-parameters:
106 packer-version: '{packer-version}'
110 build-timeout: '{build-timeout}'
111 jenkins-ssh-credential: '{jenkins-ssh-credential}'
117 name: lf-infra-jjb-parameters
121 default: '{jjb-version}'
122 description: Jenkins Job Builder version to download and install.
125 name: lf-packer-parameters
129 default: '{packer-version}'
130 description: Packer version to download and install.
132 - lf_jjb_common: &lf_jjb_common
135 ######################
136 # Default parameters #
137 ######################
143 submodule-recursive: true
145 gerrit_trigger_file_paths:
147 pattern: '**/*.groovy'
155 pattern: '**/global-jjb'
157 #####################
158 # Job Configuration #
159 #####################
161 project-type: freestyle
165 - lf-infra-properties:
167 build-days-to-keep: 7
170 - lf-infra-parameters:
174 lftools-version: '{lftools-version}'
175 - lf-infra-jjb-parameters:
176 jjb-version: '{jjb-version}'
180 build-timeout: '{build-timeout}'
181 jenkins-ssh-credential: '{jenkins-ssh-credential}'
186 ######################
187 # Gerrit Branch Lock #
188 ######################
191 name: '{project-name}-gerrit-branch-lock-{stream}'
192 id: gerrit-branch-lock
194 ######################
195 # Default parameters #
196 ######################
199 git-url: '$GIT_URL/$GERRIT_PROJECT'
201 gerrit_merge_triggers:
202 - comment-added-contains-event:
203 comment-contains-value: (un)?lock branch$
205 #####################
206 # Job Configuration #
207 #####################
209 project-type: freestyle
213 - lf-infra-properties:
215 build-days-to-keep: 1
218 - lf-infra-parameters:
222 lftools-version: '{lftools-version}'
227 jenkins-ssh-credential: '{jenkins-ssh-credential}'
230 - lf-infra-gerrit-scm:
234 submodule-recursive: false
235 choosing-strategy: default
236 jenkins-ssh-credential: '{jenkins-ssh-credential}'
240 server-name: '{gerrit-server-name}'
241 trigger-on: '{obj:gerrit_merge_triggers}'
243 - project-compare-type: ANT
244 project-pattern: '{project}'
246 - branch-compare-type: ANT
247 branch-pattern: '**/{branch}'
250 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
256 ##########################################
257 # Jenkins Configuration Management Merge #
258 ##########################################
261 name: lf-jenkins-cfg-clouds
265 properties-content: 'jenkins_silos={jenkins-silos}'
266 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
267 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
270 name: lf-jenkins-cfg-global-vars
274 properties-content: 'jenkins_silos={jenkins-silos}'
275 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
276 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
278 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
279 name: lf-jenkins-cfg-merge
281 ######################
282 # Default parameters #
283 ######################
287 git-url: '$GIT_URL/$GERRIT_PROJECT'
288 jenkins-silos: production sandbox
290 gerrit_merge_triggers:
291 - change-merged-event
292 - comment-added-contains-event:
293 comment-contains-value: remerge$
295 gerrit_trigger_file_paths:
296 - compare-type: REG_EXP
297 pattern: 'jenkins-config\/.*'
299 # github_included_regions MUST match gerrit_trigger_file_paths
300 github_included_regions:
301 - 'jenkins-config\/.*'
303 #####################
304 # Job Configuration #
305 #####################
307 project-type: freestyle
312 - lf-infra-properties:
314 build-days-to-keep: 1
317 - lf-infra-parameters:
321 lftools-version: '{lftools-version}'
326 jenkins-ssh-credential: '{jenkins-ssh-credential}'
329 - shell: !include-raw-escape:
330 - ../shell/lftools-install.sh
331 - lf-jenkins-cfg-global-vars:
332 jenkins-silos: '{jenkins-silos}'
333 - lf-jenkins-cfg-clouds:
334 jenkins-silos: '{jenkins-silos}'
340 name: '{project-name}-jenkins-cfg-merge'
341 id: gerrit-jenkins-cfg-merge
342 <<: *lf_jenkins_cfg_merge
345 - lf-infra-gerrit-scm:
347 refspec: 'refs/heads/{branch}'
349 submodule-recursive: true
350 choosing-strategy: default
351 jenkins-ssh-credential: '{jenkins-ssh-credential}'
354 - timed: '{obj:cron}'
356 server-name: '{gerrit-server-name}'
357 trigger-on: '{obj:gerrit_merge_triggers}'
359 - project-compare-type: ANT
360 project-pattern: '{project}'
362 - branch-compare-type: ANT
363 branch-pattern: '**/{branch}'
364 file-paths: '{obj:gerrit_trigger_file_paths}'
367 name: '{project-name}-jenkins-cfg-merge'
368 id: github-jenkins-cfg-merge
369 <<: *lf_jenkins_cfg_merge
373 url: '{git-url}/{github-org}/{project}'
376 - lf-infra-github-scm:
377 url: '{git-clone-url}{github-org}/{project}'
379 branch: 'refs/heads/{branch}'
380 submodule-recursive: true
381 choosing-strategy: default
382 jenkins-ssh-credential: '{jenkins-ssh-credential}'
385 - timed: '{obj:cron}'
389 - github-pull-request:
390 trigger-phrase: '^remerge$'
391 only-trigger-phrase: true
392 status-context: 'Jenkins CFG Merge'
397 white-list: '{obj:github_pr_whitelist}'
398 admin-list: '{obj:github_pr_admin_list}'
399 included-regions: '{obj:github_included_regions}'
405 - lf_jjb_deploy_job: &lf_jjb_deploy_job
406 name: lf-jjb-deploy-job
408 ######################
409 # Default parameters #
410 ######################
413 git-url: '$GIT_URL/$GERRIT_PROJECT'
415 gerrit_jjb_deploy_job_triggers:
416 - comment-added-contains-event:
417 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
419 #####################
420 # Job Configuration #
421 #####################
423 project-type: freestyle
428 - lf-infra-properties:
430 build-days-to-keep: 1
433 - lf-infra-parameters:
437 lftools-version: '{lftools-version}'
442 jenkins-ssh-credential: '{jenkins-ssh-credential}'
446 pip-packages: jenkins-job-builder
447 - lf-infra-jjbini-sandbox
448 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
454 name: '{project-name}-jjb-deploy-job'
455 id: gerrit-jjb-deploy-job
456 <<: *lf_jjb_deploy_job
459 - lf-infra-gerrit-scm:
461 refspec: 'refs/heads/{branch}'
463 submodule-recursive: true
464 choosing-strategy: default
465 jenkins-ssh-credential: '{jenkins-ssh-credential}'
469 server-name: '{gerrit-server-name}'
470 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
472 - project-compare-type: ANT
473 project-pattern: '**'
475 - branch-compare-type: ANT
484 name: '{project-name}-jjb-deploy-job'
485 id: github-jjb-deploy-job
486 <<: *lf_jjb_deploy_job
490 url: '{git-url}/{github-org}/{project}'
493 - lf-infra-github-scm:
494 url: '{git-clone-url}{github-org}/{project}'
495 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
497 submodule-recursive: true
498 choosing-strategy: default
499 jenkins-ssh-credential: '{jenkins-ssh-credential}'
502 - lf-infra-github-pr-trigger:
503 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
504 only-trigger-phrase: true
505 status-context: 'JJB Deploy Job'
511 github_pr_admin_list:
518 - lf_jjb_merge: &lf_jjb_merge
521 ######################
522 # Default parameters #
523 ######################
525 gerrit_merge_triggers:
526 - change-merged-event
527 - comment-added-contains-event:
528 comment-contains-value: remerge$
530 #####################
531 # Job Configuration #
532 #####################
536 - shell: !include-raw-escape:
537 - ../shell/jjb-install.sh
538 - ../shell/jjb-merge-job.sh
539 - ../shell/jjb-cleanup.sh
542 name: '{project-name}-jjb-merge'
545 # yamllint disable-line rule:key-duplicates
548 git-url: '$GIT_URL/$GERRIT_PROJECT'
551 - lf-infra-gerrit-scm:
555 submodule-recursive: '{submodule-recursive}'
556 choosing-strategy: default
557 jenkins-ssh-credential: '{jenkins-ssh-credential}'
561 server-name: '{gerrit-server-name}'
562 trigger-on: '{obj:gerrit_merge_triggers}'
564 - project-compare-type: ANT
565 project-pattern: '{project}'
567 - branch-compare-type: ANT
568 branch-pattern: '**/{branch}'
569 file-paths: '{obj:gerrit_trigger_file_paths}'
572 name: '{project-name}-jjb-merge'
575 # yamllint disable-line rule:key-duplicates
580 url: '{git-url}/{github-org}/{project}'
583 - lf-infra-github-scm:
584 url: '{git-clone-url}{github-org}/{project}'
586 branch: 'refs/heads/{branch}'
587 submodule-recursive: '{submodule-recursive}'
588 choosing-strategy: default
589 jenkins-ssh-credential: '{jenkins-ssh-credential}'
595 - lf-infra-github-pr-trigger:
596 trigger-phrase: '^remerge$'
597 only-trigger-phrase: true
598 status-context: 'JJB Merge'
601 github-org: '{github-org}'
602 github_pr_whitelist: '{obj:github_pr_whitelist}'
603 github_pr_admin_list: '{obj:github_pr_admin_list}'
609 - lf_jjb_verify: &lf_jjb_verify
612 ######################
613 # Default parameters #
614 ######################
616 gerrit_verify_triggers:
617 - patchset-created-event:
619 exclude-trivial-rebase: false
620 exclude-no-code-change: false
621 - draft-published-event
622 - comment-added-contains-event:
623 comment-contains-value: recheck$
625 #####################
626 # Job Configuration #
627 #####################
633 - shell: !include-raw-escape:
634 - ../shell/git-validate-jira-urls.sh
635 - ../shell/jjb-install.sh
636 - ../shell/jjb-verify-job.sh
637 - ../shell/jjb-check-unicode.sh
638 - ../shell/jjb-cleanup.sh
639 - lf-infra-gpg-verify-git-signature
642 name: '{project-name}-jjb-verify'
643 id: gerrit-jjb-verify
645 # yamllint disable-line rule:key-duplicates
648 git-url: '$GIT_URL/$GERRIT_PROJECT'
651 - lf-infra-gerrit-scm:
653 refspec: '$GERRIT_REFSPEC'
654 branch: '$GERRIT_BRANCH'
655 submodule-recursive: '{submodule-recursive}'
656 choosing-strategy: gerrit
657 jenkins-ssh-credential: '{jenkins-ssh-credential}'
661 server-name: '{gerrit-server-name}'
662 trigger-on: '{obj:gerrit_verify_triggers}'
664 - project-compare-type: ANT
665 project-pattern: '{project}'
667 - branch-compare-type: ANT
668 branch-pattern: '**/{branch}'
669 file-paths: '{obj:gerrit_trigger_file_paths}'
672 name: '{project-name}-jjb-verify'
673 id: github-jjb-verify
675 # yamllint disable-line rule:key-duplicates
680 url: '{git-url}/{github-org}/{project}'
683 - lf-infra-github-scm:
684 url: '{git-clone-url}{github-org}/{project}'
685 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
687 submodule-recursive: '{submodule-recursive}'
688 choosing-strategy: default
689 jenkins-ssh-credential: '{jenkins-ssh-credential}'
692 - lf-infra-github-pr-trigger:
693 trigger-phrase: '^recheck$'
694 only-trigger-phrase: false
695 status-context: 'JJB Verify'
701 github_pr_admin_list:
708 - lf_packer_merge: &lf_packer_merge
709 name: lf-packer-merge
711 ######################
712 # Default parameters #
713 ######################
715 gerrit_merge_triggers:
716 - change-merged-event
717 - comment-added-contains-event:
718 comment-contains-value: remerge$
720 #####################
721 # Job Configuration #
722 #####################
725 - lf-infra-packer-validate:
726 packer-cloud-settings: '{packer-cloud-settings}'
727 packer-version: '{packer-version}'
728 - lf-infra-packer-build:
729 packer-cloud-settings: '{packer-cloud-settings}'
730 packer-version: '{packer-version}'
731 platform: '{platforms}'
732 template: '{templates}'
735 name: '{project-name}-packer-merge-{platforms}-{templates}'
736 id: gerrit-packer-merge
737 <<: *lf_packer_common
738 # yamllint disable-line rule:key-duplicates
741 git-url: '$GIT_URL/$GERRIT_PROJECT'
744 - lf-infra-gerrit-scm:
746 refspec: '$GERRIT_REFSPEC'
747 branch: '$GERRIT_BRANCH'
748 submodule-recursive: '{submodule-recursive}'
749 choosing-strategy: gerrit
750 jenkins-ssh-credential: '{jenkins-ssh-credential}'
753 - timed: '00 10 1 * *'
755 server-name: '{gerrit-server-name}'
756 trigger-on: '{obj:gerrit_merge_triggers}'
758 - project-compare-type: ANT
759 project-pattern: '{project}'
761 - branch-compare-type: ANT
762 branch-pattern: '**/{branch}'
763 <<: *lf_packer_file_paths
766 name: '{project-name}-packer-merge-{platforms}-{templates}'
767 id: github-packer-merge
768 <<: *lf_packer_common
769 # yamllint disable-line rule:key-duplicates
774 url: '{git-url}/{github-org}/{project}'
777 - lf-infra-github-scm:
778 url: '{git-clone-url}{github-org}/{project}'
780 branch: 'refs/heads/{branch}'
781 submodule-recursive: '{submodule-recursive}'
782 choosing-strategy: default
783 jenkins-ssh-credential: '{jenkins-ssh-credential}'
786 - timed: '00 10 1 * *'
790 - lf-infra-github-pr-trigger:
791 trigger-phrase: '^remerge$'
792 only-trigger-phrase: true
793 status-context: 'Packer {platforms}-${templates} Merge'
796 github-org: '{github-org}'
797 github_pr_whitelist: '{obj:github_pr_whitelist}'
798 github_pr_admin_list: '{obj:github_pr_admin_list}'
804 - lf_packer_verify: &lf_packer_verify
805 name: lf-packer-verify
807 ######################
808 # Default parameters #
809 ######################
813 gerrit_verify_triggers:
814 - patchset-created-event:
816 exclude-trivial-rebase: false
817 exclude-no-code-change: false
818 - draft-published-event
819 - comment-added-contains-event:
820 comment-contains-value: recheck$
822 gerrit_trigger_file_paths:
824 pattern: 'packer/vars/**.json'
826 pattern: 'packer/templates/**.json'
828 pattern: 'packer/provision/**.sh'
830 pattern: 'packer/provision/lib/**'
832 #####################
833 # Job Configuration #
834 #####################
839 - lf-infra-packer-validate:
840 packer-cloud-settings: '{packer-cloud-settings}'
841 packer-version: '{packer-version}'
844 name: '{project-name}-packer-verify'
845 id: gerrit-packer-verify
846 <<: *lf_packer_common
847 # yamllint disable-line rule:key-duplicates
848 <<: *lf_packer_verify
850 git-url: '$GIT_URL/$GERRIT_PROJECT'
853 - lf-infra-gerrit-scm:
855 refspec: '$GERRIT_REFSPEC'
856 branch: '$GERRIT_BRANCH'
857 submodule-recursive: '{submodule-recursive}'
858 choosing-strategy: gerrit
859 jenkins-ssh-credential: '{jenkins-ssh-credential}'
863 server-name: '{gerrit-server-name}'
864 trigger-on: '{obj:gerrit_verify_triggers}'
866 - project-compare-type: ANT
867 project-pattern: '{project}'
869 - branch-compare-type: ANT
870 branch-pattern: '**/{branch}'
871 file-paths: '{obj:gerrit_trigger_file_paths}'
874 name: '{project-name}-packer-verify'
875 id: github-packer-verify
876 <<: *lf_packer_common
877 # yamllint disable-line rule:key-duplicates
878 <<: *lf_packer_verify
882 url: '{git-url}/{github-org}/{project}'
885 - lf-infra-github-scm:
886 url: '{git-clone-url}{github-org}/{project}'
887 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
889 submodule-recursive: '{submodule-recursive}'
890 choosing-strategy: default
891 jenkins-ssh-credential: '{jenkins-ssh-credential}'
894 - lf-infra-github-pr-trigger:
895 trigger-phrase: '^recheck$'
896 only-trigger-phrase: false
897 status-context: 'Packer Verify'
903 github_pr_admin_list: