I’ve been working on a go program where the source resides in a private github repo, which means I can’t use a build system like TravisCI to build it, so I have to use a private Jenkins instance I’m running.
Getting this to work required some Internet spelunking, so I’m sharing the steps I had to take to get it working here.
First I had to use Advanced Project Options and set Use Custom Workspace to
jobs/project/workspace/src/github.com/pmenglund/project, as it will want to pull down the repo again to
GOPATH and since this repo is private, it can’t be done from the script without sticking the credentials there too (and I don’t want to pull it down twice either).
In my Build section, my shell script looks like this:
export GOPATH=/var/lib/jenkins/jobs/project/workspace export PATH=$GOPATH/bin:$PATH # go get github.com/jstemmer/go-junit-report go get go test -v ./... | go-junit-report > report.xml
The commented out line is only used once to pull down go-junit-report which I use to with
go test to be able to output a JUnit report which I use to display the test count on the project page in Jenkins. This is also why I set
PATH, so I don’t have to use an absolute path to find
Finally I use Publish JUnit test result report and set Test report XMLs to
report.xml so it grabs the test results.