pipeline { agent any tools { go 'go-1.15.6' } environment { GO115MODULE = 'on' CGO_ENABLED = 0 GOPATH = '/tmp/gopath' } stages { stage('Pre Test') { steps { echo 'Installing dependencies' sh 'go version' sh 'go get -u golang.org/x/lint/golint' } } stage('Compile') { steps { sh './do.sh build' } } stage('Test') { parallel{ stage('go vet') { steps { echo 'Running vetting' sh './do.sh _vet' } } stage('test') { environment { PATH="${env.PATH}:${env.GOPATH}/bin" } steps { echo 'Running test' sh './do.sh _test' sh "go get github.com/tebeka/go2xunit" sh "go2xunit < tests.out -output tests.xml" junit "tests.xml" // convert coverage sh "go get github.com/t-yuki/gocover-cobertura" sh "gocover-cobertura < coverage.out > coverage.xml" cobertura coberturaReportFile: 'coverage.xml' } } stage('lint') { environment { PATH="${env.PATH}:${env.GOPATH}/bin" } steps { sh './do.sh _lint' } } } } } post { always { mail (bcc: '', body: "Project: ${env.JOB_NAME}
Build Number: ${env.BUILD_NUMBER}
Build URL: ${env.BUILD_URL}", cc: '', charset: 'UTF-8', from: 'jenkins@jenkins.deepak.science', mimeType: 'text/html', replyTo: 'dmallubhotla+jenkins@gmail.com', subject: "${env.JOB_NAME} #${env.BUILD_NUMBER}: Build ${currentBuild.currentResult}", to: "dmallubhotla+ci@gmail.com") } } }