需求: 代码发布后,将发布结果发送至相关运维同学邮箱,需要获取发布人的信息。jenkins默认是没有相关内置变量的。 需要通过插件的方式进行解决:
插件: user build vars plugin
部署后,可使用的变量:
Variable | Description |
---|---|
BUILD_USER | Full name (first name + last name) |
BUILD_USER_FIRST_NAME | First name |
BUILD_USER_LAST_NAME | Last name |
BUILD_USER_ID | Jenkins user ID |
BUILD_USER_EMAIL | Email address |
在jenkins任务中使用构建变量:注意需要勾选 "Set jenkins user build variables."
缺陷:1). 当job是定时执行的时候,获取不到jenkins登录用户名。
2). 使用pipeline构建时, 不支持直接调用相关变量。
pipeline解决方式:
使用wrap对相关方法进行封装:
post {
success{
wrap([$class: 'BuildUser']) {
emailext body:"${BUILD_USER} ${JOB_NAME} (${BUILD_NUMBER}) run success\n请及时前往${env.BUILD_URL}进行查看" , subject: "PineLine '${JOB_NAME}' (${BUILD_NUMBER}) result", to: 'xiaoxiang@mail.xxx-inc.com'
}
}
}
验证。。。