svn - 访问 Jenkins 中的构建变更日志

标签 svn jenkins testflight

我一直在绞尽脑汁地试图找到一种方法,将 Jenkins 生成的更改列表(来自 SVN pull)包含到我们的 Testflight 笔记中。我正在使用 Testflight 插件,它有一个注释字段 - 但 Jenkins 似乎没有创建任何参数/ token 来嵌入该信息。

有人有幸完成这样的事情吗?

最佳答案

看起来 TestFlight 插件扩展了放置在“构建注释”字段中的变量,所以问题是:我们如何将当前构建的更改获取到环境变量中?

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

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

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

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 Plugin .

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

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

然后,通过使用 Environment Properties File Path 的构建步骤如果选择加载此文件,$CHANGELOG 变量将存在于您的环境中并持续到构建结束,从而允许您在“构建注释”字段中使用它。

<小时/>

注意:我自己没有使用 TestFlight 插件(尽管我快速浏览了代码),并且我只使用 Git 存储库测试了更改 API。同样,我没有测试如何使用 EnvInject 插件对换行符进行编码,因此这可能会导致问题。

关于svn - 访问 Jenkins 中的构建变更日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11823826/

相关文章:

iphone - 多人开发SVN代码提交规则

ios - 邀请的 TestFlight 问题

jenkins - docker 插件不运行并行构建

jenkins - 如何强行终止 cloudbees 中的 Jenkins 构建?

ios - TestFlight Beta 不显示测试人员

ios - Swift - NetServiceBrowser 在 TestFlight 中不工作

Eclipse 不显示包中的类

iphone - 如何在 XCode 中设置 SVN 存储库?

ios - 如何组织一个使用 SVN 但依赖于使用 Git 的库的 xcode 项目?

jenkins - 如何为 Jenkins 管道 httpRequest 方法传递一系列有效响应代码