Write up description and add images

This commit is contained in:
Benjamin Muschko
2019-07-18 16:57:15 -06:00
parent 8bf300fb55
commit 24df3a1343
6 changed files with 62 additions and 0 deletions

View File

@@ -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.
![New Job](./images/12-basic-jenkinsfile/new-job.png)
Configure the appropriate SCM.
![Job SCM](./images/12-basic-jenkinsfile/job-scm.png)
Install the Go plugin.
![Go Plugin](./images/12-basic-jenkinsfile/go-plugin.png)
Configure a Go runtime as global tool.
![Go Global Tool](./images/12-basic-jenkinsfile/go-global-tool.png)
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.
![Declarative Pipeline](./images/12-basic-jenkinsfile/declarative-pipeline.png)
</p>
</details>

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 706 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 760 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 KiB