只有 test/build 提交到 develop 分支 - CircleCI

Only test/build commits on the develop branch - CircleCI

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

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

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

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

general:
  branches:
    only:
      - develop

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

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

获得此行为的另一种方法是在您的分支白名单中使用正则表达式匹配,这样任何以 pr- 开头的分支名称都会正常构建,然后从 pr- 分支机构。您只需要添加:

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