Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jenkinsci/golang-plugin
Automatically installs the Go tools on Jenkins build agents
https://github.com/jenkinsci/golang-plugin
golang golang-tools jenkins-plugin
Last synced: 7 days ago
JSON representation
Automatically installs the Go tools on Jenkins build agents
- Host: GitHub
- URL: https://github.com/jenkinsci/golang-plugin
- Owner: jenkinsci
- Created: 2014-04-29T21:48:01.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-08-09T10:43:53.000Z (about 2 months ago)
- Last Synced: 2024-09-23T19:05:05.073Z (10 days ago)
- Topics: golang, golang-tools, jenkins-plugin
- Language: Java
- Homepage: https://plugins.jenkins.io/golang
- Size: 38.1 KB
- Stars: 51
- Watchers: 9
- Forks: 19
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# Go programming language plugin for Jenkins
[![Jenkins plugin](https://img.shields.io/jenkins/plugin/v/golang.svg)](https://plugins.jenkins.io/golang)
[![Jenkins plugin installs](https://img.shields.io/jenkins/plugin/i/golang?color=blue)](https://plugins.jenkins.io/golang)
[![Build status](https://ci.jenkins.io/job/Plugins/job/golang-plugin/job/master/badge/icon)](https://ci.jenkins.io/job/Plugins/job/golang-plugin/job/master/)Automatically installs and sets up the [Go programming language](http://golang.org/) (golang) tools on a Jenkins agent during a build.
## Functionality
During a build, this plugin can:
- Install a particular version of Go on the agent that the build is running on
- The correct package for the machine's operating system and CPU architecture will be automatically downloaded and installed, if not already present
- Export the `GOROOT` environment variable, pointing to the installed Go tools
- Add the path `$GOROOT/bin` as a prefix of the `PATH`, so that the tools are available during the build## Usage
Once this plugin is installed, you must first configure which Go version(s) you need for your Jenkins jobs, and then configure any jobs that need Go as appropriate.### Global configuration
1. In the Global Tool Configuration (Manage Jenkins → Global Tool Configuration), find the "Go" section, click "Go Installations…" and "Add Go".
2. Enter a name, e.g. "1.19" — the name itself has no significance, but it's what you'll need to provide for a Pipeline, or will be displayed to users during Freestyle job configuration
3. Either select "Install automatically" and pick the desired Go version from the drop-down list, or specify another installation method### Per-job configuration
#### Declarative Pipeline
You can use the [`tools` directive](https://www.jenkins.io/doc/book/pipeline/syntax/#tools) within any `pipeline` or `stage`. For example:```groovy
pipeline {
// Run on an agent where we want to use Go
agent any// Ensure the desired Go version is installed for all stages,
// using the name defined in the Global Tool Configuration
tools { go '1.19' }stages {
stage('Build') {
steps {
// Output will be something like "go version go1.19 darwin/arm64"
sh 'go version'
}
}
}
}
```#### Scripted Pipeline
You will need to grab the installation directory from the [`tool` step](https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/#tool-use-a-tool-from-a-predefined-tool-installation), and ensure that the correct `GOROOT` and `PATH` are set. For example:```groovy
// Run on an agent where we want to use Go
node {
// Ensure the desired Go version is installed on this agent,
// using the name defined in the Global Tool Configuration
def root = tool type: 'go', name: '1.19'// Export environment variables to pointing the Go installation;
// the `PATH+X` syntax prepends an item to the existing `PATH`:
// https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#withenv-set-environment-variables
withEnv(["GOROOT=${root}", "PATH+GO=${root}/bin"]) {
// Output will be something like "go version go1.19 darwin/arm64"
sh 'go version'
}
}
```#### Freestyle
1. In a job's configuration, find the "Build environment" section
2. Select the "Set up Go programming language tools" checkbox
3. Select the name of a Go installation from the drop-down## Changelog
See [CHANGELOG.md](https://github.com/jenkinsci/golang-plugin/blob/master/CHANGELOG.md).