引言
对于共用的 Jenkins Job,会被多个 Jenkins Pipleline Job 调用,例如每次执行完测试用例,发送 Email Report 告知测试结果,便可以单独建一个公用的 Report jenkins job,方便多个项目调用。通常 Jenkins job 执行完,只有 Build Number 和完成时间,要想知道具体细节还得点开每个 Build,不够直观。Groovy Postbuild
插件就可以解决这个问题,可以让 Build History 的内容更加丰富。
内容提要
- Groovy Postbuild 插件介绍
- 安装 Groovy Postbuild 插件
- 应用 Groovy Postbuild 插件
Groovy Postbuild 插件介绍
Groovy Postbuild 官网 有介绍到,该插件在 Jenkins JVM 执行 Groovy 脚本。通常基于 build 的运行结果,check 一些条件和变化。例如,可以在 build history 中 build 旁边添加图标 badges 或是显示有关 build 的描述。
自 Groovy Postbuild 2.0 起,开始引入 Script Security Plugin,为了控制 Groovy 脚本使用的安全性,防止不当的使用造成的危害。
因此 Groovy Postbuild 有 2 类方法:
- White 白名单方法,可用 Groovy sandbox 运行
- Non White 非白名单方法,需要 Admin 批准以后才能用 Manage Jenkins > In-process Script Approval。
受权限制约,本文应用部分使用的是 White 白名单方法 中的简单方法。
安装 Groovy Postbuild 插件
在应用 Groovy Postbuild
插件前,先确保 Jenkins 上已经安装该插件
Manage Jenkins -> Plugin Manage
安装完成后,发现多出一个 Groovy Postbuild
选项
Job Configure -> Post-build Actions -> Add post-build action
应用 Groovy Postbuild 插件
先看一下,没有应用 Groovy Postbuild plugin 时,Build History 的信息就只有 build number 和 执行时间。
应用后的效果可以是这样的:加了一些高亮文本和图标,这里只是举个例子,你也可以基于自己的需求定制。这样就能区分是那个 Project Name 执行的 Job 了,是不是一目了然。
下面来看看上面的效果是怎么实现,
添加一个参数 Project_Name,用来选择 Porject Name,后面 Groovy postbuild 需要访问这个参数。
Post-build Actions 部分添加 Groovy Postbuild plugin
${manager.getEnvVariable('Project_Name')}
可以访问到 Project_Name 变量
Groovy script:
manager.addShortText("${manager.getEnvVariable('Project_Name')}")
manager.addBadge("success.gif", "success")
manager.addWarningBadge("build Failure.")
manager.addBadge("error.gif", "failed")