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:
297 pattern: 'jenkins-config/**'
299 #####################
300 # Job Configuration #
301 #####################
303 project-type: freestyle
308 - lf-infra-properties:
310 build-days-to-keep: 1
313 - lf-infra-parameters:
317 lftools-version: '{lftools-version}'
322 jenkins-ssh-credential: '{jenkins-ssh-credential}'
325 - shell: !include-raw-escape:
326 - ../shell/lftools-install.sh
327 - lf-jenkins-cfg-global-vars:
328 jenkins-silos: '{jenkins-silos}'
329 - lf-jenkins-cfg-clouds:
330 jenkins-silos: '{jenkins-silos}'
336 name: '{project-name}-jenkins-cfg-merge'
337 id: gerrit-jenkins-cfg-merge
338 <<: *lf_jenkins_cfg_merge
341 - lf-infra-gerrit-scm:
343 refspec: 'refs/heads/{branch}'
345 submodule-recursive: true
346 choosing-strategy: default
347 jenkins-ssh-credential: '{jenkins-ssh-credential}'
350 - timed: '{obj:cron}'
352 server-name: '{gerrit-server-name}'
353 trigger-on: '{obj:gerrit_merge_triggers}'
355 - project-compare-type: ANT
356 project-pattern: '{project}'
358 - branch-compare-type: ANT
359 branch-pattern: '**/{branch}'
360 file-paths: '{obj:gerrit_trigger_file_paths}'
363 name: '{project-name}-jenkins-cfg-merge'
364 id: github-jenkins-cfg-merge
365 <<: *lf_jenkins_cfg_merge
369 url: '{git-url}/{github-org}/{project}'
372 - lf-infra-github-scm:
373 url: '{git-clone-url}{github-org}/{project}'
375 branch: 'refs/heads/{branch}'
376 submodule-recursive: true
377 choosing-strategy: default
378 jenkins-ssh-credential: '{jenkins-ssh-credential}'
381 - timed: '{obj:cron}'
385 - lf-infra-github-pr-trigger:
386 trigger-phrase: '^remerge$'
387 only-trigger-phrase: true
388 status-context: 'Jenkins CFG Merge'
391 github-org: '{github-org}'
392 github_pr_whitelist: '{obj:github_pr_whitelist}'
393 github_pr_admin_list: '{obj:github_pr_admin_list}'
400 - lf_jjb_deploy_job: &lf_jjb_deploy_job
401 name: lf-jjb-deploy-job
403 ######################
404 # Default parameters #
405 ######################
408 git-url: '$GIT_URL/$GERRIT_PROJECT'
410 gerrit_jjb_deploy_job_triggers:
411 - comment-added-contains-event:
412 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
414 #####################
415 # Job Configuration #
416 #####################
418 project-type: freestyle
423 - lf-infra-properties:
425 build-days-to-keep: 1
428 - lf-infra-parameters:
432 lftools-version: '{lftools-version}'
437 jenkins-ssh-credential: '{jenkins-ssh-credential}'
441 pip-packages: jenkins-job-builder
442 - lf-infra-jjbini-sandbox
443 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
449 name: '{project-name}-jjb-deploy-job'
450 id: gerrit-jjb-deploy-job
451 <<: *lf_jjb_deploy_job
454 - lf-infra-gerrit-scm:
456 refspec: 'refs/heads/{branch}'
458 submodule-recursive: true
459 choosing-strategy: default
460 jenkins-ssh-credential: '{jenkins-ssh-credential}'
464 server-name: '{gerrit-server-name}'
465 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
467 - project-compare-type: ANT
468 project-pattern: '**'
470 - branch-compare-type: ANT
479 name: '{project-name}-jjb-deploy-job'
480 id: github-jjb-deploy-job
481 <<: *lf_jjb_deploy_job
485 url: '{git-url}/{github-org}/{project}'
488 - lf-infra-github-scm:
489 url: '{git-clone-url}{github-org}/{project}'
490 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
492 submodule-recursive: true
493 choosing-strategy: default
494 jenkins-ssh-credential: '{jenkins-ssh-credential}'
497 - lf-infra-github-pr-trigger:
498 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
499 only-trigger-phrase: true
500 status-context: 'JJB Deploy Job'
506 github_pr_admin_list:
513 - lf_jjb_merge: &lf_jjb_merge
516 ######################
517 # Default parameters #
518 ######################
520 gerrit_merge_triggers:
521 - change-merged-event
522 - comment-added-contains-event:
523 comment-contains-value: remerge$
525 #####################
526 # Job Configuration #
527 #####################
531 - shell: !include-raw-escape:
532 - ../shell/jjb-install.sh
533 - ../shell/jjb-merge-job.sh
534 - ../shell/jjb-cleanup.sh
537 name: '{project-name}-jjb-merge'
540 # yamllint disable-line rule:key-duplicates
543 git-url: '$GIT_URL/$GERRIT_PROJECT'
546 - lf-infra-gerrit-scm:
550 submodule-recursive: '{submodule-recursive}'
551 choosing-strategy: default
552 jenkins-ssh-credential: '{jenkins-ssh-credential}'
556 server-name: '{gerrit-server-name}'
557 trigger-on: '{obj:gerrit_merge_triggers}'
559 - project-compare-type: ANT
560 project-pattern: '{project}'
562 - branch-compare-type: ANT
563 branch-pattern: '**/{branch}'
564 file-paths: '{obj:gerrit_trigger_file_paths}'
567 name: '{project-name}-jjb-merge'
570 # yamllint disable-line rule:key-duplicates
575 url: '{git-url}/{github-org}/{project}'
578 - lf-infra-github-scm:
579 url: '{git-clone-url}{github-org}/{project}'
581 branch: 'refs/heads/{branch}'
582 submodule-recursive: '{submodule-recursive}'
583 choosing-strategy: default
584 jenkins-ssh-credential: '{jenkins-ssh-credential}'
590 - lf-infra-github-pr-trigger:
591 trigger-phrase: '^remerge$'
592 only-trigger-phrase: true
593 status-context: 'JJB Merge'
596 github-org: '{github-org}'
597 github_pr_whitelist: '{obj:github_pr_whitelist}'
598 github_pr_admin_list: '{obj:github_pr_admin_list}'
604 - lf_jjb_verify: &lf_jjb_verify
607 ######################
608 # Default parameters #
609 ######################
611 gerrit_verify_triggers:
612 - patchset-created-event:
614 exclude-trivial-rebase: false
615 exclude-no-code-change: false
616 - draft-published-event
617 - comment-added-contains-event:
618 comment-contains-value: recheck$
620 #####################
621 # Job Configuration #
622 #####################
628 - shell: !include-raw-escape:
629 - ../shell/git-validate-jira-urls.sh
630 - ../shell/jjb-install.sh
631 - ../shell/jjb-verify-job.sh
632 - ../shell/jjb-check-unicode.sh
633 - ../shell/jjb-cleanup.sh
634 - lf-infra-gpg-verify-git-signature
637 name: '{project-name}-jjb-verify'
638 id: gerrit-jjb-verify
640 # yamllint disable-line rule:key-duplicates
643 git-url: '$GIT_URL/$GERRIT_PROJECT'
646 - lf-infra-gerrit-scm:
648 refspec: '$GERRIT_REFSPEC'
649 branch: '$GERRIT_BRANCH'
650 submodule-recursive: '{submodule-recursive}'
651 choosing-strategy: gerrit
652 jenkins-ssh-credential: '{jenkins-ssh-credential}'
656 server-name: '{gerrit-server-name}'
657 trigger-on: '{obj:gerrit_verify_triggers}'
659 - project-compare-type: ANT
660 project-pattern: '{project}'
662 - branch-compare-type: ANT
663 branch-pattern: '**/{branch}'
664 file-paths: '{obj:gerrit_trigger_file_paths}'
667 name: '{project-name}-jjb-verify'
668 id: github-jjb-verify
670 # yamllint disable-line rule:key-duplicates
675 url: '{git-url}/{github-org}/{project}'
678 - lf-infra-github-scm:
679 url: '{git-clone-url}{github-org}/{project}'
680 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
682 submodule-recursive: '{submodule-recursive}'
683 choosing-strategy: default
684 jenkins-ssh-credential: '{jenkins-ssh-credential}'
687 - lf-infra-github-pr-trigger:
688 trigger-phrase: '^recheck$'
689 only-trigger-phrase: false
690 status-context: 'JJB Verify'
696 github_pr_admin_list:
703 - lf_packer_merge: &lf_packer_merge
704 name: lf-packer-merge
706 ######################
707 # Default parameters #
708 ######################
710 gerrit_merge_triggers:
711 - change-merged-event
712 - comment-added-contains-event:
713 comment-contains-value: remerge$
715 #####################
716 # Job Configuration #
717 #####################
720 - lf-infra-packer-validate:
721 packer-cloud-settings: '{packer-cloud-settings}'
722 packer-version: '{packer-version}'
723 - lf-infra-packer-build:
724 packer-cloud-settings: '{packer-cloud-settings}'
725 packer-version: '{packer-version}'
726 platform: '{platforms}'
727 template: '{templates}'
730 name: '{project-name}-packer-merge-{platforms}-{templates}'
731 id: gerrit-packer-merge
732 <<: *lf_packer_common
733 # yamllint disable-line rule:key-duplicates
736 git-url: '$GIT_URL/$GERRIT_PROJECT'
739 - lf-infra-gerrit-scm:
741 refspec: '$GERRIT_REFSPEC'
742 branch: '$GERRIT_BRANCH'
743 submodule-recursive: '{submodule-recursive}'
744 choosing-strategy: gerrit
745 jenkins-ssh-credential: '{jenkins-ssh-credential}'
748 - timed: '00 10 1 * *'
750 server-name: '{gerrit-server-name}'
751 trigger-on: '{obj:gerrit_merge_triggers}'
753 - project-compare-type: ANT
754 project-pattern: '{project}'
756 - branch-compare-type: ANT
757 branch-pattern: '**/{branch}'
758 <<: *lf_packer_file_paths
761 name: '{project-name}-packer-merge-{platforms}-{templates}'
762 id: github-packer-merge
763 <<: *lf_packer_common
764 # yamllint disable-line rule:key-duplicates
769 url: '{git-url}/{github-org}/{project}'
772 - lf-infra-github-scm:
773 url: '{git-clone-url}{github-org}/{project}'
775 branch: 'refs/heads/{branch}'
776 submodule-recursive: '{submodule-recursive}'
777 choosing-strategy: default
778 jenkins-ssh-credential: '{jenkins-ssh-credential}'
781 - timed: '00 10 1 * *'
785 - lf-infra-github-pr-trigger:
786 trigger-phrase: '^remerge$'
787 only-trigger-phrase: true
788 status-context: 'Packer {platforms}-${templates} Merge'
791 github-org: '{github-org}'
792 github_pr_whitelist: '{obj:github_pr_whitelist}'
793 github_pr_admin_list: '{obj:github_pr_admin_list}'
799 - lf_packer_verify: &lf_packer_verify
800 name: lf-packer-verify
802 ######################
803 # Default parameters #
804 ######################
808 gerrit_verify_triggers:
809 - patchset-created-event:
811 exclude-trivial-rebase: false
812 exclude-no-code-change: false
813 - draft-published-event
814 - comment-added-contains-event:
815 comment-contains-value: recheck$
817 gerrit_trigger_file_paths:
819 pattern: 'packer/vars/**.json'
821 pattern: 'packer/templates/**.json'
823 pattern: 'packer/provision/**.sh'
825 pattern: 'packer/provision/lib/**'
827 #####################
828 # Job Configuration #
829 #####################
834 - lf-infra-packer-validate:
835 packer-cloud-settings: '{packer-cloud-settings}'
836 packer-version: '{packer-version}'
839 name: '{project-name}-packer-verify'
840 id: gerrit-packer-verify
841 <<: *lf_packer_common
842 # yamllint disable-line rule:key-duplicates
843 <<: *lf_packer_verify
845 git-url: '$GIT_URL/$GERRIT_PROJECT'
848 - lf-infra-gerrit-scm:
850 refspec: '$GERRIT_REFSPEC'
851 branch: '$GERRIT_BRANCH'
852 submodule-recursive: '{submodule-recursive}'
853 choosing-strategy: gerrit
854 jenkins-ssh-credential: '{jenkins-ssh-credential}'
858 server-name: '{gerrit-server-name}'
859 trigger-on: '{obj:gerrit_verify_triggers}'
861 - project-compare-type: ANT
862 project-pattern: '{project}'
864 - branch-compare-type: ANT
865 branch-pattern: '**/{branch}'
866 file-paths: '{obj:gerrit_trigger_file_paths}'
869 name: '{project-name}-packer-verify'
870 id: github-packer-verify
871 <<: *lf_packer_common
872 # yamllint disable-line rule:key-duplicates
873 <<: *lf_packer_verify
877 url: '{git-url}/{github-org}/{project}'
880 - lf-infra-github-scm:
881 url: '{git-clone-url}{github-org}/{project}'
882 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
884 submodule-recursive: '{submodule-recursive}'
885 choosing-strategy: default
886 jenkins-ssh-credential: '{jenkins-ssh-credential}'
889 - lf-infra-github-pr-trigger:
890 trigger-phrase: '^recheck$'
891 only-trigger-phrase: false
892 status-context: 'Packer Verify'
898 github_pr_admin_list: