Gitlab CI - 根据另一个变量计算变量名
Gitlab CI - Compute variable name based off another variable
我正在尝试使用一个部分编译自另一个变量(基于分支名称)的变量。我在 Gitlab 中配置了环境变量,如下所示:
Key: s3_bucket_development
Value: https://dev.my-bucket.com
Key: s3_bucket_production
Value: https://prod.my-bucket.com
我正在部署的分支称为开发分支,其想法是能够根据当前所在的分支动态调用 s3_bucket_development
变量。
到目前为止,我已经做到了这一点:
eval echo $s3_bucket_${CI_COMMIT_REF_NAME}
不幸的是,上面只输出 development
到控制台,而不是 $s3_bucket_development
的值,它应该是 https://dev.my-bucket.com
不确定我做错了什么?
从这个 link here 中复制了一点,但似乎不起作用
$ s3_bucket_development=test
$ CI_COMMIT_REF_NAME=development
$ eval echo $s3_bucket_${CI_COMMIT_REF_NAME}
test
您只需要对第一个 $
进行转义,这样它就不会被过早地解析为变量。
此外,由于这是 gitlab ci 的特例 ci,我认为您可能以错误的方式解决了问题。在gitlab中,可以设置gitlab变量,定义什么显示在哪里。
variables:
s3_bucket: $s3_bucket
environment:
name: $CI_COMMIT_REF_NAME
我正在尝试使用一个部分编译自另一个变量(基于分支名称)的变量。我在 Gitlab 中配置了环境变量,如下所示:
Key: s3_bucket_development
Value: https://dev.my-bucket.com
Key: s3_bucket_production
Value: https://prod.my-bucket.com
我正在部署的分支称为开发分支,其想法是能够根据当前所在的分支动态调用 s3_bucket_development
变量。
到目前为止,我已经做到了这一点:
eval echo $s3_bucket_${CI_COMMIT_REF_NAME}
不幸的是,上面只输出 development
到控制台,而不是 $s3_bucket_development
的值,它应该是 https://dev.my-bucket.com
不确定我做错了什么?
从这个 link here 中复制了一点,但似乎不起作用
$ s3_bucket_development=test
$ CI_COMMIT_REF_NAME=development
$ eval echo $s3_bucket_${CI_COMMIT_REF_NAME}
test
您只需要对第一个 $
进行转义,这样它就不会被过早地解析为变量。
此外,由于这是 gitlab ci 的特例 ci,我认为您可能以错误的方式解决了问题。在gitlab中,可以设置gitlab变量,定义什么显示在哪里。
variables:
s3_bucket: $s3_bucket
environment:
name: $CI_COMMIT_REF_NAME