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