gpt4 book ai didi

Groovy Postbuild 不在 Jenkins 上执行脚本

转载 作者:行者123 更新时间:2023-12-02 06:35:58 26 4
gpt4 key购买 nike

我编写了简单的groovy脚本,但我不知道如何在Jenkins上执行它。

看看这个简单的脚本:

String jbN = System.getenv('JOB_NAME')
println jbN
println "Hello"

我希望我至少会收到“Hello”。脚本不返回。我刚刚收到构建步骤“Groovy Postbuild”将构建标记为失败(或成功)

脚本似乎没有执行。

编辑:

我没有添加它,但我已经有了可以分析日志的脚本,所以我需要它在构建后执行它。问题比我想象的还要大。插件:“Scriptler”或“Groovy Plugin”不打印任何内容。我正在尝试打印的脚本:

String jbN = System.getenv('JOB_NAME')
println jbN

最佳答案

我找到了解决方案:

脚本已执行但未打印到控制台输出。要将结果打印到控制台输出,您需要编写:manager.listener.logger.println("Some string") 而不是 println

要使其更短,请执行以下操作:

logger = manager.listener.logger.&println
//并像这样调用:
logger("测试日志消息")

编辑:添加记录器示例并描述如何获取环境变量(以及如何不获取它们)并希望节省人们一些调试时间。 。 。这是简单但尴尬的事情。

要获取工作区,您可以通过管理器对象。像这样:

manager.build.workspace

要获取环境变量,此不起作用:

String jbN = System.getenv('JOB_NAME')

它显示 jbN 为空。这是有道理的,因为 JOB_NAME 不是实际的系统环境变量。

这也不起作用来获取环境变量,会抛出异常:

${manager.envVars['WORKSPACE']}

这确实可以获取 jenkins 作业“env vars”,例如 WORKSPACE、JOB_NAME、BUILD_NAME:

def build = Thread.currentThread().executable
工作空间 = build.getEnvVars()["WORKSPACE"]

使用示例,您可以像这样在工作区中调用groovy脚本:

评估(新文件(manager.build.workspace.toString()+“/dirinworkspace/scriptname.groovy”))

关于Groovy Postbuild 不在 Jenkins 上执行脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30485594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com