将子模块的提交信息添加到Jenkins变更日志

81次阅读
没有评论

问题描述

项目包含3个子模块,在每次构建项目时,这些子模块会被更新。项目主要用于生成一个安装程序(不在子模块中)。虽然在安装程序本身中并没有做很多更改,但提交消息(更改内容)从那里传递得很好。用户想要在Jenkins日志中看到来自子模块的提交消息(更改内容)。是否有可能实现这一点?如果在Jenkins中无法实现,那么在电子邮件通知中是否有可能?在邮件插件中,配置如下:

${CHANGES, showPaths=true, format="Commit: %r by %a \n %p \n\t Comment: %m \n", pathFormat="\n\t %p"}

另外,用户是从一名已离职的员工那里接手的Jenkins,对此并不熟悉。

解决方案

请注意以下操作可能存在版本差异,建议在进行操作之前做好备份。

方案1:使用Git提交信息中的主题

根据您的需求,您想要在Jenkins的变更日志中看到来自子模块的提交信息。通常,Git提交消息中的主题(或者称为提交信息的第一行)包含了关于提交更改内容的信息。

要实现这一点,您可以在Jenkins中配置用于显示Git提交消息主题的格式。以下是具体的步骤:

  1. 打开Jenkins管理界面。
  2. 导航到“系统管理” > “脚本管理”。
  3. 在“Groovy脚本”部分,输入以下脚本来设置变更日志格式:
import hudson.plugins.emailext.plugins.content.GroovyScriptContent
def content = new GroovyScriptContent('''\
  %CHANGES{, showPaths=true, format="Commit: %s by %a \n %p \n\t Comment: %m \n", pathFormat="\n\t %p"}%
''')
jenkins.model.Jenkins.instance.getDescriptor('hudson.plugins.emailext.ExtendedEmailPublisher').globalDefaultContent = content
  1. 点击“执行系统脚本”以应用更改。

此脚本将配置电子邮件插件,以便在变更日志中显示Git提交消息的主题。

方案2:使用Git命令获取提交主题

如果您更喜欢在构建过程中直接获取Git提交消息主题,并在构建中展示它们,您可以在Jenkins的构建步骤中添加一些自定义脚本。以下是一个可能的示例脚本,该脚本使用Git命令获取提交主题:

  1. 在Jenkins的构建步骤中添加一个”执行Shell”(Linux/macOS)或”Execute Windows batch command”(Windows)步骤。
  2. 在该步骤中,输入以下脚本以获取并展示Git提交消息主题:
#!/bin/bash

# 获取当前构建的Git提交消息主题
commit_subjects=$(git log --pretty="%s")

# 在构建中展示提交消息主题
echo "Git提交消息主题:"
echo "$commit_subjects"

这个脚本将在构建过程中获取最近提交的Git消息主题,并在构建日志中展示它们。

请根据您的实际需求,选择适合您的方案,并根据您的Jenkins环境进行适当的调整。如有需要,您还可以进一步探索Jenkins的插件和扩展功能,以实现更复杂的需求。

注意:在应用任何更改之前,建议您先进行测试,以确保新配置不会影响现有的构建和通知流程。

正文完