为了账号安全,请及时绑定邮箱和手机立即绑定

将 Jenkins Freestyle Golang 作业转换为 Jenkinsfile

将 Jenkins Freestyle Golang 作业转换为 Jenkinsfile

Go
慕桂英4014372 2023-05-08 15:06:25
我正在尝试将我现有的 Jenkins Freestyle Golang 作业转换为 Jenkinsfile,我可以将其与我的项目一起签入,以便我可以在管道作业中使用它。所述工作只是运行所有 Go 测试并在所有测试通过后构建项目。部署还不是这项工作的关注点。我的工作设置如下:Go 插件安装:Name: GoInstall Automatically: CheckedInstall 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_NAMESource Code Management:    Git        Repository URL: MY_PRIVATE_BITBUCKET_URL.git        Credentials: (My email address and password)        Branches to build: */masterBuild Environment:    Set up Go programming language tools: Checked        Go version: GoBuild    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 集成到所述文件中。
查看完整描述

1 回答

?
森林海

TA贡献2011条经验 获得超2个赞

我想到了。


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'                    

            }

        }

    }

}


查看完整回答
反对 回复 2023-05-08
  • 1 回答
  • 0 关注
  • 131 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信