【问题标题】:TeamCity trigger for Github comment on pull request用于 Github 评论拉取请求的 TeamCity 触发器
【发布时间】:2019-03-14 01:40:20
【问题描述】:

我在 TeamCity 上有我的 CI。它目前触发不同事件的构建(Pull Request 创建,合并到Develop 分支等)。但是,我想知道是否可以通过编写特定评论/标记Pull Request 来触发特定构建。

目标是在 Pull Request 已获得批准(从编码正确性的角度来看)并且该分支已准备好合并到 Develop 时运行一组自动化 UI 测试.我不想为该分支上的每个提交运行那组自动化 UI 测试,因为运行它们大约需要 1 小时,而且我不想仅在合并该 PR 后运行它,因此我们避免合并任何破坏 UI 的东西测试Develop

所需的流程将是对该 PR 写一个特殊的评论,例如 run_UI_test 或使用自定义标签标记 PR,以便在 CI 上执行测试并将反馈显示在在 Github 上公关。

非常感谢您。

【问题讨论】:

    标签: android git github continuous-integration teamcity


    【解决方案1】:

    我不相信 TeamCity 对 Github 上的 cmets 有任何了解,因为 cmets 本身并不直接存储在分支中。我的假设是你有一个类似这样的 VCS Root:

    +:refs/heads/master
    +:refs/heads/develop
    +:...
    +:refs/pull/*/head
    

    可以通过 GitHub“问题 API”访问拉取请求的 cmets,但是,我认为这会给您的构建过程增加不必要的复杂性,并且会掩盖构建是如何被触发的。

    我的建议是遵循更传统的 CI 流程,并通过新分支创建另一层“集成”。所以基本上你的流程看起来像这样:

    • ma​​ster(合并发布请求)
    • 集成(运行 UI 自动化测试)
    • 开发(运行基本单元测试和其他东西)

    所以基本上你所有的开发都发生在 develop 或其他一些“功能”分支上。当所有基本测试都通过并且您准备好“升级”时,您可以合并到 integration 分支,然后触发您的 UI 测试。我还想指出,这个“integration”分支实际上可能只是“拉取请求”,实际上不需要静态分支,具体取决于您的开发流程设置。

    在 TC 中设置触发规则和分支过滤器要容易得多,然后编写一些自定义 REST API 脚本来使用 GitHub 问题 API。

    【讨论】:

    • 这正是我所期待的(这是不可能的)。但是,我没有想到“集成”步骤/分支,这很有意义,这是我要寻求的解决方案。非常感谢!
    • 没问题!您能否将我的答案标记为“正确”以结束问题?谢谢!
    • 我会的,但我想再等一会儿,以防其他人有其他答案可能比你的答案更有帮助。
    • 哈哈!很公平!谢谢!
    【解决方案2】:

    您可以通过设置一个单独的构建配置来实现类似的功能,该配置利用特定的 VCS 触发器来运行 UI 测试。此构建配置还将具有不同的构建步骤,其中包括执行测试的命令。

    例如:在触发器中,您可以使用+:comment=presubmit:** 添加一个新的 VCS 触发器,这将查找任何包含“presubmit”的提交消息,并触发您的 UI 测试套件运行。

    我看到一些存储库使用https://danger.systems 等工具编写自定义规则,这些规则可以在 Github cmets 中查找文本并根据评论触发交互。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-12
      • 2017-08-02
      • 2019-03-08
      • 2018-06-02
      • 1970-01-01
      • 2020-01-05
      • 2013-04-18
      • 2016-12-01
      相关资源
      最近更新 更多