鉴于此FirstScript.groovy:
class FirstScript implements Serializable{
def firstFunction() {
println "This print doesn't work"
return "This string can be returned and printed"
}
}
return new FirstScript()
这个pipline代码:
node("Slave") {
checkout scm
def firstScript = load 'FirstScript.groovy'
echo firstScript.firstFunction()
}
唯一的输出是“可以返回并打印此字符串”。
这显然是因为println发生在slave的输出流上,而不是在master的输出流上,但我需要一种方法来连续打印从slave到master的控制台日志。 尝试将System.out从master传递到slave,没有任何效果。
有什么建议吗?
答案 0 :(得分:5)
echo
。
如果你想让你的例子“按原样”工作,你可以将管道上下文注入firstFunction:
FirstScript.groovy:
class FirstScript implements Serializable{
def firstFunction(dsl) {
dsl.echo "This print doesn't work. well now it does. :)"
return "This string can be returned and printed"
}
}
return new FirstScript()
Jenkinsfile:
node("docker") {
checkout scm
def firstScript = load 'FirstScript.groovy'
echo firstScript.firstFunction(this)
}