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

    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'

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

    triggers:
      - reverse:
          jobs: '{dependencies}'
          result: 'success'
      - 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'