Octopus Deploy 可以有变量中的变量吗
Can Octopus Deploy have variables in variables
这是系统 Octopus 部署变量:
#{Octopus.Action[Deploy To Server].Output.Package.InstallationDirectoryPath}
文本“部署到服务器”是我的项目中将 Nuget 包部署到服务器的步骤的名称。此变量给出了 NugetPackage 的安装位置。
我想知道是否可以使它更通用:
#{Octopus.Action[#{DeploymentStep}].Output.Package.InstallationDirectoryPath}
#{DeploymentStep}本身就是一个变量,值为"Deploy to Server"?
我试过了,但它在尝试 运行 时没有进行替换。但我希望变量替换中的变量有不同的语法。
(我想这样做是为了将其设为步骤模板的默认值。)
可以做到;但是你需要使用稍微不同的语法!
变量替换语法: http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntax
$deploymentStep = "#{DeploymentStep}"
$installationDirectory = $OctopusParameters["Octopus.Action[$deploymentStep].Output.Package.InstallationDirectoryPath"]
刚刚遇到了同样的问题,但通过一些测试,我让它在 1 班轮中工作。
您需要用美元将内部变量封装在括号中,并且您需要将变量中的双引号更改为单引号,这样它就不会抱怨引号不匹配。外双引号内单引号
下面的示例获取带有章鱼变量的步骤名称以及机器名称 运行 变量以生成结果:
$OctopusParameters["Octopus.Action[$($OctopusParameters['Octopus.Step.Name'])].Output[$($OctopusParameters['Octopus.Machine.Name'])].MyVarFromMachineFromStep"]
这是系统 Octopus 部署变量:
#{Octopus.Action[Deploy To Server].Output.Package.InstallationDirectoryPath}
文本“部署到服务器”是我的项目中将 Nuget 包部署到服务器的步骤的名称。此变量给出了 NugetPackage 的安装位置。
我想知道是否可以使它更通用:
#{Octopus.Action[#{DeploymentStep}].Output.Package.InstallationDirectoryPath}
#{DeploymentStep}本身就是一个变量,值为"Deploy to Server"?
我试过了,但它在尝试 运行 时没有进行替换。但我希望变量替换中的变量有不同的语法。
(我想这样做是为了将其设为步骤模板的默认值。)
可以做到;但是你需要使用稍微不同的语法!
变量替换语法: http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntax
$deploymentStep = "#{DeploymentStep}"
$installationDirectory = $OctopusParameters["Octopus.Action[$deploymentStep].Output.Package.InstallationDirectoryPath"]
刚刚遇到了同样的问题,但通过一些测试,我让它在 1 班轮中工作。 您需要用美元将内部变量封装在括号中,并且您需要将变量中的双引号更改为单引号,这样它就不会抱怨引号不匹配。外双引号内单引号
下面的示例获取带有章鱼变量的步骤名称以及机器名称 运行 变量以生成结果:
$OctopusParameters["Octopus.Action[$($OctopusParameters['Octopus.Step.Name'])].Output[$($OctopusParameters['Octopus.Machine.Name'])].MyVarFromMachineFromStep"]