当前位置: 首页 > 面试题库 >

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

邹宣
2023-03-14
问题内容

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

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


问题答案:

看起来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插件编码换行符,否则可能会引起问题。



 类似资料:
  • 问题内容: 我正在使用Scriptler插件,因此可以在构建步骤中运行groovy脚本。我的Jenkins奴隶正在服务模式下的Windows上运行。使用脚本编辑器,我不需要使用Windows批处理脚本。 但是我很难在构建步骤中获取环境变量。 哪里是将env-瓦尔对詹金斯启动部分。但是,我想得到 如果要添加“执行Windows批处理命令”构建步骤: 有用。如果要添加具有相同设置的脚本程序脚本作为构建

  • 我使用脚本插件,所以我可以运行一个Groovy脚本作为构建步骤。我的Jenkins奴隶在服务模式下的窗口上运行。有了脚本,我不需要使用窗口批处理脚本。 但是我很难在构建步骤中获取环境变量…这是有效的: 其中 是 enkins 初创公司 env-vars 的一部分。但是,我想得到 如果我添加“执行 Windows 批处理命令”构建步骤: 它起作用了。如果我添加一个脚本脚本作为具有相同设置的构建步骤:

  • 我们有一个Jenkins构建,它在Jenkins1.596.2上成功运行,我们正在迁移到运行Jenkins2.60.1的新构建机器 作为构建配置的一部分,我们有一个可扩展的Choice参数,并使用系统Groovy Choice参数作为选择提供者。然后,我们使用Groovy脚本获取选择列表。 此Groovy脚本需要访问Jenkins构建环境变量之一,该变量设置在构建配置的全局属性部分(在环境变量下)

  • 问题内容: 我以为我读过某个地方,詹金斯(Jenkins)支持与Eclipse集成来构建Eclipse项目,但是现在我找不到任何支持该文档的文档。这可能做到吗,或者我吠错了树吗? 问题答案: 是的,有可能。您可以在Tycho中使用Maven构建(请参阅Minerva示例)。 您还可以使用Buckminster重用PDE版本- Jenkins还具有一个Buckminster插件,可简化配置。而且还可

  • 问题内容: 我试图在Jenkins中创建一个手动构建,该构建将从TFS构建特定的代码变更集,以部署到测试/生产环境中。 目前,我只能在Jenkins中使用TFS来将所有内容从TFS中提取到最新的Changeset。 我正在使用TFS插件版本1.20运行Jenkins版本1.471 有没有人遇到这个问题,您知道如何解决吗? 提前致谢。 问题答案: 缺少此功能,但根据此Jira问题的评论,该功能似乎正

  • 我目前使用的是Build Flow插件,在Jenkins 2.0中,这个插件似乎已经被放弃,转而支持管道。 在使用新管道重建现有工作时遇到了一些问题。 目前,我有类似这样的代码: 此处的目标是并行运行多个现有作业,然后访问有关已完成的生成的信息。这在构建流插件中一直没有问题。 我无法找到使用新管道访问这些数据的方法。 join['Job1']的转储不会像构建流插件那样提供对抽象构建或类似内容的访问