我正在尝试访问在 Linux Docker 容器内运行的 TeamCity 上的 Cake 中的分支名称,但每当我尝试获取任何“配置参数”时,值都没有返回任何值。
在我的分支中,以下构建参数值在 TeamCity 上可见:
配置参数
- vcsroot.branch: refs/heads/master
- teamcity.build.branch:5/合并
环境变量
- env.vcsroot.branch: 5/合并
env.vcsroot.branch变量的值为 %teamcity.build.branch%。
我的蛋糕脚本只是试图吐出值,而下面的所有值都返回空值:
var branch = EnvironmentVariable("vcsroot.branch");
var tcbranch = EnvironmentVariable("teamcity.build.branch");
var agent = EnvironmentVariable("system.agent.name");
var confName = EnvironmentVariable("system.teamcity.buildConfName");
var buildId = EnvironmentVariable("teamcity.build.id");
var vcsRootBranch = EnvironmentVariable("vcsroot.Root_TemplatedVcsRoot1.branch");
var argOrEnv = ArgumentOrEnvironmentVariable("teamcity.build.branch", "vcsroot.branch", "Unfound");
Information($"vcsroot.branch = {branch}");
Information($"teamcity.build.branch = {tcbranch}");
Information($"system agent name = {agent}");
Information($"system TC build cof name= {confName}");
Information($"param buildId = {buildId}");
Information($"vcsroot template branch = {vcsRootBranch}");
Information($"test argument or env variables = {argOrEnv}");
实际输出:
[12:34:51][Step 1/2] vcsroot.branch =
[12:34:51][Step 1/2] teamcity.build.branch =
[12:34:51][Step 1/2] system agent name =
[12:34:51][Step 1/2] system TC build cof name=
[12:34:51][Step 1/2] param buildId =
[12:34:51][Step 1/2] vcsroot template branch =
[12:34:51][Step 1/2] test argument or env variables = Unfound
奇怪的是,在我们基于 Windows 的非 docker TeamCity 代理上,这些值似乎返回正常。我有一种感觉,我在这里遗漏了一些非常简单的东西,但在 Cake、TeamCity 和 Docker 方面,我是一个相对的新手。任何帮助将不胜感激。谢谢!
编辑:澄清一下,大多数环境变量都按预期返回;我注意到唯一没有引用配置参数的参数。
请您参考如下方法:
对于环境变量,TeamCity 将非字母数字字符替换为“_”
即 vcsroot.branch 变为 vcsroot_branch
