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 'go build'
}
}
stage('Test') {
parallel{
stage('go vet') {
steps {
echo 'Running vetting'
sh 'go vet .'
}
}
stage('test') {
steps {
echo 'Running test'
sh 'go test -v ./...'
}
}
stage('lint') {
environment {
PATH="${env.PATH}:${env.GOPATH}/bin"
}
steps {
sh 'golint ./...'
}
}
}
}
}
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")
}
}
}