【问题标题】:Is there a way for TeamCity to pass the last pinned build number into the current build's build step?TeamCity 有没有办法将最后固定的内部版本号传递到当前版本的构建步骤中?
【发布时间】:2011-07-12 03:13:50
【问题描述】:

我希望能够将最后固定的内部版本号传递给我的 TeamCity 构建步骤。我没有看到可以传入的系统参数,就像使用当前版本号一样。

有没有我没看到的参数?或者有没有办法从 URL 中获取版本号? - 谢谢

【问题讨论】:

  • 为什么需要这个固定的内部版本号?你想用它解决什么任务?
  • 我希望能够找出两个固定版本之间的版本号范围,以便我可以自动将适当的问题跟踪案例移动到“发布到 qa”状态。最后,我将使用依赖构建工件和问题跟踪状态来解决我的特定问题,但我猜人们可能仍然对如何获取固定构建信息感兴趣。
  • 我们在每次构建时升级我们的数据库副本。所以在我们的例子中,我们想要最后一个固定的构建,以确定要为当前构建复制哪个数据库。

标签: teamcity continuous-integration


【解决方案1】:

不幸的是,我一直无法找到将固定构建信息传递到我的 TeamCity 构建步骤的方法 - 这正是我想做的事情。

我能想到的下一个最佳解决方案是使用他们的REST API 查询 TeamCity 的固定构建。使用正确的查询,API 将返回一个 XML 结构,其中包括每个固定构建的构建号以及其他有用信息。

在最简单的情况下,请求看起来像这样:

http://<buildserver>/httpAuth/app/rest/builds/?locator=pinned:true

【讨论】:

    【解决方案2】:

    TeamCity 提供了一堆变量作为系统环境变量供您使用。

    变量列表可以在这里找到:

    http://confluence.jetbrains.net/display/TCD6/Predefined+Build+Parameters

    TeamCity 分配的内部版本号可以在build.number找到

    --

    您还可以通过在 TeamCity 的“我的设置和工具”部分订阅该构建的 RSS 提要来获取项目所有先前构建的记录。适当放置的 powershell 脚本或 shell 脚本可以抓取此 RSS 并对其进行解析。在那里,您可以配置一个显示项目最近构建的 RSS 提要...它似乎没有在 RSS 中显示固定状态,但您可以看到最近的几个构建。

    --

    最后的想法 - 如果您使用 MySQL 作为配置数据库,您可以直接针对 MySQL 数据库中的表编写查询。这将允许您查询构建中的任何字段,根据需要进行排序。

    【讨论】:

    • 感谢您的帮助,但这是我已经传递给构建脚本的内部版本号。我想从最后固定的版本中传递版本号。
    • 感谢您的想法。我的一个想法是使用最后一个固定构建的永久链接并获取一个包含该构建编号的工件。我认为这可能会奏效,但听起来并不理想......
    猜你喜欢
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2012-06-27
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 2020-07-15
    相关资源
    最近更新 更多