将 Jenkins Freestyle Golang 作业转换为 Jenkinsfile

我正在尝试将我现有的 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']]]) 

        }


如何将这个简单的作业转换为 Jenkinsfile?如有必要,我也愿意将 Docker 集成到所述文件中。


慕桂英4014372
浏览 132回答 1
1回答

森林海

我想到了。Jenkinsfile以下是我位于项目目录根目录中的内容:#!/usr/bin/env groovy// The above line is used to trigger correct syntax highlighting.pipeline {    agent { docker { image 'golang' } }        stages {        stage('Build') {                            steps {                      // Create our project directory.                sh 'cd ${GOPATH}/src'                sh 'mkdir -p ${GOPATH}/src/YOUR_PROJECT_DIRECTORY'                // Copy all files in our Jenkins workspace to our project directory.                                sh 'cp -r ${WORKSPACE}/* ${GOPATH}/src/YOUR_PROJECT_DIRECTORY'                // Copy all files in our "vendor" folder to our "src" folder.                sh 'cp -r ${WORKSPACE}/vendor/* ${GOPATH}/src'                // Remove build cache.                sh 'go clean -cache'                // Build the app.                sh 'go build'            }                    }        // Each "sh" line (shell command) is a step,        // so if anything fails, the pipeline stops.        stage('Test') {            steps {                // Remove cached test results.                sh 'go clean -testcache'                // Run all Tests.                sh 'go test ./... -v'                                }        }    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go