---
# verification jobs for 'abstract-olt' repo

- project:
    name: abstract-olt
    project: '{name}'

    jobs:
      - 'verify-abstract-olt-jobs':
          branch-regexp: '{supported-branches-regexp}'

- job-group:
    name: 'verify-abstract-olt-jobs'
    jobs:
      - 'verify-licensed'
      - 'abstract-olt-tests':
          dependency-jobs: 'verify_abstract-olt_licensed'

- job-template:
    id: 'abstract-olt-tests'
    name: 'verify_{project}_tests'

    description: |
      Created by {id} job-template from ci-management/jjb/verify/abstract-olt.yaml

    triggers:
      - cord-infra-gerrit-trigger-patchset:
          gerrit-server-name: '{gerrit-server-name}'
          project-regexp: '^{project}$'
          branch-regexp: '{branch-regexp}'
          dependency-jobs: '{dependency-jobs}'
          file-include-regexp: '{all-files-regexp}'

    properties:
      - cord-infra-properties:
          build-days-to-keep: '{build-days-to-keep}'
          artifact-num-to-keep: '{artifact-num-to-keep}'

    wrappers:
      - lf-infra-wrappers:
          build-timeout: 20
          jenkins-ssh-credential: '{jenkins-ssh-credential}'

    scm:
      - cord-infra-gerrit-scm:
          git-url: '$GIT_URL/$GERRIT_PROJECT'
          refspec: '$GERRIT_REFSPEC'
          branch: '$GERRIT_BRANCH'
          submodule-recursive: 'false'
          choosing-strategy: 'gerrit'
          jenkins-ssh-credential: '{jenkins-ssh-credential}'
          basedir: '{project}'

    node: 'ubuntu18.04-basebuild-1c-2g'
    project-type: freestyle
    concurrent: true

    builders:
      - shell: |
          #!/usr/bin/env bash
          set -eux -o pipefail

          export GOPATH=~/go
          export PATH=$PATH:/usr/lib/go-1.12/bin:/usr/local/go/bin:~/go/bin

          # move code the proper location
          mkdir -p $GOPATH/src/gerrit.opencord.org
          mv abstract-olt $GOPATH/src/gerrit.opencord.org/abstract-olt

          # get prereqs
          go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
          go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swagger
          go get -v github.com/golang/protobuf/protoc-gen-go

          pushd $GOPATH/src/gerrit.opencord.org/abstract-olt

          make test

          go test -v ./...  2>&1 | go-junit-report > $WORKSPACE/junit-report.xml

          go test -coverprofile=coverage.txt -covermode=count ./...
          gocover-cobertura < coverage.txt > $WORKSPACE/coverage.xml

          popd


    publishers:
      - junit:
          results: "junit-report.xml"
      - cobertura:
          report-file: "coverage.xml"
          targets:
            - files:
                healthy: 80
                unhealthy: 0
                failing: 0
            - method:
                healthy: 50
                unhealthy: 0
                failing: 0
