【问题标题】:Only test/build commits on the develop branch - CircleCI仅在开发分支上测试/构建提交 - CircleCI
【发布时间】:2016-09-28 15:06:36
【问题描述】:

我正在尝试为我的 AngularJS 项目设置 CircleCI。我想我做的一切都是正确的,但是有一些问题。

  1. 当提交被推送到功能分支(除了开发或主分支)时,我不想运行测试,也不想创建构建。
  2. 当为开发分支创建 PR 时,我希望对该 PR 进行测试。
  3. 当该 PR 被合并时,或者如果在开发分支上进行了其他直接提交,我希望创建和部署一个新的构建。

问题是第一点,此时任何分支上的每次提交都会触发测试,这根本不需要。

我已经在 circle.yml 中尝试过,但这似乎也阻止了 PR 到开发分支的测试:

general:
  branches:
    only:
      - develop

那么我怎样才能让 Circle 以我想要的方式行事呢?或者我应该删除上面的配置并让它测试每个分支上的每个提交?

【问题讨论】:

    标签: continuous-integration continuous-deployment circleci


    【解决方案1】:

    当在 github 中进行 PR 时,构成拉取请求的提交仍然是其原始分支的一部分,而不是新分支,这意味着 Circle 将执行的任何测试都将作为原始分支的一部分发生,您隐含地属于原始分支列入黑名单。合并的 PR 肯定会触发新的构建,因为合并的 PR 会导致新的提交 SHA 并触发 CircleCI。如果您希望在进行 PR 时运行测试,则需要更改 circle.yml 文件以允许您从中进行 PR 的分支。

    获得此行为的另一种方法是在您的分支白名单中使用正则表达式匹配,以便正常构建任何以 pr- 之类的名称开头的分支名称,然后从 pr- 分支发出所有拉取请求。您只需要添加:

    general:
      branches:
        only:
          - /pr-*/
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-27
      相关资源
      最近更新 更多