【问题标题】:Pass output to new job in azure release pipeline将输出传递给 azure 发布管道中的新作业
【发布时间】:2021-06-01 16:05:08
【问题描述】:

我正在寻求一些帮助,将 powershell 脚本的输出传递到发布管道中的另一个任务。

工作流程如下:

我需要将一个从 powershell 脚本创建的变量传递到手动干预文本消息中。

在 yaml 管道中,我会使用

  Write-Host "##vso[task.setvariable variable=myvar;isOutput=true]foo"

但是,为了访问它,它仅在前一个任务是依赖项的情况下才有效,我不相信您可以在发布管道中执行此操作。

【问题讨论】:

    标签: azure azure-devops azure-pipelines devops release


    【解决方案1】:

    我认为这不是真的。在 YAML 管道中,您可以在根、阶段和作业级别设置变量。您还可以使用variable group 使变量在多个管道中可用。一些任务定义了输出变量,您可以在下游步骤、作业和阶段中使用这些变量。

    使用 YAML,您可以使用 dependencies 跨作业和阶段访问变量。默认情况下,管道中的每个阶段都依赖于 YAML 文件中它之前的阶段。如果您需要引用当前阶段之前的阶段,您可以通过向阶段添加 dependsOn 部分来覆盖此自动默认值。

    例如,假设我们有一个名为MyTask 的任务,它设置了一个名为MyVar 的输出变量。在不同的工作中使用输出:

    jobs:
     - job: A
      steps:
      # assume that MyTask generates an output variable called "MyVar"
      # (you would learn that from the task's documentation)
     - task: MyTask@1
        name: ProduceVar  # because we're going to depend on it, we need to name the step
     - job: B
      dependsOn: A
      variables:
        # map the output variable from A into this job
        varFromA: $[ dependencies.A.outputs['ProduceVar.MyVar'] ]
      steps:
     - script: echo $(varFromA) # this step uses the mapped-in variable
    

    有关语法和示例的更多详细信息,请查看以下文章:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 2022-01-21
      • 2019-10-24
      • 2022-06-22
      • 2020-09-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多