与其他变量连接时,从GitLab中的秘密变量获取值

时间:2019-08-29 14:10:29

标签: gitlab gitlab-ci gitlab-ci-runner

我在Gitlab变量(设置> CI / CD>变量)中有一个变量名URL_DEV。我想使用$ {CI_ENVIRONMENT_NAME}获取值。 示例:echo URL _ $ {CI_ENVIRONMENT_NAME}应该提供来自Gitlab变量的值,但是它以URL_DEV的形式提供输出,但不会输出该值。

#Tried below commands
$ echo $URL_${CI_ENVIRONMENT_NAME}
output: DEV

$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $APP
output: URL_DEV

$APP="URL_${CI_ENVIRONMENT_NAME}"
echo $(echo $APP)
output: URL_DEV

预期输出应为变量的值

echo $URL_${CI_ENVIRONMENT_NAME}
expected output: https://www.example.com

1 个答案:

答案 0 :(得分:0)

您需要使用bash indirect expension。此代码段有效:

URL_DEV="https://google.com"
ENV="DEV"
SITE="URL_"$ENV
echo $SITE
URL_DEV

curl -k ${!SITE}

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="https://www.google.com/">here</A>.
</BODY></HTML>