CircleCI:构建测试部署过程的部分或阶段是否可以有条件

CircleCI: Can sections or phases of the build test deploy process be conditional

我目前有一个 circle.yml 包含构建、测试和部署部分。我想将构建参数化为 运行 与此类似的夜间自动化 link https://circleci.com/docs/1.0/nightly-builds/

当运行每晚自动化时,我想避免运行将部署部分全部放在一起。这可能吗?

要回答标题中的问题,不,至少现在还没有。但是,在阶段内,您可以获得想要的结果。

当运行每晚构建时,我假设这意味着您正在使用 CircleCI API,确保传递某种环境变量。 BUILD_TYPE=nightly 之类的东西会起作用。

然后,在该分支的部署部分(我假设这里是 master?),使用 Bash 检查变量 exists/is 是否设置为您期望的值。如果是这样,什么也不做。如果没有,运行部署命令。

一个例子:

deployment:
  production:
    branch: master
    commands:
      - |
        if [[ $BUILD_TYPE == "nightly" ]]; then
          echo "Skipping deployment"
        else
          rsync -va --delete /myapp/ user@myserver.net:/myapp
        fi