在 YAML 文件中使用 Gitlab CI/CD 变量

Use Gitlab CI/CD variables in YAML file

我有一个 YAML 配置文件,我需要在其中存储一个 API 密钥。因为我不想将我的 API 密钥提交到我的 Repo,所以我认为 Gitlab CI/CD 变量是一个不错的选择。我已经将 Gitlab UI 中的变量配置为:

TOKEN = "123"

我的 .gitlab.ci.yml 文件包含:

image:
  name: xxx
variables:
  P_TOKEN: ${TOKEN}

我的 YAML 文件有:

spec:
  command: test.sh
  env_vars:
  - TOKEN=${P_TOKEN}

但它只是将 YAML 文件中的 TOKEN 设置为 ${P_TOKEN} 而不是 ${P_TOKEN} 的内容。如果我在我的 CI/CD 管道中回显我的变量,它设置正确。

因此您的 YAML 文件实际上是 YAML 文件的模板。您需要 运行 在其之上安装某种模板引擎才能替换 ${P_TOKEN} 占位符。

一个使用 sed 的非常简单的示例可能足以满足您的用例:

sed -i "s/${P_TOKEN}/$TOKEN/" your_file.yaml