我正在使用bitbucket管道来部署我的代码。我有多个环境。但是我想根据环境做不同的工作(dev test pre-prod prod)。我想知道是否有if-else条件方式帮助我减少重复的代码并使代码减少
答案 0 :(得分:0)
如果管道仅包含默认管道,它将在所有环境中执行。
您可以在管道中包含关键字来解决该问题。按照执行顺序,将类似于:
image: node:9.8.0
pipelines:
branches:
#here, i'm saying to execute the step below only on branchs
develop:
#Here, when branch 'develop'
- step:
script:
master:
#Here, when branch 'master'
- step:
name: Buid Prod
script:
[....]
您可以定义其他关键字以在执行步骤see more here, at docs
时告诉bitbucket答案 1 :(得分:0)
可以通过以下示例完成 -如果[];则 -#任务 -elif [];然后 -#任务 -其他 -#任务 -fi
答案 2 :(得分:0)
自定义(手动)管道的第一个解决方案:您必须在下拉列表like中添加变量,然后可以添加if语句来检查这些变量,如下所示:
pipelines:
custom:
Deploy:
- variables:
- name: Environment
- name: Other-Enviromnts
- step:
name: NEW-Service
script:
- some
- bash
- comands
- echo "$Environment"
- 'if [ -z Environment ]
then
echo " Environment variables is empty"
else
echo "deploy to $Environment"
fi'
在存储库中进行任何更改的情况下,用于管道自动构建的第二种解决方案:-您应在全局环境中为存储库中的管道设置此变量BITBUCKET_DEPLOYMENT_ENVIRONMENT
,并设置相同的link在第一个解决方案中提到过,并且使用了相同的管道,但是将custom
替换为default