Bitbucket Pipeline配置:实现任意顺序部署至指定环境
问题
我配置了如下Bitbucket Pipeline,希望能够选择部署的目标环境。当前设置下必须先部署至Dev环境,才能部署至QA环境,我希望可以任意顺序部署至其中任一环境,请问是否可行?我曾尝试为各环境设置并行步骤,但没有效果。
原Pipeline配置:
options: max-time: 5 image: node:latest definitions: steps: - step: &build name: Build caches: - node script: - Build Script artifacts: - *.zip - step: &deploy name: Deploy to Dev deployment: Dev trigger: manual runs-on: - self.hosted - windows script: - Deploy Script pipelines: default: - parallel: - step: *build - step: *deploy - step: <<: *deploy name: Deploy to QA deployment: QA trigger: manual
解决方案
完全可行,你需要调整Pipeline的步骤结构,把两个部署步骤放到同一个并行块中,同时保证它们都能获取到Build步骤生成的产物。修改后的配置如下:
options: max-time: 5 image: node:latest definitions: steps: - step: &build name: Build caches: - node script: - Build Script artifacts: - *.zip - step: &deploy-dev name: Deploy to Dev deployment: Dev trigger: manual runs-on: - self.hosted - windows script: - Deploy Script - step: &deploy-qa name: Deploy to QA deployment: QA trigger: manual runs-on: - self.hosted - windows script: - Deploy Script pipelines: default: - step: *build - parallel: - step: *deploy-dev - step: *deploy-qa
核心调整点:
- 先单独执行Build步骤,确保它生成的部署产物(artifacts)能被后续步骤访问
- 将Dev和QA的部署步骤移入同一个
parallel块,这样两者就不再有强制的先后执行顺序 - 两个部署步骤都保留
trigger: manual,你可以在Pipeline运行时自由选择触发其中一个,或者按任意顺序触发两个 - 因为并行块在Build步骤之后执行,所以两个部署步骤都能正常获取到Build生成的文件
这样修改后,你就可以不受顺序限制,直接选择部署到Dev或QA环境了。
内容的提问来源于stack exchange,提问作者GREGGROUNDHOG
相关产品推荐
相关产品推荐

