jun*_*ent 2 continuous-integration circleci-2.0
我正在使用 circleCI 来部署生产或暂存环境。我想对与每个环境对应的每个分支的上下文使用相同的作业,因为我不喜欢为每个环境编写相同的代码。
我想像下面这样写。
version: 2
jobs:
deploy:
docker:
- image: google/cloud-sdk
steps:
- checkout
- run: <deploying commands>
workflows:
version: 2
deploy:
jobs:
- deploy:
filters:
branches:
only:
- master
context: production
- deploy:
filters:
branches:
only:
- develop
context: staging
Run Code Online (Sandbox Code Playgroud)
有一个更好的选择是不要创建多个工作流,这会导致复杂性,特别是在您的工作流运行多个作业的情况下,有些只针对特定分支触发,有些则不会。
YAML 是一种数据序列化语言,因此您仍然可以使用其功能来简化声明。
根据你的例子,我们可能有这样的事情:
version: 2
jobs:
deploy: &deploy
docker:
- image: google/cloud-sdk
steps:
- checkout
- run: <deploying commands>
deploy-production:
<<: *deploy
deploy-staging:
<<: *deploy
workflows:
version: 2
deploy-production:
jobs:
- deploy-production:
filters:
branches:
only:
- master
context: production
- deploy-staging:
filters:
branches:
only:
- develop
context: staging
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2077 次 |
| 最近记录: |