---
- job-template:
    # Job template for python verify jobs
    #
    # The purpose of this job template is to run:
    # 1. tox
    #
    # This job supports subprojects.
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)
    # Optional Variables:
    #     path:      directory containing the project's tox.ini relative to
    #                the workspace. The default is the project root.
    #     pattern:   ant file-path pattern relative to the workspace used to
    #                trigger the job

    name: '{project-name}-{stream}-{subproject}-verify-python'
    path: '$WORKSPACE'

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

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

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

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'
      - shell: |
          #!/bin/bash
          virtualenv $WORKSPACE/venv-tox
          source $WORKSPACE/venv-tox/bin/activate
          pip install --upgrade pip
          pip install --upgrade tox argparse
          pip freeze
          cd $WORKSPACE/{path}
          tox

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

- job-template:
    # Job template for docker daily jobs
    #
    # The purpose of this job template is to run:
    # 1. login into the docker registry
    # 2. docker build
    # 3. docker tag
    # 4. docker push
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-docker-shell-daily'
    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'
          submodule-recursive: '{submodule-recursive}'

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

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - gerrit-trigger-release-manually:
          server: '{server-name}'
          project: '{project}'
          branch: '{branch}'

    builders:
      - provide-maven-settings:
          global-settings-file: 'global-settings'
          settings-file: '{mvn-settings}'

      - docker-login

      - shell: |
          cp $WORKSPACE/docker/* .
          docker -D build -t openecomp/testsuite .
          export REPO="nexus3.onap.org:10003"
          docker tag openecomp/testsuite:latest $REPO/openecomp/testsuite:1.0-STAGING-latest
          docker push $REPO/openecomp/testsuite:1.0-STAGING-latest

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

- job-template:
    # Job template for docker daily jobs for 2 SCMs
    #
    # The purpose of this job template is to run:
    # 1. inject a version properties file
    # 2. login into the docker registry
    # 4. run a specified shell script
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-2scm-docker-shell-daily'
    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'
          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}'

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

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - 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
      - docker-login
      - shell: '{script}'
    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'

- job-template:
    # Job template for docker daily jobs for 3 SCMs
    #
    # The purpose of this job template is to run:
    # 1. inject a version properties file
    # 2. login into the docker registry
    # 4. run a specified shell script
    #
    # Required Variables:
    #     branch:    git branch (eg. stable/lithium or master)

    name: '{project-name}-{stream}-3scm-docker-shell-daily'
    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'
          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}'
      - git-extra-project:
          project: '{extra-project3}'
          refspec: '{extra-refspec3}'
          branch: '{extra-branch3}'
          checkout-dir: '{checkout-dir3}'

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

    triggers:
      # 12 AM UTC
      - timed: 'H 12 * * *'
      - 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
      - docker-login
      - shell: '{script}'
    publishers:
      - infra-shiplogs:
          maven-version: '{maven-version}'