有没有办法在Azure Pipeline中提取bash脚本的输出

Dor*_*may 4 bash azure azure-pipelines

我有很多 bash 脚本,其中包含通过管道传输到各种脚本中的各种变量。

我一直想知道是否可以提取由 Azure Pipeline 激活的 bash 脚本的输出作为管道运行时其余部分的管道变量?

示例: foo=$(date + %Y%m%d_%H%M%S)输出:20200219_143400,我想获取输出以供以后在管道上使用。

Iva*_*iev 9

根据您设计管道的方式,您可以使用Azure Pipeline 变量

  1. 在同一个工作中:
- job: Job1
  steps:
  - bash: |
      $WORKDIR/foo.sh
      echo "##vso[task.setvariable variable=foo]$foo"
    name: FooStep
  - bash: |
      $WORKDIR/nextscript.sh $(FooStep.foo)
    name: NextScript

# ...
Run Code Online (Sandbox Code Playgroud)
  1. 不同的工作:
- 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

# ...
Run Code Online (Sandbox Code Playgroud)

因此,您需要将##vso[task.setvariable]需要保存到输出的所有变量“打印到管道控制台”,然后将它们作为脚本参数值传递。