【问题标题】:Teamcity REST API: get an artifact pathTeamcity REST API:获取工件路径
【发布时间】:2016-08-17 19:43:09
【问题描述】:

我有一些问题: 有一个 n 步骤的构建。最后一步是自定义 c# 通知程序,用于发送有关构建状态的电子邮件。现在我需要接收工件并将它们附加到我的电子邮件中。问题是在最后一步我们还没有压缩工件,这就是为什么我们需要自己找到它们并压缩。在某些配置中,我没有任何属性“结帐目录”。那么,如何获取根结帐文件夹和工件路径?

【问题讨论】:

    标签: c# teamcity artifacts teamcity-rest-api


    【解决方案1】:

    为了将文件附加到您的电子邮件中,我认为您不需要使用 REST API,而是需要使用内置参数来查找各种路径和位置。在不完全了解您的构建管道的情况下,我只能猜测这是您需要知道的。

    内置参数

    TeamCity 提供了许多参数,可帮助您处理各种路径

    • %teamcity.agent.work.dir% - 这是代理的工作目录
    • %teamcity.build.checkoutDir% - 这是代理的结帐目录
    • %system.teamcity.build.tempDir% - 这是临时构建目录

    将这些作为简单构建的一部分输出,我的是:

    查看构建日志将帮助您确定各个部分的去向。在没有完全了解您的构建设置的情况下,我只能概括,但在这里我们可以看到在结帐目录中生成了 .nupkg

    除非您想使用##teamcity[publishArtifacts '<path>'] 强制执行此操作,否则TeamCity 直到在构建配置中执行最后一个构建步骤之后才会发布工件,但我认为这对您没有帮助,除非您尝试调用REST API 来获取工件。

    希望这会有所帮助。

    【讨论】:

    • 我现在的主要问题是找到 %teamcity.build.checkoutDir% 来运行构建。我尝试根据 REST API 服务使用http://teamcity:8111/httpAuth/app/rest/builds/id:<build id>/resulting-properties,但我只能看到已完成构建的结帐目录。我认为,某处需要是构建的所有属性,避免日志解析
    • 好吧,我最后的构建步骤尝试读取构建的属性。如果构建失败,通知者会发现更改并向作者发送电子邮件,表明他在最后一次提交时构建失败。但是,我们需要扩展这个程序来发送工件。如果我知道结帐目录并解析工件规则,我可以找到工件文件。现在我无法获取运行构建的结帐目录。
    • %teamcity.build.chec‌​koutDir% 是正在运行的构建的检出目录
    猜你喜欢
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多