在下面的示例中,我能够访问 的输出变量jobA,但不能访问 的输出变量deploymentA。主要区别在于这jobA是“正常”作业和deploymentA部署作业。
jobs:
- deployment: deploymentA
environment: Test
strategy:
runOnce:
deploy:
steps:
- checkout: none
- pwsh: |
echo "##vso[task.setvariable variable=someVar;isOutput=true]someValue"
name: someName
- job: jobA
steps:
- checkout: none
- pwsh: |
echo "##vso[task.setvariable variable=someVarA;isOutput=true]someValueA"
name: someNameA
- job: jobB
dependsOn:
- deploymentA
- jobA
variables:
deployJobVar: $[dependencies.deploymentA.outputs['someName.someVar']]
jobVar: $[dependencies.jobA.outputs['someNameA.someVarA']]
steps:
- checkout: none
- pwsh: |
echo "$(deployJobVar)" # will display empty string
echo "$(jobVar)" # will display 'someValueA'
Run Code Online (Sandbox Code Playgroud)
我发现的最好的提示是:
如果您要从矩阵或切片设置变量,那么要引用该变量,您必须包含作业的名称以及从下游作业访问它时的步骤。
不完全相同,但我尝试在前面添加类似的标识符,但以下方法均无效:
$[dependencies.deploymentA.outputs['runOnce.someName.someVar']]
$[dependencies.deploymentA.outputs['deploy.someName.someVar']]
$[dependencies.deploymentA.outputs['runOnce.deploy.someName.someVar']]
Run Code Online (Sandbox Code Playgroud)
有谁知道访问部署作业输出的特定变量的正确语法?或者,有谁知道如何显示所有输出的变量?
这些文档目前还不完整,但只要发挥一点想象力,我们就可以注意到设置多作业输出变量的第二部分适用。
您需要做的就是使用作业名称作为前缀来引用变量:deploymentA.someName.someVar而不是someName.someVar:
deployJobVar: $[dependencies.deploymentA.outputs['deploymentA.someName.someVar']]
Run Code Online (Sandbox Code Playgroud)
是的,deploymentA出现两次。
| 归档时间: |
|
| 查看次数: |
1694 次 |
| 最近记录: |