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:
151 pattern: '**/global-jjb'
153 #####################
154 # Job Configuration #
155 #####################
157 project-type: freestyle
161 - lf-infra-properties:
163 build-days-to-keep: 7
166 - lf-infra-parameters:
170 lftools-version: '{lftools-version}'
171 - lf-infra-jjb-parameters:
172 jjb-version: '{jjb-version}'
176 build-timeout: '{build-timeout}'
177 jenkins-ssh-credential: '{jenkins-ssh-credential}'
182 ######################
183 # Gerrit Branch Lock #
184 ######################
187 name: '{project-name}-gerrit-branch-lock-{stream}'
188 id: gerrit-branch-lock
190 ######################
191 # Default parameters #
192 ######################
195 git-url: '$GIT_URL/$GERRIT_PROJECT'
197 gerrit_merge_triggers:
198 - comment-added-contains-event:
199 comment-contains-value: (un)?lock branch$
201 #####################
202 # Job Configuration #
203 #####################
205 project-type: freestyle
209 - lf-infra-properties:
211 build-days-to-keep: 1
214 - lf-infra-parameters:
218 lftools-version: '{lftools-version}'
223 jenkins-ssh-credential: '{jenkins-ssh-credential}'
226 - lf-infra-gerrit-scm:
230 submodule-recursive: false
231 choosing-strategy: default
232 jenkins-ssh-credential: '{jenkins-ssh-credential}'
236 server-name: '{gerrit-server-name}'
237 trigger-on: '{obj:gerrit_merge_triggers}'
239 - project-compare-type: ANT
240 project-pattern: '{project}'
242 - branch-compare-type: ANT
243 branch-pattern: '**/{branch}'
246 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
252 ##########################################
253 # Jenkins Configuration Management Merge #
254 ##########################################
257 name: lf-jenkins-cfg-clouds
261 properties-content: 'jenkins_silos={jenkins-silos}'
262 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
263 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
266 name: lf-jenkins-cfg-global-vars
270 properties-content: 'jenkins_silos={jenkins-silos}'
271 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
272 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
274 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
275 name: lf-jenkins-cfg-merge
277 ######################
278 # Default parameters #
279 ######################
283 git-url: '$GIT_URL/$GERRIT_PROJECT'
284 jenkins-silos: production sandbox
286 gerrit_merge_triggers:
287 - change-merged-event
288 - comment-added-contains-event:
289 comment-contains-value: remerge$
291 gerrit_trigger_file_paths:
293 pattern: 'jenkins-config/**'
295 #####################
296 # Job Configuration #
297 #####################
299 project-type: freestyle
304 - lf-infra-properties:
306 build-days-to-keep: 1
309 - lf-infra-parameters:
313 lftools-version: '{lftools-version}'
318 jenkins-ssh-credential: '{jenkins-ssh-credential}'
321 - shell: !include-raw-escape:
322 - ../shell/lftools-install.sh
323 - lf-jenkins-cfg-global-vars:
324 jenkins-silos: '{jenkins-silos}'
325 - lf-jenkins-cfg-clouds:
326 jenkins-silos: '{jenkins-silos}'
332 name: '{project-name}-jenkins-cfg-merge'
333 id: gerrit-jenkins-cfg-merge
334 <<: *lf_jenkins_cfg_merge
337 - lf-infra-gerrit-scm:
339 refspec: 'refs/heads/{branch}'
341 submodule-recursive: true
342 choosing-strategy: default
343 jenkins-ssh-credential: '{jenkins-ssh-credential}'
346 - timed: '{obj:cron}'
348 server-name: '{gerrit-server-name}'
349 trigger-on: '{obj:gerrit_merge_triggers}'
351 - project-compare-type: ANT
352 project-pattern: '{project}'
354 - branch-compare-type: ANT
355 branch-pattern: '**/{branch}'
356 file-paths: '{obj:gerrit_trigger_file_paths}'
359 name: '{project-name}-jenkins-cfg-merge'
360 id: github-jenkins-cfg-merge
361 <<: *lf_jenkins_cfg_merge
365 url: '{git-url}/{github-org}/{project}'
368 - lf-infra-github-scm:
369 url: '{git-clone-url}{github-org}/{project}'
371 branch: 'refs/heads/{branch}'
372 submodule-recursive: true
373 choosing-strategy: default
374 jenkins-ssh-credential: '{jenkins-ssh-credential}'
377 - timed: '{obj:cron}'
381 - lf-infra-github-pr-trigger:
382 trigger-phrase: '^remerge$'
383 only-trigger-phrase: true
384 status-context: 'Jenkins CFG Merge'
387 github-org: '{github-org}'
388 github_pr_whitelist: '{obj:github_pr_whitelist}'
389 github_pr_admin_list: '{obj:github_pr_admin_list}'
396 - lf_jjb_deploy_job: &lf_jjb_deploy_job
397 name: lf-jjb-deploy-job
399 ######################
400 # Default parameters #
401 ######################
404 git-url: '$GIT_URL/$GERRIT_PROJECT'
406 gerrit_jjb_deploy_job_triggers:
407 - comment-added-contains-event:
408 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
410 #####################
411 # Job Configuration #
412 #####################
414 project-type: freestyle
419 - lf-infra-properties:
421 build-days-to-keep: 1
424 - lf-infra-parameters:
428 lftools-version: '{lftools-version}'
433 jenkins-ssh-credential: '{jenkins-ssh-credential}'
437 pip-packages: jenkins-job-builder
438 - lf-infra-jjbini-sandbox
439 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
445 name: '{project-name}-jjb-deploy-job'
446 id: gerrit-jjb-deploy-job
447 <<: *lf_jjb_deploy_job
450 - lf-infra-gerrit-scm:
452 refspec: 'refs/heads/{branch}'
454 submodule-recursive: true
455 choosing-strategy: default
456 jenkins-ssh-credential: '{jenkins-ssh-credential}'
460 server-name: '{gerrit-server-name}'
461 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
463 - project-compare-type: ANT
464 project-pattern: '{project}'
466 - branch-compare-type: ANT
467 branch-pattern: '**/{branch}'
475 name: '{project-name}-jjb-deploy-job'
476 id: github-jjb-deploy-job
477 <<: *lf_jjb_deploy_job
481 url: '{git-url}/{github-org}/{project}'
484 - lf-infra-github-scm:
485 url: '{git-clone-url}{github-org}/{project}'
486 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
488 submodule-recursive: true
489 choosing-strategy: default
490 jenkins-ssh-credential: '{jenkins-ssh-credential}'
493 - lf-infra-github-pr-trigger:
494 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
495 only-trigger-phrase: true
496 status-context: 'JJB Deploy Job'
502 github_pr_admin_list:
509 - lf_jjb_merge: &lf_jjb_merge
512 ######################
513 # Default parameters #
514 ######################
516 gerrit_merge_triggers:
517 - change-merged-event
518 - comment-added-contains-event:
519 comment-contains-value: remerge$
521 #####################
522 # Job Configuration #
523 #####################
527 - shell: !include-raw-escape:
528 - ../shell/jjb-install.sh
529 - ../shell/jjb-merge-job.sh
532 name: '{project-name}-jjb-merge'
535 # yamllint disable-line rule:key-duplicates
538 git-url: '$GIT_URL/$GERRIT_PROJECT'
541 - lf-infra-gerrit-scm:
545 submodule-recursive: '{submodule-recursive}'
546 choosing-strategy: default
547 jenkins-ssh-credential: '{jenkins-ssh-credential}'
551 server-name: '{gerrit-server-name}'
552 trigger-on: '{obj:gerrit_merge_triggers}'
554 - project-compare-type: ANT
555 project-pattern: '{project}'
557 - branch-compare-type: ANT
558 branch-pattern: '**/{branch}'
559 file-paths: '{obj:gerrit_trigger_file_paths}'
562 name: '{project-name}-jjb-merge'
565 # yamllint disable-line rule:key-duplicates
570 url: '{git-url}/{github-org}/{project}'
573 - lf-infra-github-scm:
574 url: '{git-clone-url}{github-org}/{project}'
576 branch: 'refs/heads/{branch}'
577 submodule-recursive: '{submodule-recursive}'
578 choosing-strategy: default
579 jenkins-ssh-credential: '{jenkins-ssh-credential}'
585 - lf-infra-github-pr-trigger:
586 trigger-phrase: '^remerge$'
587 only-trigger-phrase: true
588 status-context: 'JJB Merge'
591 github-org: '{github-org}'
592 github_pr_whitelist: '{obj:github_pr_whitelist}'
593 github_pr_admin_list: '{obj:github_pr_admin_list}'
599 - lf_jjb_verify: &lf_jjb_verify
602 ######################
603 # Default parameters #
604 ######################
606 gerrit_verify_triggers:
607 - patchset-created-event:
609 exclude-trivial-rebase: false
610 exclude-no-code-change: false
611 - draft-published-event
612 - comment-added-contains-event:
613 comment-contains-value: recheck$
615 #####################
616 # Job Configuration #
617 #####################
623 - shell: !include-raw-escape:
624 - ../shell/git-validate-jira-urls.sh
625 - ../shell/jjb-install.sh
626 - ../shell/jjb-verify-job.sh
627 - ../shell/jjb-check-unicode.sh
628 - lf-infra-gpg-verify-git-signature
631 name: '{project-name}-jjb-verify'
632 id: gerrit-jjb-verify
634 # yamllint disable-line rule:key-duplicates
637 git-url: '$GIT_URL/$GERRIT_PROJECT'
640 - lf-infra-gerrit-scm:
642 refspec: '$GERRIT_REFSPEC'
643 branch: '$GERRIT_BRANCH'
644 submodule-recursive: '{submodule-recursive}'
645 choosing-strategy: gerrit
646 jenkins-ssh-credential: '{jenkins-ssh-credential}'
650 server-name: '{gerrit-server-name}'
651 trigger-on: '{obj:gerrit_verify_triggers}'
653 - project-compare-type: ANT
654 project-pattern: '{project}'
656 - branch-compare-type: ANT
657 branch-pattern: '**/{branch}'
658 file-paths: '{obj:gerrit_trigger_file_paths}'
661 name: '{project-name}-jjb-verify'
662 id: github-jjb-verify
664 # yamllint disable-line rule:key-duplicates
669 url: '{git-url}/{github-org}/{project}'
672 - lf-infra-github-scm:
673 url: '{git-clone-url}{github-org}/{project}'
674 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
676 submodule-recursive: '{submodule-recursive}'
677 choosing-strategy: default
678 jenkins-ssh-credential: '{jenkins-ssh-credential}'
681 - lf-infra-github-pr-trigger:
682 trigger-phrase: '^recheck$'
683 only-trigger-phrase: false
684 status-context: 'JJB Verify'
690 github_pr_admin_list:
697 - lf_packer_merge: &lf_packer_merge
698 name: lf-packer-merge
700 ######################
701 # Default parameters #
702 ######################
704 gerrit_merge_triggers:
705 - change-merged-event
706 - comment-added-contains-event:
707 comment-contains-value: remerge$
709 #####################
710 # Job Configuration #
711 #####################
714 - lf-infra-packer-validate:
715 packer-cloud-settings: '{packer-cloud-settings}'
716 packer-version: '{packer-version}'
717 - lf-infra-packer-build:
718 packer-cloud-settings: '{packer-cloud-settings}'
719 packer-version: '{packer-version}'
720 platform: '{platforms}'
721 template: '{templates}'
724 name: '{project-name}-packer-merge-{platforms}-{templates}'
725 id: gerrit-packer-merge
726 <<: *lf_packer_common
727 # yamllint disable-line rule:key-duplicates
730 git-url: '$GIT_URL/$GERRIT_PROJECT'
733 - lf-infra-gerrit-scm:
735 refspec: '$GERRIT_REFSPEC'
736 branch: '$GERRIT_BRANCH'
737 submodule-recursive: '{submodule-recursive}'
738 choosing-strategy: gerrit
739 jenkins-ssh-credential: '{jenkins-ssh-credential}'
742 - timed: '00 10 1 * *'
744 server-name: '{gerrit-server-name}'
745 trigger-on: '{obj:gerrit_merge_triggers}'
747 - project-compare-type: ANT
748 project-pattern: '{project}'
750 - branch-compare-type: ANT
751 branch-pattern: '**/{branch}'
752 <<: *lf_packer_file_paths
755 name: '{project-name}-packer-merge-{platforms}-{templates}'
756 id: github-packer-merge
757 <<: *lf_packer_common
758 # yamllint disable-line rule:key-duplicates
763 url: '{git-url}/{github-org}/{project}'
766 - lf-infra-github-scm:
767 url: '{git-clone-url}{github-org}/{project}'
769 branch: 'refs/heads/{branch}'
770 submodule-recursive: '{submodule-recursive}'
771 choosing-strategy: default
772 jenkins-ssh-credential: '{jenkins-ssh-credential}'
775 - timed: '00 10 1 * *'
779 - lf-infra-github-pr-trigger:
780 trigger-phrase: '^remerge$'
781 only-trigger-phrase: true
782 status-context: 'Packer {platforms}-${templates} Merge'
785 github-org: '{github-org}'
786 github_pr_whitelist: '{obj:github_pr_whitelist}'
787 github_pr_admin_list: '{obj:github_pr_admin_list}'
793 - lf_packer_verify: &lf_packer_verify
794 name: lf-packer-verify
796 ######################
797 # Default parameters #
798 ######################
802 gerrit_verify_triggers:
803 - patchset-created-event:
805 exclude-trivial-rebase: false
806 exclude-no-code-change: false
807 - draft-published-event
808 - comment-added-contains-event:
809 comment-contains-value: recheck$
811 gerrit_trigger_file_paths:
813 pattern: 'packer/vars/**.json'
815 pattern: 'packer/templates/**.json'
817 pattern: 'packer/provision/**.sh'
819 pattern: 'packer/provision/lib/**'
821 #####################
822 # Job Configuration #
823 #####################
828 - lf-infra-packer-validate:
829 packer-cloud-settings: '{packer-cloud-settings}'
830 packer-version: '{packer-version}'
833 name: '{project-name}-packer-verify'
834 id: gerrit-packer-verify
835 <<: *lf_packer_common
836 # yamllint disable-line rule:key-duplicates
837 <<: *lf_packer_verify
839 git-url: '$GIT_URL/$GERRIT_PROJECT'
842 - lf-infra-gerrit-scm:
844 refspec: '$GERRIT_REFSPEC'
845 branch: '$GERRIT_BRANCH'
846 submodule-recursive: '{submodule-recursive}'
847 choosing-strategy: gerrit
848 jenkins-ssh-credential: '{jenkins-ssh-credential}'
852 server-name: '{gerrit-server-name}'
853 trigger-on: '{obj:gerrit_verify_triggers}'
855 - project-compare-type: ANT
856 project-pattern: '{project}'
858 - branch-compare-type: ANT
859 branch-pattern: '**/{branch}'
860 file-paths: '{obj:gerrit_trigger_file_paths}'
863 name: '{project-name}-packer-verify'
864 id: github-packer-verify
865 <<: *lf_packer_common
866 # yamllint disable-line rule:key-duplicates
867 <<: *lf_packer_verify
871 url: '{git-url}/{github-org}/{project}'
874 - lf-infra-github-scm:
875 url: '{git-clone-url}{github-org}/{project}'
876 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
878 submodule-recursive: '{submodule-recursive}'
879 choosing-strategy: default
880 jenkins-ssh-credential: '{jenkins-ssh-credential}'
883 - lf-infra-github-pr-trigger:
884 trigger-phrase: '^recheck$'
885 only-trigger-phrase: false
886 status-context: 'Packer Verify'
892 github_pr_admin_list: