Write up description and add images
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
# Building Continuous Delivery (CD) Pipelines
|
||||
|
||||
## Writing a basic Jenkinsfile
|
||||
|
||||
1. Create a new GitHub repository named `go-on-jenkins`.
|
||||
2. Create a new `Jenkinsfile` in the root directory of the repository as well as a simple `main.go` file. The main function just prints "Hello World!". Initialize the project via Go Modules.
|
||||
3. Commit the files and push them to the remote repository.
|
||||
4. Set up a new pipeline job for this repository in Jenkins.
|
||||
5. Install the Jenkins Go plugin.
|
||||
6. Configure the latest Go runtime as global tool.
|
||||
7. Enhance the `Jenkinsfile` based on the following requirements. The Jenkinsfile should use the declarative syntax.
|
||||
7.1 The job can run on all agents.
|
||||
7.2 The job sets the environment variable `GO111MODULES=on`.
|
||||
7.3 The job uses the Go runtime from the global tool definition.
|
||||
7.4 The job specifies one build stage named "Build". The build stage executes the shell command `go build`.
|
||||
|
||||
<details><summary>Show Solution</summary>
|
||||
<p>
|
||||
|
||||
Create a new job.
|
||||
|
||||

|
||||
|
||||
Configure the appropriate SCM.
|
||||
|
||||

|
||||
|
||||
Install the Go plugin.
|
||||
|
||||

|
||||
|
||||
Configure a Go runtime as global tool.
|
||||
|
||||

|
||||
|
||||
The final `Jenkinsfile` looks similar to the solution below.
|
||||
|
||||
```groovy
|
||||
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.
|
||||
|
||||

|
||||
|
||||
</p>
|
||||
</details>
|
||||
BIN
images/12-basic-jenkinsfile/declarative-pipeline.png
Normal file
BIN
images/12-basic-jenkinsfile/declarative-pipeline.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 906 KiB |
BIN
images/12-basic-jenkinsfile/go-global-tool.png
Normal file
BIN
images/12-basic-jenkinsfile/go-global-tool.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 706 KiB |
BIN
images/12-basic-jenkinsfile/go-plugin.png
Normal file
BIN
images/12-basic-jenkinsfile/go-plugin.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 864 KiB |
BIN
images/12-basic-jenkinsfile/job-scm.png
Normal file
BIN
images/12-basic-jenkinsfile/job-scm.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 760 KiB |
BIN
images/12-basic-jenkinsfile/new-job.png
Normal file
BIN
images/12-basic-jenkinsfile/new-job.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 902 KiB |
Reference in New Issue
Block a user