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

- job-template:
    #
    # job template for verifying gerrit changeset by shell script
    #
    # Required Variables:
    #   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
    # 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

    pattern: '**'

    parameters:
      - lf-infra-parameters:
          branch: '{branch}'
          project: '{project}'
          stream: '{stream}'
          lftools-version: '{lftools-version}'

    scm:
      - gerrit-trigger-scm:
          refspec: '$GERRIT_REFSPEC'
          submodule-recursive: '{submodule-recursive}'
          choosing-strategy: 'gerrit'

    triggers:
      - gerrit-trigger-patch-submitted:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'
          files: '{pattern}'

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

    builders:
      - shell: '{script}'

    publishers:
      - lf-infra-publish

- 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:
      - 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'
          submodule-recursive: '{submodule-recursive}'
      - 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:
      - lf-infra-pre-build
      - 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}'



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

- job-template:
    # 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}-two-scm-merge-docker-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: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'
      - 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-merged:
          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}'
      - docker-login
      # 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 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}-two-scm-release-docker-script-manual'

    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: ''
          choosing-strategy: 'default'
          submodule-recursive: '{submodule-recursive}'
      - 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-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - lf-infra-pre-build
      - provide-maven-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}'
          settings-type: cfp
          global-settings: 'global-settings'
          global-settings-type: cfp
      - shell: '{script}'

    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'