【发布时间】:2021-10-09 20:20:49
【问题描述】:
我有以下詹金斯文件:
pipeline {
agent any
environment {
VERSION=""
}
stages {
stage ("release"){
steps {
script {
${VERSION}=sh(returnStdout: true, script:$("./bashscript.sh).trim())
}
}
}
}
我想做的很简单,我想调用 bash 文件,该文件将值返回到我的 Jenkinsfile 中的环境变量。
我有 2 个问题:1. 如何从 bash 文件中返回值? 2.如何将其插入到Jenkinsfile中的环境变量中?
这是我的 .sh 文件:
# !/bin/bash
if [ some condition... ]
then
some commands....
return "value"
else
some commands....
return "other value"
fi
找了半天也没找到,有没有可能?
注意:我看到了许多 groovy 的解决方案,但我需要它在管道中...
【问题讨论】:
-
how to return value from bash file?不确定这是什么意思。您是否尝试使用 bash 从文件中替换来自 jenkins 的变量? -
是的,我想将 bash 文件中的变量返回到 jenkinsfile 中的变量
-
虽然您已经接受了答案,但看起来很复杂,就像 Q 一样。您尝试“返回”的值是否只是一个结果代码 (0,1-255)?管道 sh 步骤有 return code (optional)。而这个code-maven 的例子有一个巧妙的方法来聚合它们。
标签: bash jenkins jenkins-pipeline sh