我编写了简单的常规脚本,但是我不知道如何在Jenkins上执行它。
看这个简单的脚本:
String jbN = System.getenv('JOB_NAME')
println jbN
println "Hello"
除了我将至少接收“ Hello”之外,我会。脚本不予回报。我刚收到Build step 'Groovy Postbuild' marked build as failure(or success)
似乎脚本未执行。
编辑:
我没有添加它,但是我已经有脚本可以分析日志,因此我需要它来在构建后执行它。问题比我想的要大。插件:“脚本编辑器”或“ Groovy插件”不打印任何内容。我正在尝试打印的脚本:
String jbN = System.getenv('JOB_NAME')
println jbN
我找到了解决方案:
脚本已执行,但未打印到控制台输出。要将结果打印到控制台输出,您需要编写:manager.listener.logger.println("Some string")
而不是println
。
使其更简短:
logger = manager.listener.logger.&println
// and call like this:
logger("test log message")
编辑:在记录器示例中添加并描述如何获取env var(以及如何获取它们),并希望为人们节省一些调试时间。 。 。这很简单但是很尴尬。
要获得工作空间,您可以浏览manager对象。像这样:
manager.build.workspace
要获取环境变量,此不起作用:
String jbN = System.getenv('JOB_NAME')
它显示jbN为空。这很有意义,因为JOB_NAME不是实际的系统环境变量。
这也不起作用以获得环境变量,抛出异常:
${manager.envVars['WORKSPACE']}
这确实可以使詹金斯的工作“ env vars”如WORKSPACE,JOB_NAME,BUILD_NAME:
def build = Thread.currentThread().executable
workspace = build.getEnvVars()["WORKSPACE"]
使用示例,您可以像这样在工作区中调用Groovy脚本:
evaluate(new File(manager.build.workspace.toString() + "/dirinworkspace/scriptname.groovy"))
根据您的情况,您想使用Groovy plugin而不是Groovy Postbuild plugin。
Groovy Postbuild插件用于更改构建结果(post build)。Groovy插件用于运行简单的Groovy脚本inside您的工作。
单击Manage Jenkins
-> Script Console
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9xc3o2ZC5wbmcifQ==” alt =“在此处输入图像描述”>