我正在尝试为Groovy中的项目编写jenkins构建脚本。 问题是我想在脚本顶部定义一些变量,并在需要时用作环境变量。
def someVariable = 'foo'
pipeline{
agent any
stages{
stage("build"){
environment {
specialParameter = someVariable
}
steps{
...
}
}
...
}
}
我还有一些其他步骤,它们的环境变量是不同的,并且我也想只更改脚本的顶部以能够建立其他分支等等。所以我只想要一种在环境正文中使用定义的 someVariable 的方法。
谢谢
答案 0 :(得分:2)
首先,您可以仅使用环境部分来定义整个脚本中已知的环境变量:
pipeline {
agent any
environment {
TEST='myvalue'
}
stages{
stage("build"){
steps{
...
}
}
}
}
您还可以定义一个只有一个阶段才知道的变量:
pipeline {
agent any
stages{
stage("build"){
environment {
TEST='myvalue'
}
steps{
...
}
}
}
}
但是对于您的解决方案(在管道上方使用def),您可以执行以下操作:
def someVariable = 'foo'
pipeline{
agent any
stages{
stage("build"){
steps{
echo someVariable
}
}
}
}
这将输出'foo'
。
您可以在variable declarations syntax by reading Jenkins online book.
上获得更多信息。更新:
def someVariable = 'foo'
pipeline{
agent any
stages{
stage("build"){
environment {
TEST = sh(script: "echo -n ${someVariable}", returnStdout: true)
}
steps{
sh 'echo "${TEST}"'
}
}
}
}
输出:
[test] Running shell script
+ echo foo
foo
答案 1 :(得分:0)
只是找到了另一种使用定义的环境变量的方法。
def getsomeVariable (){
return 'foo'
}
pipeline{
agent any
stages{
stage("build"){
environment {
specialParameter = getsomeVariable()
}
steps{
...
}
}
...
}
}