在 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
我有一个 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