Я пытаюсь преобразовать свое существующее задание Jenkins Freestyle Golang в файл Jenkinsfile, который я могу зарегистрировать вместе со своим проектом, чтобы вместо этого использовать его в конвейерном задании.
Указанное задание - это просто запуск всех тестов Go и сборка проекта, если все тесты пройдены. Развертывание еще не относится к этой работе.
Моя рабочая установка выглядит следующим образом:
Установки плагинов Go:
Name: Go
Install Automatically: Checked
Install from golang.org: Go 1.11.2
ПРИМЕЧАНИЕ: Я дал ему имя Go
, поэтому часть папки установки Go Go/src
может соответствовать в следующих каталогах.
Полномочия (глобальные):
Username with password: (My email address and password)
Конфигурация задания:
Use custom workspace: Checked
Directory: /var/lib/jenkins/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go/src/MY_PROJECT_NAME
Source Code Management:
Git
Repository URL: MY_PRIVATE_BITBUCKET_URL.git
Credentials: (My email address and password)
Branches to build: */master
Build Environment:
Set up Go programming language tools: Checked
Go version: Go
Build
Execute Shell
# Remove cached test results.
go clean -cache
# Run all Go tests.
cd /var/lib/jenkins/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go/src/MY_PROJECT_NAME
go test ./... -v
Execute Shell
# Build the project.
cd /var/lib/jenkins/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go/src/MY_PROJECT_NAME
go build
Я пытался использовать плагин Convert To Pipeline
, но он не смог полностью преобразовать работу:
// Powered by Infostretch
timestamps {
node () {
stage ('MY_PROJECT_NAME - Checkout') {
checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: 'MY_CREDENTIALS_ID', url: 'MY_PRIVATE_BITBUCKET_URL.git']]])
}
stage ('MY_PROJECT_NAME - Build') {
// Unable to convert a build step referring to "org.jenkinsci.plugins.golang.GolangBuildWrapper". Please verify and convert manually if required.
// Shell build step
sh """
cd /var/lib/jenkins/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go/src/MY_PROJECT_NAME
go clean -cache
go test ./... -v
"""
// Shell build step
sh """
cd /var/lib/jenkins/tools/org.jenkinsci.plugins.golang.GolangInstallation/Go/src/MY_PROJECT_NAME
go build
"""
}
}
}
Как мне преобразовать эту простую работу в файл Jenkinsfile? Я также готов при необходимости интегрировать Docker в указанный файл.