use*_*693 6 git jenkins jenkins-pipeline
我有一个在groovy中设置的管道,需要拉出在git中提交一些代码的人,这样我就可以发布破坏构建的人名.我在网上搜索过,似乎无法找到解决方案.我想通过使用jenkins的slack插件找出如何发布松弛的帖子.例:
slackSend color: 'warning', message: "${git.user_name} broke the build."
Run Code Online (Sandbox Code Playgroud)
您必须为此使用 shell 并执行git命令来检索数据,将其存储在文件中,然后将文件读入变量,如下所示:
sh 'git log --format="%ae" | head -1 > commit-author.txt'
readFile('commit-author.txt').trim()
Run Code Online (Sandbox Code Playgroud)
以上将为您提供最后一个提交作者。
我使用以下方法。
首先在 JenkinsFile 中添加一个阶段,以将提交作者(和消息)从 git log 检索到环境中。变量:
stage('get_commit_details') {
steps {
script {
env.GIT_COMMIT_MSG = sh (script: 'git log -1 --pretty=%B ${GIT_COMMIT}', returnStdout: true).trim()
env.GIT_AUTHOR = sh (script: 'git log -1 --pretty=%cn ${GIT_COMMIT}', returnStdout: true).trim()
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后在构建后操作中发送 Slack 消息:(顺便说一句,我发送到两个不同的通道(成功/失败),以便可以将成功通道静音。
post {
failure {
slackSend (channel: 'xyz-build-failure', color: '#FF0000', message: """FAILED:
Job: ${env.JOB_NAME}
Build #${env.BUILD_NUMBER}
Build: ${env.BUILD_URL})
Comitted by: ${env.GIT_AUTHOR}
Last commit message: '${env.GIT_COMMIT_MSG}'""")
}
success {
slackSend (channel: 'xyz-build-success', color: '#00FF00', message: """SUCCESS:
Job: ${env.JOB_NAME}
Build #${env.BUILD_NUMBER}
Build: ${env.BUILD_URL})
Comitted by: ${env.GIT_AUTHOR}
Last commit message: '${env.GIT_COMMIT_MSG}'""")
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5694 次 |
| 最近记录: |