我正在尝试将用于在本地构建项目的Makefile移植到Jenkins中的自动构建系统中。此Makefile使用docker容器构建项目。但是,由于我不知道我在做什么,所以我对如何制作整个结构的建议持开放态度!
我想知道如何移植这种代码段:
PKGS = $(shell go list ./... | grep -v /vendor/ | grep -v /bindata)
VERSION = $(shell git describe)
VERSION64 = $(shell git describe | base64)
SHA = $(shell git rev-parse HEAD)
PWD = $(shell pwd)
进入声明性管道。当将变量包装在
environment
块上时,得到以下信息:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
WorkflowScript: 10: unexpected token: list @ line 10, column 30.
PKGS = $(go list ./... | grep -v /vendor/ | grep -v /bindata)
^
1 error
我启动管道的方式如下(在第一阶段之后,我声明了env vars):
pipeline {
agent {
docker {
image 'golang:1.11'
args '-v $(PWD):/go/src/project -w /go/src/project'
}
}
最佳答案
正如Zett42所评论的那样,您可以在Jenkins管道中如下设置环境变量。您可以找到有关https://jenkins.io/doc/book/pipeline/jenkinsfile/#using-environment-variables的更多信息
pipeline {
agent {
docker {
image 'golang:1.11'
args '-v $(PWD):/go/src/project -w /go/src/project'
}
}
environment {
// Using returnStdout
VERSION = """${sh(
returnStdout: true,
script: 'git describe'
)}"""
//Here you can include other env like above..
}
stages {
stage('Example') {
environment {
DEBUG_FLAGS = '-g'
}
steps {
sh 'printenv'
}
}
}
}
关于docker - 将Makefile移植到Jenkinsfile,但是环境变量有问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60577530/