---
# 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'

    wrappers:
      - ecomp-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: 'mvn33'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - docker-login
      - shell: '{script}'


- 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'

    wrappers:
      - ecomp-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: 'mvn33'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - docker-login
      - shell: '{script}'


- job-template:
    # Job template for daily-release a submission.  triggered on timer, does
    # scm mvn with passed-in goals, then run script
    #
    # Required Variables:
    #   branch:         git branch
    #   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
    concurrent: true
    node: 'ubuntu1604-docker-8c-8g'

    properties:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'

    wrappers:
      - ecomp-infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      # 11 AM UTC
      - timed: 'H 11 * * *'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: 'mvn33'
          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: 'mvn33'
          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}'


- 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    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:
      - ecomp-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: 'mvn33'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - docker-login
      - shell: '{script}'


- 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    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:
      - ecomp-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: 'mvn33'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - docker-login
      - shell: '{script}'


- 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    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:
      - ecomp-infra-wrappers:
          build-timeout: '{build-timeout}'

    triggers:
      - timed: 'H 11 * * *'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - inject:
          properties-file: version.properties
      - maven-target:
          maven-version: 'mvn33'
          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: 'mvn33'
          goals: '{mvn-goals}'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - docker-login
      - shell: '{script}'


- 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:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'

    wrappers:
      - ecomp-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: 'mvn33'
          goals: '--version'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - shell: '{script}'

#    publishers:
#      - ecomp-infra-shiplogs:
#          maven-version: 'mvn33'

- job-template:
    # Job template for 2 scm and script trigger
    #
    # Required Variables:
    #   branch:         git branch
    #   build-node:     what build node to run on
    #   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

    name: '{project-name}-{stream}-two-scm-verify-script'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'

    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:
      - ecomp-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: 'mvn33'
          goals: '--version'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - shell: '{script}'

#    publishers:
#      - ecomp-infra-shiplogs:
#          maven-version: 'mvn33'


- 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'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
                maven-version: 'mvn33'
    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          choosing-strategy: 'gerrit'
      - 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}'

    wrappers:
      - ecomp-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: 'mvn33'
          goals: '--version'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - shell: '{script}'

#    publishers:
#      - ecomp-infra-shiplogs:
#          maven-version: 'mvn33'

# vim: sw=2 ts=2 sts=2 et :

- job-template:
    # Job template for 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'

    project-type: freestyle
    concurrent: true
    node: '{build-node}'

    properties:
      - ecomp-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'

    parameters:
      - ecomp-infra-parameters:
          project: '{project}'
          branch: '{branch}'
          refspec: 'refs/heads/{branch}'
          artifacts: '{archive-artifacts}'
      - maven-exec:
          maven-version: 'mvn33'

    scm:
      - gerrit-trigger-scm:
          refspec: ''
          choosing-strategy: 'default'
      - 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}'

    wrappers:
      - ecomp-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}'
      - docker-login
      # make sure maven gets installed / setup
      - maven-target:
          maven-version: 'mvn33'
          goals: '--version'
          settings: '{mvn-settings}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - shell: '{script}'

#    publishers:
#      - ecomp-infra-shiplogs:
#          maven-version: 'mvn33'