2017-08-07 40 views
0

我正在使用Circle CI将我的SPA网站部署到Firebase,使用 firebase deploy。 我有一个有2个容器的Circle CI付费方案。CircleCI:如何强制排队构建

enter image description here 当我推代码GitHub的sequently 2次,以后最后1分钟承诺,圆CI构建竞相对方。(#696#695都在同一时间运行时,我不久后推#696 #695)。
作为#695正在部署火力地堡云功能,#696失败消息:functions: HTTP Error: 400, An operation on function onInitiativeRemoved in region us-central1 in project init-dev-a7563 is already in progress. Please try again later.

我的目标是只运行在不同的分支2个容器在同一时间:主等。
我想在同一分支中只运行一个容器,而其他构建应该在同一分支中排队。

总之,我想使#696建成后#695

回答

0

我会简单地检查当前的集装箱号和当前分支:在集装箱号码

test: 
    override: 
    - ? 
     case $CIRCLE_NODE_INDEX in 
      0) if [ `git symbolic-ref --short HEAD` = master ]; then make master-test; fi ;; 
      1) if [ `git symbolic-ref --short HEAD` != master ]; then make other-test; fi ;; 
     esac 
     : 
     parallel: true 

运行测试的主0和试验容器数量的非主分支(ES)1.

0

有你可能想要做的两件事情:

  1. 只能部署default/master分支。
  2. 打开Auto-cancel redundant builds设置。

你不能选择只运行中CircleCI特定容器某些分支。你可以做一些类似博士学位的答案,但从技术上来说,这些构建仍在运行,然后早日死亡。

使用我提到的设置,当推送新提交时,排队和运行的构建将被取消。这里的设置说明:

用默认的系统分支之外,我们将自动取消任何排队或正在运行的基础上的一个分支,当一个新的构建被触发对同一个分支。此功能仅适用于通过推送到GitHub触发的构建。

该设置位于:Settings > Build Settings > Advanced Settings

- 里卡多ñ费利西亚诺
开发传播者,CircleCI