- Create a new GitHub repository named
go-on-jenkins
. - Create a new
Jenkinsfile
in the root directory of the repository as well as a simplemain.go
file. The main function just prints "Hello World!". Initialize the project via Go Modules. - Commit the files and push them to the remote repository.
- Set up a new pipeline job for this repository in Jenkins.
- Install the Jenkins Go plugin.
- Configure the latest Go runtime as global tool.
- Enhance the
Jenkinsfile
based on the following requirements. The Jenkinsfile should use the declarative syntax.- The job can run on all agents.
- The job sets the environment variable
GO111MODULES=on
. - The job uses the Go runtime from the global tool definition.
- The job specifies one build stage named "Build". The build stage executes the shell command
go build
.
Show Solution
Create a new job.
Configure the appropriate SCM.
Install the Go plugin.
Configure a Go runtime as global tool.
The main.go
file could similar to the one below.
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
The final Jenkinsfile
looks similar to the solution below.
pipeline {
agent any
tools {
go 'go-1.12'
}
environment {
GO111MODULE = 'on'
}
stages {
stage('Build') {
steps {
sh 'go build'
}
}
}
}
A build of the job installs the Go runtime and executes the build step.