Gitlab CI 作业中的变量
Gitlab CI variables in jobs
我在定义工作时遇到了一些问题。我正处于定义我的管道的早期阶段,我正在尝试用变量解决我的问题 :)。我在 gcp/live/development 下有几个子文件夹,我正在尝试 cd
它们,然后 运行 terraform 东西:
.plan-development:
variables:
ENVIRONMENT: "development"
TERRAFORM_DEVELOPMENT_PATH: "gcp/live/development"
TF_ROOT: ${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development}
stage: plan-development
script:
- cd ${TF_ROOT}
- gitlab-terraform plan
- gitlab-terraform plan-json
artifacts:
name: plan-${ENVIRONMENT}-${CI_JOB_NAME%-plan-development}
paths:
- ${TF_ROOT}/plan.cache
reports:
terraform: ${TF_ROOT}/plan.json
但是根据我失败的管道,第一个脚本部分 cd ${TF_ROOT}
没有进入 gcp/live/development/cloud-nat
的预期文件夹。
我有一些调试输出,它告诉我以下内容:
$ cd ${TF_ROOT}
$ pwd && ls
/builds/b79ya_1j/0/devops/terraform/gcp/live/development
cloud-nat
firewall
gke
vpc
$ echo "${CI_JOB_NAME%-plan-development}"
cloud-nat
我是否遗漏了结合两个变量 (TF_ROOT: ${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development}
) 的内容?
希望你能帮帮我。
Am I missing something combing two variables (TF_ROOT:
${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development})?
问题是 variables section
中的 Gitlab 不执行 bash 操作,就像您在此处尝试的那样
${CI_JOB_NAME%-plan-development}
Gitlab literally
搜索名为CI_JOB_NAME%-plan-development
的变量
这就是为什么当它创建 TF_ROOT 变量时它的值为 gcp/live/development/
因为它找不到名为 CI_JOB_NAME%-plan-development
[= 的变量17=]
我在定义工作时遇到了一些问题。我正处于定义我的管道的早期阶段,我正在尝试用变量解决我的问题 :)。我在 gcp/live/development 下有几个子文件夹,我正在尝试 cd
它们,然后 运行 terraform 东西:
.plan-development:
variables:
ENVIRONMENT: "development"
TERRAFORM_DEVELOPMENT_PATH: "gcp/live/development"
TF_ROOT: ${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development}
stage: plan-development
script:
- cd ${TF_ROOT}
- gitlab-terraform plan
- gitlab-terraform plan-json
artifacts:
name: plan-${ENVIRONMENT}-${CI_JOB_NAME%-plan-development}
paths:
- ${TF_ROOT}/plan.cache
reports:
terraform: ${TF_ROOT}/plan.json
但是根据我失败的管道,第一个脚本部分 cd ${TF_ROOT}
没有进入 gcp/live/development/cloud-nat
的预期文件夹。
我有一些调试输出,它告诉我以下内容:
$ cd ${TF_ROOT}
$ pwd && ls
/builds/b79ya_1j/0/devops/terraform/gcp/live/development
cloud-nat
firewall
gke
vpc
$ echo "${CI_JOB_NAME%-plan-development}"
cloud-nat
我是否遗漏了结合两个变量 (TF_ROOT: ${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development}
) 的内容?
希望你能帮帮我。
Am I missing something combing two variables (TF_ROOT: ${TERRAFORM_DEVELOPMENT_PATH}/${CI_JOB_NAME%-plan-development})?
问题是 variables section
中的 Gitlab 不执行 bash 操作,就像您在此处尝试的那样
${CI_JOB_NAME%-plan-development}
Gitlab literally
搜索名为CI_JOB_NAME%-plan-development
这就是为什么当它创建 TF_ROOT 变量时它的值为 gcp/live/development/
因为它找不到名为 CI_JOB_NAME%-plan-development
[= 的变量17=]