如何在Bitbucket Pipelines脚本中获取并查看当前分支名称?
解决Bitbucket Pipelines中无法打印BITBUCKET_BRANCH变量的问题
遇到这种情况大概率是YAML解析器在搞事情——当你直接写- echo $BITBUCKET_BRANCH时,YAML会尝试把$BITBUCKET_BRANCH当作自身的变量解析,导致shell拿到的命令不是你预期的样子,自然没法输出变量实际内容。试试下面几种方法来修复:
方法1:用单引号包裹命令
把echo命令用单引号括起来,这样YAML会把整个字符串当作纯文本,不会解析里面的$符号,交给shell执行时就能正常替换环境变量了:
pipelines: default: - step: script: - 'echo 当前分支名称:$BITBUCKET_BRANCH'
方法2:转义$符号
如果习惯用双引号,就给$前面加个反斜杠转义,明确告诉YAML不要处理这个符号,把变量解析的工作交给shell:
pipelines: default: - step: script: - "echo 当前分支名称:\$BITBUCKET_BRANCH"
方法3:开启shell调试模式
如果想更直观地看到命令执行的细节,可以用set -x开启shell的调试模式,它会打印出每个命令执行时的实际内容(包括变量替换后的结果),方便你排查问题:
pipelines: default: - step: script: - set -x - echo $BITBUCKET_BRANCH
额外注意:拉取请求流水线的特殊情况
如果你的流水线是由拉取请求触发的,BITBUCKET_BRANCH变量是不会被设置的!这时候要改用BITBUCKET_PR_SOURCE_BRANCH(获取PR的源分支)或者BITBUCKET_PR_DESTINATION_BRANCH(获取PR的目标分支)来获取分支名称。
内容的提问来源于stack exchange,提问作者Shvalb
相关产品推荐
相关产品推荐

