我可以将 .env 文件中的变量传递到 .gitlab-ci.yml
Can I pass a variable from .env file into .gitlab-ci.yml
我是 CI/CD 的新手,基本上我正在尝试将此工作添加到 Gitlab CI/CD,它将 运行 通过回购寻找秘密泄漏。它需要一些 API 键传递到那里。我能够直接将此密钥插入 .gitlab-ci.yml 并且它按预期工作 - 作业失败并显示这是由于该密钥在该文件中而发生的。
但我希望将此 API 密钥存储在 .env 文件中,该文件不会被推送到远程仓库并以某种方式将其拉入 .gitlab-ci.yml 文件从那里开始。
这是我的
stages:
- scanning
gitguardian scan:
variables:
GITGUARDIAN_API_KEY: ${process.env.GITGUARDIAN_API_KEY}
image: gitguardian/ggshield:latest
stage: scanning
script: ggshield scan ci
管道失败并显示此消息:Error: Invalid API key.
所以我假设我将它传递给变量的方式是错误的。
CI 变量应该在 gitlab-runner(机器或容器)中作为环境变量可用,它们要么像预定义变量列表 here 那样由 Gitlab 预定义和填充,要么您在存储库或 gitlab 组的设置中添加 Settings > CI/CD > Add Variable.
添加变量后你可以使用下面的语法,你可以通过回显来测试变量是否有正确的值。
variables:
GITGUARDIAN_API_KEY: "$GITGUARDIAN_API_KEY"
script:
- echo "$GITGUARDIAN_API_KEY"
- ggshield scan ci
我是 CI/CD 的新手,基本上我正在尝试将此工作添加到 Gitlab CI/CD,它将 运行 通过回购寻找秘密泄漏。它需要一些 API 键传递到那里。我能够直接将此密钥插入 .gitlab-ci.yml 并且它按预期工作 - 作业失败并显示这是由于该密钥在该文件中而发生的。
但我希望将此 API 密钥存储在 .env 文件中,该文件不会被推送到远程仓库并以某种方式将其拉入 .gitlab-ci.yml 文件从那里开始。
这是我的
stages:
- scanning
gitguardian scan:
variables:
GITGUARDIAN_API_KEY: ${process.env.GITGUARDIAN_API_KEY}
image: gitguardian/ggshield:latest
stage: scanning
script: ggshield scan ci
管道失败并显示此消息:Error: Invalid API key.
所以我假设我将它传递给变量的方式是错误的。
CI 变量应该在 gitlab-runner(机器或容器)中作为环境变量可用,它们要么像预定义变量列表 here 那样由 Gitlab 预定义和填充,要么您在存储库或 gitlab 组的设置中添加 Settings > CI/CD > Add Variable.
添加变量后你可以使用下面的语法,你可以通过回显来测试变量是否有正确的值。
variables:
GITGUARDIAN_API_KEY: "$GITGUARDIAN_API_KEY"
script:
- echo "$GITGUARDIAN_API_KEY"
- ggshield scan ci