---
- job-template:
    # Job template for python verify jobs
    #
    # The purpose of this job template is to run tox for projects using this
    # template.
    #
    # 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'

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

    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

- job-template:
    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'
      - 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: |
          cp $WORKSPACE/docker/* .
          docker -D build -t openecomp/testsuite .
          export REPO="nexus3.onap.org:10003"
          for tag in $tags
          do
              docker tag openecomp/testsuite:latest $REPO/openecomp/testsuite:$tag
              docker push $REPO/openecomp/testsuite:$tag
          done
