[CPS] Jobs for newdelhi branch
[ci-management.git] / jjb / global-templates-script.yaml
index 6e19c81..31db6d5 100644 (file)
 ---
-# vim: sw=2 ts=2 sts=2 et :
-
-
 - job-template:
-    # Job template for verifying a submission.  triggered on
-    # gerrit-trigger-patch-submitted, does scm, mvn with passed in goals,
-    # then run script
     #
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   mvn-settings:   settings file for this specific job
-    #   mvn-goals:      space separated list of maven build goals (e.g.
-    #                   clean, install etc, --version for noop)
-    name: '{project-name}-{stream}-verify-scm-mvn-script'
-
-    project-type: freestyle
-    concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for merging a submission.  triggered on
-    # gerrit-trigger-patch-merged, does scm, mvn with passed-in goals, then
-    # run script
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   mvn-settings:   settings file for this specific job
-    #   mvn-goals:      space separated list of maven build goals (--version
-    #                   for noop, clean deploy for deploy [snapshot])
-    name: '{project-name}-{stream}-merge-scm-mvn-script'
-
-    project-type: freestyle
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-merged:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for daily-release a submission.  triggered on timer, does
-    # scm mvn with passed-in goals, then run script
+    # job template for verifying gerrit changeset by shell script
     #
     # Required Variables:
-    #   branch:         git branch
+    #   project-name:   name of project
+    #   area:           area of project covered with this verification job
+    #   project:        name of scm repository to work on
+    #   stream:         name of stream used (set the same as branch if you're not sure)
+    #   branch:         git branch to work on
     #   script:         build script to execute
-    #   mvn-goals-versioning: space separated list of maven build goals
-    #      (--version for no op,
-    #      or versions:set versions:update-child-modules versions:commit)
-    #   mvn-goals: space separated list of maven build goals (--version for
-    #      noop, or clean deploy)
-    name: '{project-name}-{stream}-daily-release-scm-mvn-script'
-
-    project-type: freestyle
+    # Optional Variables:
+    #   pattern:          trigger job only if modification covered file in pattern
+    #   build-node:     label(flavor) of jenkins slave
+    name: "{project-name}-{stream}-{area}-verify-shell"
+    node: "{build-node}"
+    type: freestyle
     concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
+    disable-job: false
+    disabled: "{disable-job}"
 
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+    pattern: "**"
 
     parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
+      - lf-infra-parameters:
+          branch: "{branch}"
+          project: "{project}"
+          stream: "{stream}"
+          lftools-version: "{lftools-version}"
 
     scm:
       - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      # 11 AM UTC
-      - timed: 'H 11 * * *'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - inject:
-          properties-file: version.properties
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals-versioning}'
-          properties:
-            - 'newVersion=${{release_version}}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          properties:
-            - '{maven-deploy-properties}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for daily-release a submission.  triggered on timer, does
-    # scm mvn with passed-in goals, then run script.
-    # Version changed using include-update-pom-versions.sh script
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   mvn-goals: space separated list of maven build goals (--version for
-    #      noop, or clean deploy)
-    name: '{project-name}-{stream}-daily-release-version2-scm-mvn-script'
-
-    project-type: freestyle
-    concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      # 11 AM UTC
-      - timed: 'H 11 * * *'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-
-      - inject:
-          properties-file: version.properties
-
-      - shell: !include-raw-escape: include-update-pom-versions.sh
-
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          properties:
-            - '{maven-deploy-properties}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for verifying a submission.  triggered on
-    # gerrit-trigger-patch-submitted,
-    # does scm 2 repos, mvn with passed-in goals, then run script
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   extra-project:  extra gerrit project to checkout
-    #   extra-refspec:  refspec for the extra project
-    #   extra-branch:   branch to checkout for the extra project
-    #   checkout-dir:   directory to checkout the extra project to
-    #                     DO NOT SET THIS TO anything that translates to
-    #                     $WORKSPACE as it will destroy the initial
-    #                     project checkout
-    #   mvn-goals:      space separated list of maven build goals (e.g.
-    #                   clean, install etc,  --version for noop)
-
-    name: '{project-name}-{stream}-verify-2scm-mvn-script'
-
-    project-type: freestyle
-    concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-      - git-extra-project:
-          project: '{extra-project}'
-          refspec: '{extra-refspec}'
-          branch: '{extra-branch}'
-          checkout-dir: '{checkout-dir}'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
+          refspec: "$GERRIT_REFSPEC"
+          submodule-recursive: "{submodule-recursive}"
+          choosing-strategy: "gerrit"
 
     triggers:
       - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for merged submission.  triggered on
-    # gerrit-trigger-patch-merged,does scm of 2 repos, mvn with passed in
-    # goals, then run script
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   extra-project:  extra gerrit project to checkout
-    #   extra-refspec:  refspec for the extra project
-    #   extra-branch:   branch to checkout for the extra project
-    #   checkout-dir:   directory to checkout the extra project to
-    #                     DO NOT SET THIS TO anything that translates to
-    #                     $WORKSPACE as it will destroy the initial
-    #                     project checkout
-    #   mvn-goals:      space separated list of maven build goals (--version
-    #                   for noop, clean deploy for mvn project)
-
-    name: '{project-name}-{stream}-merge-2scm-mvn-script'
-
-    project-type: freestyle
-    concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-      - git-extra-project:
-          project: '{extra-project}'
-          refspec: '{extra-refspec}'
-          branch: '{extra-branch}'
-          checkout-dir: '{checkout-dir}'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "{pattern}"
 
     wrappers:
       - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-merged:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
+          build-timeout: "{build-timeout}"
 
     builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
+      - shell: "{script}"
 
     publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for merged submission.  triggered on
-    # gerrit-trigger-patch-merged, does scm x2, mvn with passed-in goals,
-    # then run script
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   script:         build script to execute
-    #   extra-project:  extra gerrit project to checkout
-    #   extra-refspec:  refspec for the extra project
-    #   extra-branch:   branch to checkout for the extra project
-    #   checkout-dir:   directory to checkout the extra project to
-    #                     DO NOT SET THIS TO anything that translates to
-    #                     $WORKSPACE as it will destroy the initial
-    #                     project checkout
-    #   mvn-goals:      space separated list of maven build goals (--version
-    #                   for noop, clean deploy for mvn project)
-    #   mvn-goals-versioning:      space separated list of maven build goals
-    #                   (--version for no op, clean deploy for mvn project)
-
-    name: '{project-name}-{stream}-daily-release-2scm-mvn-script'
-
-    project-type: freestyle
-    node: 'ubuntu1604-docker-8c-8g'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-      - git-extra-project:
-          project: '{extra-project}'
-          refspec: '{extra-refspec}'
-          branch: '{extra-branch}'
-          checkout-dir: '{checkout-dir}'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - timed: 'H 11 * * *'
-      - gerrit-trigger-release-manually:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - inject:
-          properties-file: version.properties
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals-versioning}'
-          properties:
-            - 'newVersion=${{release_version}}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '{mvn-goals}'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - docker-login
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # Job template for basic scm and script trigger
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   build-node:     what build node to run on
-    #   script:         build script to execute
-
-    name: '{project-name}-{stream}-verify-script'
-
-    project-type: freestyle
-    concurrent: true
-    node: '{build-node}'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      # make sure maven gets installed / setup
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '--version'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
+      - lf-infra-publish
 
 - job-template:
     # Job template for 2 scm and script trigger
     #                     $WORKSPACE as it will destroy the initial
     #                     project checkout
 
-    name: '{project-name}-{stream}-two-scm-verify-script'
+    name: "{project-name}-{stream}-two-scm-verify-script"
 
     project-type: freestyle
     concurrent: true
-    node: '{build-node}'
+    node: "{build-node}"
 
     properties:
       - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
+          project: "{project}"
+          branch: "{branch}"
+          refspec: "refs/heads/{branch}"
+          artifacts: "{archive-artifacts}"
       - maven-exec:
-          maven-version: '{maven-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-      - git-extra-project:
-          project: '{extra-project}'
-          refspec: '{extra-refspec}'
-          branch: '{extra-branch}'
-          checkout-dir: '{checkout-dir}'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      # make sure maven gets installed / setup
-      - maven-target:
-          maven-version: '{maven-version}'
-          goals: '--version'
-          settings: '{mvn-settings}'
-          settings-type: cfp
-          global-settings: 'global-settings'
-          global-settings-type: cfp
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-
-- job-template:
-    # Job template for 3 scm and script trigger
-    #
-    # Required Variables:
-    #   branch:         git branch
-    #   build-node:     what build node to run on
-    #   script:         build script to execute
-    #   extra-project1:  extra gerrit project to checkout
-    #   extra-refspec1:  refspec for the extra project
-    #   extra-branch1:   branch to checkout for the extra project
-    #   checkout-dir1:   directory to checkout the extra project to
-    #                     DO NOT SET THIS TO anything that translates to
-    #                     $WORKSPACE as it will destroy the initial
-    #                     project checkout
-    #   extra-project2:  extra gerrit project to checkout
-    #   extra-refspec2:  refspec for the extra project
-    #   extra-branch2:   branch to checkout for the extra project
-    #   checkout-dir2:   directory to checkout the extra project to
-    #                     DO NOT SET THIS TO anything that translates to
-    #                     $WORKSPACE as it will destroy the initial
-    #                     project checkout
-    name: '{project-name}-{stream}-three-scm-verify-script'
+          maven-version: "{maven-version}"
 
-    project-type: freestyle
-    concurrent: true
-    node: '{build-node}'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - maven-exec:
-          maven-version: '{maven-version}'
     scm:
       - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
+          refspec: "$GERRIT_REFSPEC"
+          choosing-strategy: "gerrit"
+          submodule-recursive: "{submodule-recursive}"
       - git-extra-project:
-          project: '{extra-project1}'
-          refspec: '{extra-refspec1}'
-          branch: '{extra-branch1}'
-          checkout-dir: '{checkout-dir1}'
-      - git-extra-project:
-          project: '{extra-project2}'
-          refspec: '{extra-refspec2}'
-          branch: '{extra-branch2}'
-          checkout-dir: '{checkout-dir2}'
+          project: "{extra-project}"
+          refspec: "{extra-refspec}"
+          branch: "{extra-branch}"
+          checkout-dir: "{checkout-dir}"
 
     wrappers:
       - infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: "{build-timeout}"
 
     triggers:
       - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "**"
 
     builders:
+      - lf-infra-pre-build
       - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
+          global-settings-file: "global-settings"
+          settings-file: "{mvn-settings}"
       # make sure maven gets installed / setup
       - maven-target:
-          maven-version: '{maven-version}'
-          goals: '--version'
-          settings: '{mvn-settings}'
+          maven-version: "{maven-version}"
+          goals: "--version"
+          settings: "{mvn-settings}"
           settings-type: cfp
-          global-settings: 'global-settings'
+          global-settings: "global-settings"
           global-settings-type: cfp
-      - shell: '{script}'
+      - shell: "{script}"
 
     publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-# vim: sw=2 ts=2 sts=2 et :
+      - lf-infra-publish
 
 - job-template:
-    # Job template for scm and script trigger - for docker merge
+    # Job template for two scm and script trigger - for docker merge
     #
     # Required Variables:
     #   branch:         git branch
     #   build-node:     what build node to run on
     #   script:         build script to execute
 
-    name: '{project-name}-{stream}-merge-docker-script'
+    name: "{project-name}-{stream}-two-scm-merge-docker-script"
 
     project-type: freestyle
     concurrent: true
-    node: '{build-node}'
+    node: "{build-node}"
 
     properties:
       - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
+          project: "{project}"
+          branch: "{branch}"
+          refspec: "refs/heads/{branch}"
+          artifacts: "{archive-artifacts}"
       - maven-exec:
-          maven-version: '{maven-version}'
+          maven-version: "{maven-version}"
 
     scm:
       - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
+          refspec: ""
+          choosing-strategy: "default"
+          submodule-recursive: "{submodule-recursive}"
       - git-extra-project:
-          project: '{extra-project1}'
-          refspec: '{extra-refspec1}'
-          branch: '{extra-branch1}'
-          checkout-dir: '{checkout-dir1}'
-      - git-extra-project:
-          project: '{extra-project2}'
-          refspec: '{extra-refspec2}'
-          branch: '{extra-branch2}'
-          checkout-dir: '{checkout-dir2}'
+          project: "{extra-project}"
+          refspec: "{extra-refspec}"
+          branch: "{extra-branch}"
+          checkout-dir: "{checkout-dir}"
 
     wrappers:
       - infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: "{build-timeout}"
 
     triggers:
       - gerrit-trigger-patch-merged:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
+          files: "**"
 
     builders:
+      - lf-infra-pre-build
       - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
+          global-settings-file: "global-settings"
+          settings-file: "{mvn-settings}"
       - docker-login
       # make sure maven gets installed / setup
       - maven-target:
-          maven-version: '{maven-version}'
-          goals: '--version'
-          settings: '{mvn-settings}'
+          maven-version: "{maven-version}"
+          goals: "--version"
+          settings: "{mvn-settings}"
           settings-type: cfp
-          global-settings: 'global-settings'
+          global-settings: "global-settings"
           global-settings-type: cfp
-      - shell: '{script}'
+      - shell: "{script}"
 
     publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
+      - lf-infra-publish
 
 - job-template:
-    # Job template for scm and script trigger - for docker daily release
+    # Job template for two scm and script trigger - for docker daily release
     #
     # Required Variables:
     #   branch:         git branch
     #   build-node:     what build node to run on
     #   script:         build script to execute
 
-    name: '{project-name}-{stream}-release-docker-script-manual'
+    name: "{project-name}-{stream}-two-scm-release-docker-script-manual"
 
     project-type: freestyle
     concurrent: true
-    node: '{build-node}'
+    node: "{build-node}"
 
     properties:
       - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+          build-days-to-keep: "{build-days-to-keep}"
 
     parameters:
       - infra-parameters:
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
+          project: "{project}"
+          branch: "{branch}"
+          refspec: "refs/heads/{branch}"
+          artifacts: "{archive-artifacts}"
       - maven-exec:
-          maven-version: '{maven-version}'
+          maven-version: "{maven-version}"
 
     scm:
       - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-      - git-extra-project:
-          project: '{extra-project1}'
-          refspec: '{extra-refspec1}'
-          branch: '{extra-branch1}'
-          checkout-dir: '{checkout-dir1}'
+          refspec: ""
+          choosing-strategy: "default"
+          submodule-recursive: "{submodule-recursive}"
       - git-extra-project:
-          project: '{extra-project2}'
-          refspec: '{extra-refspec2}'
-          branch: '{extra-branch2}'
-          checkout-dir: '{checkout-dir2}'
+          project: "{extra-project}"
+          refspec: "{extra-refspec}"
+          branch: "{extra-branch}"
+          checkout-dir: "{checkout-dir}"
 
     wrappers:
       - infra-wrappers:
-          build-timeout: '{build-timeout}'
+          build-timeout: "{build-timeout}"
 
     triggers:
       - gerrit-trigger-release-manually:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
+          server: "{server-name}"
+          project: "{project}"
+          branch: "{branch}"
 
     builders:
+      - lf-infra-pre-build
       - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
+          global-settings-file: "global-settings"
+          settings-file: "{mvn-settings}"
       - docker-login
       # make sure maven gets installed / setup
       - maven-target:
-          maven-version: '{maven-version}'
-          goals: '--version'
-          settings: '{mvn-settings}'
+          maven-version: "{maven-version}"
+          goals: "--version"
+          settings: "{mvn-settings}"
           settings-type: cfp
-          global-settings: 'global-settings'
+          global-settings: "global-settings"
           global-settings-type: cfp
-      - shell: '{script}'
-
-    publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
-
-- job-template:
-    # 1. PULL the desired image
-    # 2. TAG it to the desired release name
-    # 3. PUSH the newly tagged image on release repo
-
-    name: '{project-name}-docker-image-blessing'
-
-    project-type: freestyle
-    concurrent: true
-    node: 'ubuntu1604-docker-8c-8g'
-
-    parameters:
-      - string:
-          name: X
-          description: "x VERSION of the STAGING image to bless into this RELEASE VERSION
-            Example : 1"
-      - string:
-          name: Y
-          description: "y VERSION of the STAGING image to bless into this RELEASE VERSION
-            Example : 2"
-      - string:
-          name: Z
-          description: "z VERSION of the RELEASE VERSION
-            Example : 3"
-      - string:
-          name: PROJECT
-          default: '{project}'
-
-    properties:
-      - infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    wrappers:
-      - infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    builders:
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: '{mvn-settings}'
-      - docker-login
-      - shell: !include-raw: include-docker-blessing.sh
+      - shell: "{script}"
 
     publishers:
-      - infra-shiplogs:
-          maven-version: '{maven-version}'
+      - lf-infra-publish