pipeline { agent any tools { go 'go-1.15.6' } environment { GO115MODULE = 'on' GOPATH = "${JENKINS_HOME}/jobs/${JOB_NAME}/builds/${BUILD_ID}" } stages { stage('Pre Test') { steps { echo 'Installing dependencies' sh 'go version' sh 'go get -u golang.org/x/lint/golint' } } stage('Compile') { steps { sh 'go build' } } stage('Test') { parallel{ stage('golint') { steps { withEnv(["PATH+GO=${GOPATH}/bin"]) { echo 'Running linting' sh 'golint .' } } } stage('go vet') { steps { echo 'Running vetting' sh 'go vet .' } } stage('test') { steps { echo 'Running test' sh 'go test -v ./...' } } } } } post { always { emailext body: "${currentBuild.currentResult}: Job ${env.JOB_NAME} build ${env.BUILD_NUMBER}\n More info at: ${env.BUILD_URL}", recipientProviders: [[$class: 'DevelopersRecipientProvider'], [$class: 'RequesterRecipientProvider']], to: "${params.RECIPIENTS}", subject: "Jenkins Build ${currentBuild.currentResult}: Job ${env.JOB_NAME}" } } }