Support running unit tests from a Makefile
- Use name-extension to allow multiple invocation of make-unit
job-template
- unit-test-keep-going to allow a single test failure to not prevent
other tests from being run
- When DEST_GOPATH is set, handle go/GOPATH related issues
- Enable lint and test targets on voltha-go repo
Change-Id: I3dbb710aa1924e91c5ab49980144fa38c379edc8
diff --git a/jjb/verify/voltha-go.yaml b/jjb/verify/voltha-go.yaml
index ad03382..2da0fd8 100644
--- a/jjb/verify/voltha-go.yaml
+++ b/jjb/verify/voltha-go.yaml
@@ -13,103 +13,13 @@
name: 'verify-voltha-go-jobs'
jobs:
- 'verify-licensed'
-# - 'verify-sonarqube':
-# dependency-jobs: 'verify_voltha-go_licensed'
-# - 'voltha-go-tests':
-# dependency-jobs: 'verify_voltha-go_sonarqube'
-
-# disabled until codebase is ready to pass tests
-- job-template:
- id: 'voltha-go-tests'
- name: 'verify_{project}_tests'
-
- description: |
- Created by {id} job-template from ci-management/jjb/verify/voltha-go.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: 'ubuntu16.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.10/bin:/usr/local/go/bin:~/go/bin
-
- # move code the proper location
- mkdir -p $GOPATH/src/github.com/opencord
- mkdir -p $GOPATH/src/protos
- cp voltha-go/protos/*.proto $GOPATH/src/protos/
- cp voltha-go/protos/scripts/* $GOPATH/src/protos/
- mv voltha-go $GOPATH/src/github.com/opencord/voltha-go
-
- # get prereqs
- go get -v github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
- go get -v github.com/golang/protobuf/protoc-gen-go
- go get -v github.com/stretchr/testify
-
- # build protobufs
- sh $GOPATH/src/protos/build_protos.sh $GOPATH/src/protos
-
- # get prereqs
- pushd $GOPATH/src/github.com/opencord/voltha-go/rw_core
- go get -v -d ./...
-
- rm -rf $GOPATH/src/go.etcd.io/etcd/vendor/golang.org/x/net/trace
-
- # build
- go build -v -o $GOPATH/src/rw_core
-
- # tests
- 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
+ - 'make-unit-test':
+ dest-gopath: "github.com/opencord"
+ name-extension: "-lint"
+ unit-test-targets: 'lint'
+ unit-test-keep-going: 'true'
+ - 'make-unit-test':
+ dest-gopath: "github.com/opencord"
+ name-extension: "-tests"
+ unit-test-targets: 'test'
+ unit-test-keep-going: 'true'