最近使用gitlabCI/CD,需要根据当前分支获取不同环境的harbor镜像仓库,当前分支有devtestpremaster
,分支和gitlab变量指向如下:

分支 gitlab变量 gitlab 变量值
dev CI_DEV_REGISTRY https://dev-harbor.xxx.com
test CI_TEST_REGISTRY https://test-harbor.xxx.com
pre CI_PRE_REGISTRY https://pre-harbor.xxx.com
master CI_PROD_REGISTRY https://prod-harbor.xxx.com

示例代码:

# 默认变量
BRANCH=master
# 自定义变量
CI_DEV_REGISTRY=https://dev-harbor.xxx.com
CI_PROD_REGISTRY=https://prod-harbor.xxx.com

# 转大写(2中方式都可以)
ENV=`echo ${BRANCH} | tr '[:lower:]' '[:upper:]'`
#ENV=`echo $BRANCH | tr 'a-z' 'A-Z'`
if [ "$BRANCH"x = "master"x ]; then
  ENV=PROD
fi

REGISTRY=`eval echo '$'"CI_${ENV}_REGISTRY"`

echo $REGISTRY