小编典典

可以访问Jenkins中的构建变更日志

jenkins

我一直在努力寻找一种方法,以将Jenkins生成的更改列表(通过SVN拉取)包括到我们的Testflight注释中。我正在使用Testflight插件,该插件具有用于注释的字段-
但jenkins似乎没有嵌入该信息的任何参数/令牌。

有谁能完成这样的运气吗?


阅读 779

收藏
2020-07-25

共1个答案

小编典典

看起来TestFlight插件会将变量扩展到“构建说明”字段中,所以问题是:如何将当前构建的更改获取到环境变量中?

据我所知,Subversion插件没有通过环境变量提供此信息。但是,所有Jenkins SCM插件都集成了变更日志信息,如您通过Web
UI中每个构建版本的“变更”链接所看到的。

即使正在进行构建,也可以通过Jenkins API获得此信息。

例如,如果在运行此命令的位置添加“执行外壳”构建步骤:

curl -s "http://jenkins/job/my-job/$BUILD_NUMBER/api/xml?wrapper=changes&xpath=//changeSet//comment"

您将获得一个类似于以下内容的XML文档:

<changes>
  <comment>First commit.</comment>
  <comment>Second commit.</comment>
</changes>

然后,您可以根据自己的喜好设置此信息的格式,并将其放入一个环境变量中,然后可以在TestFlight“构建说明”部分中进行引用。

但是,默认情况下,在构建步骤中设置环境变量不是永久性的-为此,需要使用EnvInject插件

在这种情况下,您可以将更改日志文本写入具有以下内容的临时文件:

CHANGELOG="New in this build:\n- First commit.\n- Second commit."

然后,通过使用带有“ 环境属性文件路径”选项的构建步骤来加载该文件,该$CHANGELOG变量将存在于您的环境中,并一直持续到构建结束,从而允许您在“构建说明”字段中使用它。


注意: 我自己没有使用TestFlight插件(尽管我快速浏览了代码),并且仅使用Git存储库测试了changes
API。同样,我也没有测试应如何使用EnvInject插件编码换行符,否则可能会引起问题。

2020-07-25