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
我目前有一个 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