bitbucket pipleline中是否有if-else块?

时间:2019-06-26 07:10:28

标签: bitbucket-pipelines

我正在使用bitbucket管道来部署我的代码。我有多个环境。但是我想根据环境做不同的工作(dev test pre-prod prod)。我想知道是否有if-else条件方式帮助我减少重复的代码并使代码减少

3 个答案:

答案 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