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: &lf_packer_common
57 name: lf-packer-common
58 # Provide configuration common in packer jobs.
60 ######################
61 # Default parameters #
62 ######################
67 submodule-recursive: true
68 packer-cloud-settings: packer-cloud-env
75 project-type: freestyle
79 - lf-infra-properties:
84 - lf-infra-parameters:
88 lftools-version: '{lftools-version}'
89 - lf-packer-parameters:
90 packer-version: '{packer-version}'
94 build-timeout: '{build-timeout}'
95 jenkins-ssh-credential: '{jenkins-ssh-credential}'
101 name: lf-infra-jjb-parameters
105 default: '{jjb-version}'
106 description: Jenkins Job Builder version to download and install.
109 name: lf-packer-parameters
113 default: '{packer-version}'
114 description: Packer version to download and install.
116 - lf_jjb_common: &lf_jjb_common
119 ######################
120 # Default parameters #
121 ######################
127 submodule-recursive: true
129 gerrit_trigger_file_paths:
131 pattern: '**/*.groovy'
139 pattern: '**/global-jjb'
141 #####################
142 # Job Configuration #
143 #####################
145 project-type: freestyle
149 - lf-infra-properties:
151 build-days-to-keep: 7
154 - lf-infra-parameters:
158 lftools-version: '{lftools-version}'
159 - lf-infra-jjb-parameters:
160 jjb-version: '{jjb-version}'
164 build-timeout: '{build-timeout}'
165 jenkins-ssh-credential: '{jenkins-ssh-credential}'
170 ######################
171 # Gerrit Branch Lock #
172 ######################
175 name: '{project-name}-gerrit-branch-lock-{stream}'
176 id: gerrit-branch-lock
178 ######################
179 # Default parameters #
180 ######################
183 git-url: '$GIT_URL/$GERRIT_PROJECT'
185 gerrit_merge_triggers:
186 - comment-added-contains-event:
187 comment-contains-value: (un)?lock branch$
189 #####################
190 # Job Configuration #
191 #####################
193 project-type: freestyle
197 - lf-infra-properties:
199 build-days-to-keep: 1
202 - lf-infra-parameters:
206 lftools-version: '{lftools-version}'
211 jenkins-ssh-credential: '{jenkins-ssh-credential}'
214 - lf-infra-gerrit-scm:
218 submodule-recursive: false
219 choosing-strategy: default
220 jenkins-ssh-credential: '{jenkins-ssh-credential}'
224 server-name: '{gerrit-server-name}'
225 trigger-on: '{obj:gerrit_merge_triggers}'
227 - project-compare-type: ANT
228 project-pattern: '{project}'
230 - branch-compare-type: ANT
231 branch-pattern: '**/{branch}'
234 - shell: !include-raw-escape: ../shell/gerrit-branch-lock.sh
240 ##########################################
241 # Jenkins Configuration Management Merge #
242 ##########################################
245 name: lf-jenkins-cfg-clouds
249 properties-content: 'jenkins_silos={jenkins-silos}'
250 - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
251 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
254 name: lf-jenkins-cfg-global-vars
258 properties-content: 'jenkins_silos={jenkins-silos}'
259 - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
260 - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
262 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
263 name: lf-jenkins-cfg-merge
265 ######################
266 # Default parameters #
267 ######################
271 git-url: '$GIT_URL/$GERRIT_PROJECT'
272 jenkins-silos: production sandbox
274 gerrit_merge_triggers:
275 - change-merged-event
276 - comment-added-contains-event:
277 comment-contains-value: remerge$
279 gerrit_trigger_file_paths:
281 pattern: 'jenkins-config/**'
283 #####################
284 # Job Configuration #
285 #####################
287 project-type: freestyle
292 - lf-infra-properties:
294 build-days-to-keep: 1
297 - lf-infra-parameters:
301 lftools-version: '{lftools-version}'
306 jenkins-ssh-credential: '{jenkins-ssh-credential}'
309 - shell: !include-raw-escape:
310 - ../shell/lftools-install.sh
311 - lf-jenkins-cfg-global-vars:
312 jenkins-silos: '{jenkins-silos}'
313 - lf-jenkins-cfg-clouds:
314 jenkins-silos: '{jenkins-silos}'
320 name: '{project-name}-jenkins-cfg-merge'
321 id: gerrit-jenkins-cfg-merge
322 <<: *lf_jenkins_cfg_merge
325 - lf-infra-gerrit-scm:
327 refspec: 'refs/heads/{branch}'
329 submodule-recursive: true
330 choosing-strategy: default
331 jenkins-ssh-credential: '{jenkins-ssh-credential}'
334 - timed: '{obj:cron}'
336 server-name: '{gerrit-server-name}'
337 trigger-on: '{obj:gerrit_merge_triggers}'
339 - project-compare-type: ANT
340 project-pattern: '{project}'
342 - branch-compare-type: ANT
343 branch-pattern: '**/{branch}'
344 file-paths: '{obj:gerrit_trigger_file_paths}'
347 name: '{project-name}-jenkins-cfg-merge'
348 id: github-jenkins-cfg-merge
349 <<: *lf_jenkins_cfg_merge
353 url: '{git-url}/{github-org}/{project}'
356 - lf-infra-github-scm:
357 url: '{git-clone-url}{github-org}/{project}'
359 branch: 'refs/heads/{branch}'
360 submodule-recursive: true
361 choosing-strategy: default
362 jenkins-ssh-credential: '{jenkins-ssh-credential}'
365 - timed: '{obj:cron}'
369 - lf-infra-github-pr-trigger:
370 trigger-phrase: '^remerge$'
371 only-trigger-phrase: true
372 status-context: 'Jenkins CFG Merge'
375 github-org: '{github-org}'
376 github_pr_whitelist: '{obj:github_pr_whitelist}'
377 github_pr_admin_list: '{obj:github_pr_admin_list}'
384 - lf_jjb_deploy_job: &lf_jjb_deploy_job
385 name: lf-jjb-deploy-job
387 ######################
388 # Default parameters #
389 ######################
392 git-url: '$GIT_URL/$GERRIT_PROJECT'
394 gerrit_jjb_deploy_job_triggers:
395 - comment-added-contains-event:
396 comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
398 #####################
399 # Job Configuration #
400 #####################
402 project-type: freestyle
407 - lf-infra-properties:
409 build-days-to-keep: 1
412 - lf-infra-parameters:
416 lftools-version: '{lftools-version}'
421 jenkins-ssh-credential: '{jenkins-ssh-credential}'
425 pip-packages: jenkins-job-builder
426 - lf-infra-jjbini-sandbox
427 - shell: !include-raw-escape: ../shell/jjb-deploy-job.sh
433 name: '{project-name}-jjb-deploy-job'
434 id: gerrit-jjb-deploy-job
435 <<: *lf_jjb_deploy_job
438 - lf-infra-gerrit-scm:
440 refspec: 'refs/heads/{branch}'
442 submodule-recursive: true
443 choosing-strategy: default
444 jenkins-ssh-credential: '{jenkins-ssh-credential}'
448 server-name: '{gerrit-server-name}'
449 trigger-on: '{obj:gerrit_jjb_deploy_job_triggers}'
451 - project-compare-type: ANT
452 project-pattern: '**'
454 - branch-compare-type: ANT
463 name: '{project-name}-jjb-deploy-job'
464 id: github-jjb-deploy-job
465 <<: *lf_jjb_deploy_job
469 url: '{git-url}/{github-org}/{project}'
472 - lf-infra-github-scm:
473 url: '{git-clone-url}{github-org}/{project}'
474 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
476 submodule-recursive: true
477 choosing-strategy: default
478 jenkins-ssh-credential: '{jenkins-ssh-credential}'
481 - lf-infra-github-pr-trigger:
482 trigger-phrase: '^jjb-deploy (?!\*+$).+$'
483 only-trigger-phrase: true
484 status-context: 'JJB Deploy Job'
490 github_pr_admin_list:
497 - lf_jjb_merge: &lf_jjb_merge
500 ######################
501 # Default parameters #
502 ######################
504 gerrit_merge_triggers:
505 - change-merged-event
506 - comment-added-contains-event:
507 comment-contains-value: remerge$
509 #####################
510 # Job Configuration #
511 #####################
515 - shell: !include-raw-escape:
516 - ../shell/jjb-install.sh
517 - ../shell/jjb-merge-job.sh
518 - ../shell/jjb-cleanup.sh
521 name: '{project-name}-jjb-merge'
524 # yamllint disable-line rule:key-duplicates
527 git-url: '$GIT_URL/$GERRIT_PROJECT'
530 - lf-infra-gerrit-scm:
534 submodule-recursive: '{submodule-recursive}'
535 choosing-strategy: default
536 jenkins-ssh-credential: '{jenkins-ssh-credential}'
540 server-name: '{gerrit-server-name}'
541 trigger-on: '{obj:gerrit_merge_triggers}'
543 - project-compare-type: ANT
544 project-pattern: '{project}'
546 - branch-compare-type: ANT
547 branch-pattern: '**/{branch}'
548 file-paths: '{obj:gerrit_trigger_file_paths}'
551 name: '{project-name}-jjb-merge'
554 # yamllint disable-line rule:key-duplicates
559 url: '{git-url}/{github-org}/{project}'
562 - lf-infra-github-scm:
563 url: '{git-clone-url}{github-org}/{project}'
565 branch: 'refs/heads/{branch}'
566 submodule-recursive: '{submodule-recursive}'
567 choosing-strategy: default
568 jenkins-ssh-credential: '{jenkins-ssh-credential}'
574 - lf-infra-github-pr-trigger:
575 trigger-phrase: '^remerge$'
576 only-trigger-phrase: true
577 status-context: 'JJB Merge'
580 github-org: '{github-org}'
581 github_pr_whitelist: '{obj:github_pr_whitelist}'
582 github_pr_admin_list: '{obj:github_pr_admin_list}'
588 - lf_jjb_verify: &lf_jjb_verify
591 ######################
592 # Default parameters #
593 ######################
595 gerrit_verify_triggers:
596 - patchset-created-event:
598 exclude-trivial-rebase: false
599 exclude-no-code-change: false
600 - draft-published-event
601 - comment-added-contains-event:
602 comment-contains-value: recheck$
604 #####################
605 # Job Configuration #
606 #####################
612 - shell: !include-raw-escape:
613 - ../shell/git-validate-jira-urls.sh
614 - ../shell/jjb-install.sh
615 - ../shell/jjb-verify-job.sh
616 - ../shell/jjb-check-unicode.sh
617 - ../shell/jjb-cleanup.sh
618 - lf-infra-gpg-verify-git-signature
621 name: '{project-name}-jjb-verify'
622 id: gerrit-jjb-verify
624 # yamllint disable-line rule:key-duplicates
627 git-url: '$GIT_URL/$GERRIT_PROJECT'
630 - lf-infra-gerrit-scm:
632 refspec: '$GERRIT_REFSPEC'
633 branch: '$GERRIT_BRANCH'
634 submodule-recursive: '{submodule-recursive}'
635 choosing-strategy: gerrit
636 jenkins-ssh-credential: '{jenkins-ssh-credential}'
640 server-name: '{gerrit-server-name}'
641 trigger-on: '{obj:gerrit_verify_triggers}'
643 - project-compare-type: ANT
644 project-pattern: '{project}'
646 - branch-compare-type: ANT
647 branch-pattern: '**/{branch}'
648 file-paths: '{obj:gerrit_trigger_file_paths}'
651 name: '{project-name}-jjb-verify'
652 id: github-jjb-verify
654 # yamllint disable-line rule:key-duplicates
659 url: '{git-url}/{github-org}/{project}'
662 - lf-infra-github-scm:
663 url: '{git-clone-url}{github-org}/{project}'
664 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
666 submodule-recursive: '{submodule-recursive}'
667 choosing-strategy: default
668 jenkins-ssh-credential: '{jenkins-ssh-credential}'
671 - lf-infra-github-pr-trigger:
672 trigger-phrase: '^recheck$'
673 only-trigger-phrase: false
674 status-context: 'JJB Verify'
680 github_pr_admin_list:
687 - lf_packer_merge: &lf_packer_merge
688 name: lf-packer-merge
690 #####################
691 # Job Configuration #
692 #####################
695 - lf-infra-packer-validate:
696 packer-cloud-settings: '{packer-cloud-settings}'
697 packer-version: '{packer-version}'
698 - lf-infra-packer-build:
699 packer-cloud-settings: '{packer-cloud-settings}'
700 packer-version: '{packer-version}'
701 platform: '{platforms}'
702 template: '{templates}'
705 name: '{project-name}-packer-merge-{platforms}-{templates}'
706 id: gerrit-packer-merge
707 <<: *lf_packer_common
708 # yamllint disable-line rule:key-duplicates
711 ######################
712 # Default parameters #
713 ######################
715 git-url: '$GIT_URL/$GERRIT_PROJECT'
717 gerrit_merge_triggers:
718 - change-merged-event
719 - comment-added-contains-event:
720 comment-contains-value: remerge$
722 #####################
723 # Job Configuration #
724 #####################
727 - lf-infra-gerrit-scm:
729 refspec: '$GERRIT_REFSPEC'
730 branch: '$GERRIT_BRANCH'
731 submodule-recursive: '{submodule-recursive}'
732 choosing-strategy: gerrit
733 jenkins-ssh-credential: '{jenkins-ssh-credential}'
736 - timed: '00 10 1 * *'
738 server-name: '{gerrit-server-name}'
739 trigger-on: '{obj:gerrit_merge_triggers}'
741 - project-compare-type: ANT
742 project-pattern: '{project}'
744 - branch-compare-type: ANT
745 branch-pattern: '**/{branch}'
747 - compare-type: REG_EXP
748 pattern: 'packer\/provision\/.*\.sh'
749 - compare-type: REG_EXP
750 pattern: 'packer\/provision\/{templates}\.yaml'
751 - compare-type: REG_EXP
752 pattern: 'packer\/provision\/local-{templates}\.yaml'
753 - compare-type: REG_EXP
754 pattern: 'packer\/templates\/{templates}\.json'
755 - compare-type: REG_EXP
756 pattern: 'packer\/vars\/{platforms}\.json'
759 name: '{project-name}-packer-merge-{platforms}-{templates}'
760 id: github-packer-merge
761 <<: *lf_packer_common
762 # yamllint disable-line rule:key-duplicates
765 #####################
766 # Job Configuration #
767 #####################
771 url: '{git-url}/{github-org}/{project}'
774 - lf-infra-github-scm:
775 url: '{git-clone-url}{github-org}/{project}'
777 branch: 'refs/heads/{branch}'
778 submodule-recursive: '{submodule-recursive}'
779 choosing-strategy: default
780 jenkins-ssh-credential: '{jenkins-ssh-credential}'
783 - timed: '00 10 1 * *'
788 - github-pull-request:
789 trigger-phrase: '^remerge$'
790 only-trigger-phrase: true
791 status-context: 'Packer {platforms}-{templates} Merge'
796 white-list: '{obj:github_pr_whitelist}'
797 admin-list: '{obj:github_pr_admin_list}'
798 # included-regions MUST match Gerrit Trigger file-paths
800 - 'packer\/provision\/.*\.sh'
801 - 'packer\/provision\/{templates}\.yaml'
802 - 'packer\/provision\/local-{templates}\.yaml'
803 - 'packer\/templates\/{templates}\.json'
804 - 'packer\/vars\/{platforms}\.json'
810 - lf_packer_verify: &lf_packer_verify
811 name: lf-packer-verify
813 ######################
814 # Default parameters #
815 ######################
819 gerrit_verify_triggers:
820 - patchset-created-event:
822 exclude-trivial-rebase: false
823 exclude-no-code-change: false
824 - draft-published-event
825 - comment-added-contains-event:
826 comment-contains-value: recheck$
828 gerrit_trigger_file_paths:
829 - compare-type: REG_EXP
830 pattern: 'packer\/.*'
832 # github_included_regions MUST match gerrit_trigger_file_paths
833 github_included_regions:
836 #####################
837 # Job Configuration #
838 #####################
843 - lf-infra-packer-validate:
844 packer-cloud-settings: '{packer-cloud-settings}'
845 packer-version: '{packer-version}'
848 name: '{project-name}-packer-verify'
849 id: gerrit-packer-verify
850 <<: *lf_packer_common
851 # yamllint disable-line rule:key-duplicates
852 <<: *lf_packer_verify
854 ######################
855 # Default parameters #
856 ######################
858 git-url: '$GIT_URL/$GERRIT_PROJECT'
860 #####################
861 # Job Configuration #
862 #####################
865 - lf-infra-gerrit-scm:
867 refspec: '$GERRIT_REFSPEC'
868 branch: '$GERRIT_BRANCH'
869 submodule-recursive: '{submodule-recursive}'
870 choosing-strategy: gerrit
871 jenkins-ssh-credential: '{jenkins-ssh-credential}'
875 server-name: '{gerrit-server-name}'
876 trigger-on: '{obj:gerrit_verify_triggers}'
878 - project-compare-type: ANT
879 project-pattern: '{project}'
881 - branch-compare-type: ANT
882 branch-pattern: '**/{branch}'
883 file-paths: '{obj:gerrit_trigger_file_paths}'
886 name: '{project-name}-packer-verify'
887 id: github-packer-verify
888 <<: *lf_packer_common
889 # yamllint disable-line rule:key-duplicates
890 <<: *lf_packer_verify
892 #####################
893 # Job Configuration #
894 #####################
898 url: '{git-url}/{github-org}/{project}'
901 - lf-infra-github-scm:
902 url: '{git-clone-url}{github-org}/{project}'
903 refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
905 submodule-recursive: '{submodule-recursive}'
906 choosing-strategy: default
907 jenkins-ssh-credential: '{jenkins-ssh-credential}'
910 - github-pull-request:
911 trigger-phrase: '^recheck$'
912 only-trigger-phrase: false
913 status-context: 'Packer Verify'
916 included-regions: '{obj:github_included_regions}'