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'
27 - gerrit-packer-verify
31 name: '{project-name}-github-packer-jobs'
37 - github-packer-verify
46 - config-file-provider:
49 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
52 name: lf-infra-jjbini-sandbox
53 # TODO: Consolidate this into jjbini when JJB2.0 is available.
55 - config-file-provider:
57 - file-id: jjbini-sandbox
58 target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
60 - lf_packer_file_paths: &lf_packer_file_paths
61 name: lf-packer-file-paths
64 pattern: 'packer/vars/{platforms}.json'
66 pattern: 'packer/templates/{templates}.json'
68 pattern: 'packer/provision/*.sh'
70 pattern: 'packer/provision/{templates}.yaml'
72 pattern: 'packer/provision/local-{templates}.yaml'
74 pattern: 'packer/provision/lib/**'
76 - lf_packer: &lf_packer_common
77 name: lf-packer-common
78 # Provide configuration common in packer jobs.
80 ######################
81 # Default parameters #
82 ######################
87 submodule-recursive: true
88 packer-cloud-settings: packer-cloud-env
94 project-type: freestyle
98 - lf-infra-properties:
100 build-days-to-keep: 7
103 - lf-infra-parameters:
107 lftools-version: '{lftools-version}'
108 - lf-infra-packer-parameters:
109 packer-version: '{packer-version}'
113 build-timeout: '{build-timeout}'
114 jenkins-ssh-credential: '{jenkins-ssh-credential}'
120 name: lf-infra-jjb-parameters
124 default: '{jjb-version}'
125 description: Jenkins Job Builder version to download and install.
128 name: lf-infra-packer-parameters
132 default: '{packer-version}'
133 description: Packer version to download and install.
135 - lf_jjb_common: &lf_jjb_common
138 ######################
139 # Default parameters #
140 ######################
146 submodule-recursive: true
148 gerrit_trigger_file_paths:
154 pattern: '**/global-jjb'
156 #####################
157 # Job Configuration #
158 #####################
160 project-type: freestyle
164 - lf-infra-properties:
166 build-days-to-keep: 7
169 - lf-infra-parameters:
173 lftools-version: '{lftools-version}'
174 - lf-infra-jjb-parameters:
175 jjb-version: '{jjb-version}'
179 build-timeout: '{build-timeout}'
180 jenkins-ssh-credential: '{jenkins-ssh-credential}'
185 ######################
186 # Gerrit Branch Lock #
187 ######################
190 name: '{project-name}-gerrit-branch-lock-{stream}'
191 id: gerrit-branch-lock
193 ######################
194 # Default parameters #
195 ######################
198 git-url: '$GIT_URL/$GERRIT_PROJECT'
200 gerrit_merge_triggers:
201 - comment-added-contains-event:
202 comment-contains-value: (un)?lock branch$
204 #####################
205 # Job Configuration #
206 #####################
208 project-type: freestyle
212 - lf-infra-properties:
214 build-days-to-keep: 1
217 - lf-infra-parameters:
221 lftools-version: '{lftools-version}'
226 jenkins-ssh-credential: '{jenkins-ssh-credential}'
229 - lf-infra-gerrit-scm:
233 submodule-recursive: false
234 choosing-strategy: default
235 jenkins-ssh-credential: '{jenkins-ssh-credential}'
239 server-name: '{gerrit-server-name}'
240 trigger-on: '{obj:gerrit_merge_triggers}'
242 - project-compare-type: ANT
243 project-pattern: '{project}'
245 - branch-compare-type: ANT
246 branch-pattern: '**/{branch}'
249 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
255 ##########################################
256 # Jenkins Configuration Management Merge #
257 ##########################################
260 name: lf-jenkins-cfg-global-vars
264 properties-content: 'jenkins_silos={jenkins-silos}'
265 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
266 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
268 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
269 name: lf-jenkins-cfg-merge
271 ######################
272 # Default parameters #
273 ######################
277 git-url: '$GIT_URL/$GERRIT_PROJECT'
278 jenkins-silos: production sandbox
280 gerrit_merge_triggers:
281 - change-merged-event
282 - comment-added-contains-event:
283 comment-contains-value: remerge$
285 gerrit_trigger_file_paths:
287 pattern: 'jenkins-config/**'
289 #####################
290 # Job Configuration #
291 #####################
293 project-type: freestyle
298 - lf-infra-properties:
300 build-days-to-keep: 1
303 - lf-infra-parameters:
307 lftools-version: '{lftools-version}'
312 jenkins-ssh-credential: '{jenkins-ssh-credential}'
315 - shell: !include-raw-escape:
316 - ../shell/lftools-install.sh
317 - lf-jenkins-cfg-global-vars:
318 jenkins-silos: '{jenkins-silos}'
324 name: '{project-name}-jenkins-cfg-merge'
325 id: gerrit-jenkins-cfg-merge
326 <<: *lf_jenkins_cfg_merge
329 - lf-infra-gerrit-scm:
331 refspec: 'refs/heads/{branch}'
333 submodule-recursive: true
334 choosing-strategy: default
335 jenkins-ssh-credential: '{jenkins-ssh-credential}'
338 - timed: '{obj:cron}'
340 server-name: '{gerrit-server-name}'
341 trigger-on: '{obj:gerrit_merge_triggers}'
343 - project-compare-type: ANT
344 project-pattern: '{project}'
346 - branch-compare-type: ANT
347 branch-pattern: '**/{branch}'
348 file-paths: '{obj:gerrit_trigger_file_paths}'
351 name: '{project-name}-jenkins-cfg-merge'
352 id: github-jenkins-cfg-merge
353 <<: *lf_jenkins_cfg_merge
357 url: '{git-url}/{github-org}/{project}'
360 - lf-infra-github-scm:
361 url: '{git-clone-url}{github-org}/{project}'
362 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
364 submodule-recursive: true
365 choosing-strategy: default
366 jenkins-ssh-credential: '{jenkins-ssh-credential}'
369 - timed: '{obj:cron}'
373 - lf-infra-github-pr-trigger:
374 trigger-phrase: '^remerge$'
375 only-trigger-phrase: true
376 status-context: 'Jenkins CFG Merge'
379 github-org: '{github-org}'
380 github_pr_whitelist: '{obj:github_pr_whitelist}'
381 github_pr_admin_list: '{obj:github_pr_admin_list}'
388 - lf_jjb_deploy_job: &lf_jjb_deploy_job
389 name: lf-jjb-deploy-job
391 ######################
392 # Default parameters #
393 ######################
396 git-url: '$GIT_URL/$GERRIT_PROJECT'
398 gerrit_jjb_deploy_job_triggers:
399 - comment-added-contains-event:
400 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
402 #####################
403 # Job Configuration #
404 #####################
406 project-type: freestyle
411 - lf-infra-properties:
413 build-days-to-keep: 1
416 - lf-infra-parameters:
420 lftools-version: '{lftools-version}'
425 jenkins-ssh-credential: '{jenkins-ssh-credential}'
429 pip-packages: jenkins-job-builder
430 - lf-infra-jjbini-sandbox
431 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
437 name: '{project-name}-jjb-deploy-job'
438 id: gerrit-jjb-deploy-job
439 <<: *lf_jjb_deploy_job
442 - lf-infra-gerrit-scm:
444 refspec: 'refs/heads/{branch}'
446 submodule-recursive: true
447 choosing-strategy: default
448 jenkins-ssh-credential: '{jenkins-ssh-credential}'
452 server-name: '{gerrit-server-name}'
453 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
455 - project-compare-type: ANT
456 project-pattern: '{project}'
458 - branch-compare-type: ANT
459 branch-pattern: '**/{branch}'
462 name: '{project-name}-jjb-deploy-job'
463 id: github-jjb-deploy-job
464 <<: *lf_jjb_deploy_job
468 url: '{git-url}/{github-org}/{project}'
471 - lf-infra-github-scm:
472 url: '{git-clone-url}{github-org}/{project}'
473 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
475 submodule-recursive: true
476 choosing-strategy: default
477 jenkins-ssh-credential: '{jenkins-ssh-credential}'
480 - lf-infra-github-pr-trigger:
481 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
482 only-trigger-phrase: true
483 status-context: 'JJB Deploy Job'
489 github_pr_admin_list:
496 - lf_jjb_merge: &lf_jjb_merge
499 ######################
500 # Default parameters #
501 ######################
503 gerrit_merge_triggers:
504 - change-merged-event
505 - comment-added-contains-event:
506 comment-contains-value: remerge$
508 #####################
509 # Job Configuration #
510 #####################
514 - shell: !include-raw-escape:
515 - ../shell/jjb-install.sh
516 - ../shell/jjb-merge-job.sh
519 name: '{project-name}-jjb-merge'
522 # yamllint disable-line rule:key-duplicates
525 git-url: '$GIT_URL/$GERRIT_PROJECT'
528 - lf-infra-gerrit-scm:
532 submodule-recursive: '{submodule-recursive}'
533 choosing-strategy: default
534 jenkins-ssh-credential: '{jenkins-ssh-credential}'
538 server-name: '{gerrit-server-name}'
539 trigger-on: '{obj:gerrit_merge_triggers}'
541 - project-compare-type: ANT
542 project-pattern: '{project}'
544 - branch-compare-type: ANT
545 branch-pattern: '**/{branch}'
546 file-paths: '{obj:gerrit_trigger_file_paths}'
549 name: '{project-name}-jjb-merge'
552 # yamllint disable-line rule:key-duplicates
557 url: '{git-url}/{github-org}/{project}'
560 - lf-infra-github-scm:
561 url: '{git-clone-url}{github-org}/{project}'
563 branch: 'refs/heads/{branch}'
564 submodule-recursive: '{submodule-recursive}'
565 choosing-strategy: default
566 jenkins-ssh-credential: '{jenkins-ssh-credential}'
572 - lf-infra-github-pr-trigger:
573 trigger-phrase: '^remerge$'
574 only-trigger-phrase: true
575 status-context: 'JJB Merge'
578 github-org: '{github-org}'
579 github_pr_whitelist: '{obj:github_pr_whitelist}'
580 github_pr_admin_list: '{obj:github_pr_admin_list}'
586 - lf_jjb_verify: &lf_jjb_verify
589 ######################
590 # Default parameters #
591 ######################
593 gerrit_verify_triggers:
594 - patchset-created-event:
596 exclude-trivial-rebase: false
597 exclude-no-code-change: false
598 - draft-published-event
599 - comment-added-contains-event:
600 comment-contains-value: recheck$
602 #####################
603 # Job Configuration #
604 #####################
610 - shell: !include-raw-escape:
611 - ../shell/git-validate-jira-urls.sh
612 - ../shell/jjb-install.sh
613 - ../shell/jjb-verify-job.sh
614 - ../shell/jjb-check-unicode.sh
615 - lf-infra-gpg-verify-git-signature
618 name: '{project-name}-jjb-verify'
619 id: gerrit-jjb-verify
621 # yamllint disable-line rule:key-duplicates
624 git-url: '$GIT_URL/$GERRIT_PROJECT'
627 - lf-infra-gerrit-scm:
629 refspec: '$GERRIT_REFSPEC'
630 branch: '$GERRIT_BRANCH'
631 submodule-recursive: '{submodule-recursive}'
632 choosing-strategy: gerrit
633 jenkins-ssh-credential: '{jenkins-ssh-credential}'
637 server-name: '{gerrit-server-name}'
638 trigger-on: '{obj:gerrit_verify_triggers}'
640 - project-compare-type: ANT
641 project-pattern: '{project}'
643 - branch-compare-type: ANT
644 branch-pattern: '**/{branch}'
645 file-paths: '{obj:gerrit_trigger_file_paths}'
648 name: '{project-name}-jjb-verify'
649 id: github-jjb-verify
651 # yamllint disable-line rule:key-duplicates
656 url: '{git-url}/{github-org}/{project}'
659 - lf-infra-github-scm:
660 url: '{git-clone-url}{github-org}/{project}'
661 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
663 submodule-recursive: '{submodule-recursive}'
664 choosing-strategy: default
665 jenkins-ssh-credential: '{jenkins-ssh-credential}'
668 - lf-infra-github-pr-trigger:
669 trigger-phrase: '^recheck$'
670 only-trigger-phrase: false
671 status-context: 'JJB Verify'
677 github_pr_admin_list:
684 - lf_packer_merge: &lf_packer_merge
685 name: lf-packer-merge
687 ######################
688 # Default parameters #
689 ######################
691 gerrit_merge_triggers:
692 - change-merged-event
693 - comment-added-contains-event:
694 comment-contains-value: remerge$
696 #####################
697 # Job Configuration #
698 #####################
701 - lf-infra-packer-validate:
702 packer-cloud-settings: '{packer-cloud-settings}'
703 packer-version: '{packer-version}'
704 - lf-infra-packer-build:
705 packer-cloud-settings: '{packer-cloud-settings}'
706 packer-version: '{packer-version}'
707 platform: '{platforms}'
708 template: '{templates}'
711 name: '{project-name}-packer-merge-{platforms}-{templates}'
712 id: gerrit-packer-merge
713 <<: *lf_packer_common
714 # yamllint disable-line rule:key-duplicates
717 git-url: '$GIT_URL/$GERRIT_PROJECT'
720 - lf-infra-gerrit-scm:
722 refspec: '$GERRIT_REFSPEC'
723 branch: '$GERRIT_BRANCH'
724 submodule-recursive: '{submodule-recursive}'
725 choosing-strategy: gerrit
726 jenkins-ssh-credential: '{jenkins-ssh-credential}'
729 - timed: '00 10 1 * *'
731 server-name: '{gerrit-server-name}'
732 trigger-on: '{obj:gerrit_merge_triggers}'
734 - project-compare-type: ANT
735 project-pattern: '{project}'
737 - branch-compare-type: ANT
738 branch-pattern: '**/{branch}'
739 <<: *lf_packer_file_paths
742 name: '{project-name}-packer-merge-{platforms}-{templates}'
743 id: github-packer-merge
744 <<: *lf_packer_common
745 # yamllint disable-line rule:key-duplicates
750 url: '{git-url}/{github-org}/{project}'
753 - lf-infra-github-scm:
754 url: '{git-clone-url}{github-org}/{project}'
756 branch: 'refs/heads/{branch}'
757 submodule-recursive: '{submodule-recursive}'
758 choosing-strategy: default
759 jenkins-ssh-credential: '{jenkins-ssh-credential}'
762 - timed: '00 10 1 * *'
766 - lf-infra-github-pr-trigger:
767 trigger-phrase: '^remerge$'
768 only-trigger-phrase: true
769 status-context: 'Packer {platforms}-${templates} Merge'
772 github-org: '{github-org}'
773 github_pr_whitelist: '{obj:github_pr_whitelist}'
774 github_pr_admin_list: '{obj:github_pr_admin_list}'
780 - lf_packer_verify: &lf_packer_verify
781 name: lf-packer-verify
783 ######################
784 # Default parameters #
785 ######################
789 gerrit_verify_triggers:
790 - patchset-created-event:
792 exclude-trivial-rebase: false
793 exclude-no-code-change: false
794 - draft-published-event
795 - comment-added-contains-event:
796 comment-contains-value: recheck$
798 gerrit_trigger_file_paths:
800 pattern: 'packer/vars/**.json'
802 pattern: 'packer/templates/**.json'
804 pattern: 'packer/provision/**.sh'
806 pattern: 'packer/provision/lib/**'
808 #####################
809 # Job Configuration #
810 #####################
815 - lf-infra-packer-validate:
816 packer-cloud-settings: '{packer-cloud-settings}'
817 packer-version: '{packer-version}'
820 name: '{project-name}-packer-verify'
821 id: gerrit-packer-verify
822 <<: *lf_packer_common
823 # yamllint disable-line rule:key-duplicates
824 <<: *lf_packer_verify
826 git-url: '$GIT_URL/$GERRIT_PROJECT'
829 - lf-infra-gerrit-scm:
831 refspec: '$GERRIT_REFSPEC'
832 branch: '$GERRIT_BRANCH'
833 submodule-recursive: '{submodule-recursive}'
834 choosing-strategy: gerrit
835 jenkins-ssh-credential: '{jenkins-ssh-credential}'
839 server-name: '{gerrit-server-name}'
840 trigger-on: '{obj:gerrit_verify_triggers}'
842 - project-compare-type: ANT
843 project-pattern: '{project}'
845 - branch-compare-type: ANT
846 branch-pattern: '**/{branch}'
847 file-paths: '{obj:gerrit_trigger_file_paths}'
850 name: '{project-name}-packer-verify'
851 id: github-packer-verify
852 <<: *lf_packer_common
853 # yamllint disable-line rule:key-duplicates
854 <<: *lf_packer_verify
858 url: '{git-url}/{github-org}/{project}'
861 - lf-infra-github-scm:
862 url: '{git-clone-url}{github-org}/{project}'
863 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
865 submodule-recursive: '{submodule-recursive}'
866 choosing-strategy: default
867 jenkins-ssh-credential: '{jenkins-ssh-credential}'
870 - lf-infra-github-pr-trigger:
871 trigger-phrase: '^recheck$'
872 only-trigger-phrase: false
873 status-context: 'Packer Verify'
879 github_pr_admin_list: