我有很多 bash 脚本,其中包含通过管道传输到各种脚本中的各种变量。
我一直想知道是否可以提取由 Azure Pipeline 激活的 bash 脚本的输出作为管道运行时其余部分的管道变量?
示例:
foo=$(date + %Y%m%d_%H%M%S)
输出:20200219_143400,我想获取输出以供以后在管道上使用。
最佳答案
取决于您如何设计可以使用的管道 Azure Pipeline variables :
- 在同一个作业中:
- job: Job1
steps:
- bash: |
$WORKDIR/foo.sh
echo "##vso[task.setvariable variable=foo]$foo"
name: FooStep
- bash: |
$WORKDIR/nextscript.sh $(FooStep.foo)
name: NextScript
# ...
- 不同的工作:
- job: Job1
steps:
- bash: |
$WORKDIR/foo.sh
echo "##vso[task.setvariable variable=foo;isOutput=true]$foo"
name: FooStep
- job: Job2
dependsOn: Job1
steps:
- bash: |
$WORKDIR/job2script.sh $[ dependencies.Job1.outputs['FooStep.foo'] ]
name: Job2ScriptStep
# ...
因此,您需要使用 ##vso[task.setvariable]
将所有需要保存到输出的变量“打印到管道控制台”,然后将它们作为脚本参数值传递。
关于bash - 有没有办法在Azure Pipeline中提取bash脚本的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60300578/