---
# 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
    disable-job: false
    disabled: '{disable-job}'

    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:
      - lf-infra-publish

# 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:
      - lf-infra-publish

- 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:
      - lf-infra-publish
