Jenkins获取当前job执行的用户名

log="$JENKINS_HOME/jobs/$JOB_NAME/builds/${BUILD_NUMBER}/log"
BUILD_USER=$(cat $log |head -n 1|sed -E "s#^.*Started by user##g" |sed -E "s#^.*0m##g" || echo "")

 

如下当jenkins发布时,通过企业微信机器人发送通知

# 发送发布通知
log="$JENKINS_HOME/jobs/$JOB_NAME/builds/${BUILD_NUMBER}/log"
BUILD_USER=$(cat $log |head -n 1|sed -E "s#^.*Started by user##g" |sed -E "s#^.*0m##g" || echo "")
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx' -H 'Content-Type: application/json' -d \
"{\"msgtype\": \"markdown\",\"markdown\": {\"content\": \"**服务部署通知**\\n部署环境:$env\\n部署服务:$Project\\n发布分支:$branch\\n发 布 人:$BUILD_USER\"}}"

  

思路:

  1、先获取当前执行job的log

  2、然后从日志第一行解析出执行该job的用户名

可以通过上面shell命令获取Jenkins获取当前job执行的用户名,用户发布通知等操作

posted @ 2023-06-21 19:52  ilovetesting  阅读(570)  评论(0编辑  收藏  举报