Skip to content

Latest commit

 

History

History
74 lines (54 loc) · 1.9 KB

12-basic-jenkinsfile.md

File metadata and controls

74 lines (54 loc) · 1.9 KB

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.
    • 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.

New Job

Configure the appropriate SCM.

Job SCM

Install the Go plugin.

Go Plugin

Configure a Go runtime as global tool.

Go 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.

Declarative Pipeline