我在Jenkins中有一个声明性管道设置。在构建后的步骤中,我想将自上次构建以来的更改的格式精美的git changelog发送到Discord。为此,有一个插件很容易:
post {
always {
discordSend result: currentBuild.result, title: 'Build ' + env.BUILD_NUMBER, link: env.BUILD_URL, webhookURL: DISCORD_WEBHOOK
}
failure {
discordSend result: currentBuild.result, title: 'Failed Build ' + env.BUILD_NUMBER, link: env.BUILD_URL, webhookURL: DISCORD_FAILED_WEBHOOK
}
}
它看起来像这样:
此链接指向我的Jenkins服务器,该服务器自上次构建以来就有 详细的更改日志。但是,我还要将此变更日志添加到此Discord消息中。
我无法弄清楚如何为声明性管道执行此操作。
答案 0 :(得分:1)
这是检查变更集的一个示例,这可能会使您沿着正确的路径前进:
JPanel
或者,您可以尝试从Pipeline examples中进行以下操作:
Canvas
将其格式化为Markdown并通过@NonCPS
def printCurrentBuildChangesets() {
def changeLogSets = currentBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
echo "${entry.commitId} by ${entry.author} on ${new Date(entry.timestamp)}: ${entry.msg}"
def files = new ArrayList(entry.affectedFiles)
for (int k = 0; k < files.size(); k++) {
def file = files[k]
echo "${file.editType.name} ${file.path}"
}
}
}
}
附加为练习;)