如何在 windows 上使用 gitlab-ci-multi-runner 访问 gitlab-ci.yml 中的变量
How to access variables in gitlab-ci.yml using gitlab-ci-multi-runner on windows
我无法找到如何访问 gitlab-ci.yml
文件提供的构建脚本中的变量。
我试过两种方式声明变量:
- GitLab Web 界面中的私有变量 CI
config.toml
中的变量 overrides/apennding
我尝试在我的 gitlab-ci.yml
-files 命令中访问它们:
msbuild ci.msbuild [...] /p:Configuration=Release;NuGetOutputDir="$PACKAGE_SOURCE"
其中 $PACKAGE_SOURCE
是所需的变量 (PACKAGE_SOURCE
) 但它不起作用(它似乎没有被替换)。手动执行相同的命令按预期工作(用其内容替换变量名称)
是否需要一些我不知道的其他语法?
我试过:
$PACKAGE_SOURCE
$(PACKAGE_SOURCE)
${PACKAGE_SOURCE}
PS:验证跑步者不会引发任何问题,如果这很重要的话。
我猜你正在使用 Windows 作为跑步者?我自己也遇到了同样的问题,甚至无法使以下内容正常工作:
script:
- echo $MySecret
但是,阅读 Gitlab 文档它有一个条目 syntax of environment variables in job scripts:
To access environment variables, use the syntax for your Runner’s shell
这是有道理的,因为给出的大多数示例都是针对 bash 跑步者的。对于我的 windows 跑步者,它使用 %variable%
.
我将我的脚本更改为以下,这对我有用。 (通过观察构建输出确认。)
script:
- echo %MySecret%
如果您正在为您的跑步者使用 powershell,则语法为 $env:MySecret
除了上面标记为正确的答案中所说的内容外,您还应该检查gitlab设置中的CI变量是否设置为“受保护”。如果是这样,您可能无法在不受保护的分支中使用它们。
“您可以保护项目、组或实例 CI/CD 变量,使其仅传递到受保护分支或受保护标签上的管道 运行。” -> 检查它 https://docs.gitlab.com/ee/ci/variables/index.html#protect-a-cicd-variable
我无法找到如何访问 gitlab-ci.yml
文件提供的构建脚本中的变量。
我试过两种方式声明变量:
- GitLab Web 界面中的私有变量 CI
config.toml
中的变量 overrides/apennding
我尝试在我的 gitlab-ci.yml
-files 命令中访问它们:
msbuild ci.msbuild [...] /p:Configuration=Release;NuGetOutputDir="$PACKAGE_SOURCE"
其中 $PACKAGE_SOURCE
是所需的变量 (PACKAGE_SOURCE
) 但它不起作用(它似乎没有被替换)。手动执行相同的命令按预期工作(用其内容替换变量名称)
是否需要一些我不知道的其他语法?
我试过:
$PACKAGE_SOURCE
$(PACKAGE_SOURCE)
${PACKAGE_SOURCE}
PS:验证跑步者不会引发任何问题,如果这很重要的话。
我猜你正在使用 Windows 作为跑步者?我自己也遇到了同样的问题,甚至无法使以下内容正常工作:
script:
- echo $MySecret
但是,阅读 Gitlab 文档它有一个条目 syntax of environment variables in job scripts:
To access environment variables, use the syntax for your Runner’s shell
这是有道理的,因为给出的大多数示例都是针对 bash 跑步者的。对于我的 windows 跑步者,它使用 %variable%
.
我将我的脚本更改为以下,这对我有用。 (通过观察构建输出确认。)
script:
- echo %MySecret%
如果您正在为您的跑步者使用 powershell,则语法为 $env:MySecret
除了上面标记为正确的答案中所说的内容外,您还应该检查gitlab设置中的CI变量是否设置为“受保护”。如果是这样,您可能无法在不受保护的分支中使用它们。
“您可以保护项目、组或实例 CI/CD 变量,使其仅传递到受保护分支或受保护标签上的管道 运行。” -> 检查它 https://docs.gitlab.com/ee/ci/variables/index.html#protect-a-cicd-variable