如何在 shell 命令中发送 Jenkins 版本号作为参数,该命令将在构建结束后执行
Posted
技术标签:
【中文标题】如何在 shell 命令中发送 Jenkins 版本号作为参数,该命令将在构建结束后执行【英文标题】:How to send Jenkins build number as parameter in shell command which will get executed after build ends 【发布时间】:2021-09-11 14:09:02 【问题描述】:在 Jenkins 构建失败或中止之后,我每次都运行 python 脚本。 在该脚本中,我想传递内部版本号,以便我在脚本中拥有此信息并相应地使用它。
有人可以帮我理解我应该如何将此内部版本号作为参数传递给我的 shell 命令吗?
【问题讨论】:
【参考方案1】:如果你使用%
访问环境变量,你应该使用"Execute Windows Batch Command"
。
使用"Execute Windows Batch Command"
,您可以如下使用:
echo %BUILD_NUMBER%
C:\\Python38\\python.exe C:\\python-workspace\\hello_test.py %BUILD_NUMBER%
如果你想用shell执行,那么你可以使用$
作为$BUILD_NUMBER
访问
【讨论】:
非常感谢您的回答。但是这个 ->BUILD_NUMBER
真的存在吗,或者我应该把它设置在某个地方?
@Marialena 它是一个 Jenkins 环境变量,所以你不必设置它。您可以在以下位置查看所有环境变量列表:http://localhost:8080/env-vars.html/
。如果您需要更多信息,请告诉我。 $BUILD_NUMBER
应该为你工作
@Marialena 如果这对你有用,那么请你接受答案
我已经改成你所说的,前面有$
,我可以在我的构建的jenkins日志中看到它不起作用:Running script : python.exe sendemail.py LoginOld ABORT $BUILD_NUMBER
@Marialena 你能用$BUILD_NUMBER
检查吗,你也能在链接http://localhost:8080/env-vars.html/
看到环境变量【参考方案2】:
您正在使用 Postbuild Task 插件,它将脚本作为 shell 脚本执行,因此您应该使用 shell 参数语法 $YOUR_PARAM
在您的情况下,只需更新您的代码以使用 $BUILD_NUMBER
而不是 %BUILD_NUMBER%
【讨论】:
我更改了它,但我可以从日志中看到它只打印$BUILD_NUMBER
而不是实际数字。
最后成功了:%BUILD_NUMBER%
。感谢您的帮助。以上是关于如何在 shell 命令中发送 Jenkins 版本号作为参数,该命令将在构建结束后执行的主要内容,如果未能解决你的问题,请参考以下文章