我在Jenkins管道中运行了一个Pylint。为了实现它,我使用了Gerrit触发器插件和Next Generation Warnings插件。一切都按预期进行-詹金斯(Jenkins)正在参加审查,使用pylint检查更改并生成报告。
现在,我想在自定义“构建成功”消息中发布pylint分数。我想将pylint分数传递给环境变量,并在Gerrit插件消息的专用窗口中使用它。
不幸的是,无论我如何尝试,我都无法将任何“新”变量传递给消息。传递嵌入在管道工作中的参数(例如补丁集编号)。
我在Configure Jenkins菜单中创建了新的环境变量,尝试导出到shell并写入(通过$ VAR和env。语法),但是没有任何效果-也就是说,构建消息显示了像$ VAR这样的原始字符串,而不是包含什么变量。
我应该怎么做才能将本地pylint分数(每个管道发生的情况都不同)传递给Gerrit的自定义生成消息?
答案 0 :(得分:0)
您是否尝试过 echo“ $ var” ,可以共享您的代码
答案 1 :(得分:0)
我认为自定义消息不能用于此目的。这只是静态消息。
我这样做的方法是使用SSH命令执行审查。您还可以使用REST API实现相同的目的。
首先,我运行我的棉绒和空白检查脚本,该脚本将生成一个json文件,其中包含我想传递给Gerrit的信息。接下来,我使用SSH将其发送到Gerrit。参见下面的管道脚本和示例json文件。
作为奖励,我添加了机器人注释。现在,这将显示在您的评论中,作为詹金斯(Jenkins)的一句话,即我的詹金斯文件的第8行带有空白。您可以轻松地将其替换为您喜欢的不起毛的结果,也可以忽略它而只放置邮件。使用json文件更容易,因为它可以更轻松地创建多行消息
node('master') {
sh """
cat lint_change.json | ssh -p ${env.GERRIT_PORT} ${env.GERRIT_HOST} gerrit review ${env.GERRIT_PATCHSET_REVISION} --json
"""
}
示例json文件:
{
"labels": {
"Code-Style": "-1"
},
"message": "Lint Bot Review\nLint Results:\n Errors: 0\n Warnings: 0\n\nWhitespace results:\n Errors: 1",
"robot_comments": {
"Jenkinsfile": [
{
"robot_id": "lint-bot",
"line": "8",
"message": "trailing whitespace."
}
]
}
}
或者,您可能希望查看一个新的gerrit-code-review-plugin,它将使事情变得更加容易。但是,我还没有尝试过。