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执行的用户名,用户发布通知等操作