【问题标题】:How to pass variables from a PowerShell task to job and stages如何将变量从 PowerShell 任务传递到作业和阶段
【发布时间】:2021-01-21 22:48:12
【问题描述】:

我试图了解如何在 Azure Pipeline 任务、作业和阶段之间传递环境变量。根据文档,我创建了一个 PowerShell 任务来定义变量,但是在我的任务完成后我似乎看不到它们。这是一个 sn-p,它显示了我创建的阶段,包括作业和任务。我正在尝试在“PassVariable”任务中设置 FOO 变量,然后从“PowerShell”任务中访问它。

不幸的是,FOO 从未通过。我做错了什么?

stages:
- stage: Test
  displayName: Test
  jobs:
  - job: SetSemVer
    displayName: 'Test Var Passing'
    steps:
    
    - task: PowerShell@2
      displayName: 'Pass Variable'
      name: PassVariable
      inputs:
        targetType: 'inline'
        script: |
          echo "##vso[task.setvariable variable=FOO;isOutput=true]Hello World)"

    - task: PowerShell@2
      displayName: 'PowerShell Script'
      name: PowerShellTask
      env:
        myVar: $FOO
      inputs:
        targetType: 'inline'
        script: |
          Write-Host "Foo: $FOO"

【问题讨论】:

    标签: azure-pipelines


    【解决方案1】:

    您在 power shell 任务中定义名称,我们需要通过$($env:PASSVARIABLE_FOO)$(PassVariable.FOO) 打印变量而不是$FOO。检查这个doc

    另外,我们可以通过 bash cmd printenv 打印变量,查看脚本中定义的变量

    YAML 示例

    trigger: none
    stages:
    - stage: Test
      displayName: Test
      jobs:
      - job: SetSemVer
        displayName: 'Test Var Passing'
        steps:
        - task: PowerShell@2
          displayName: 'Pass Variable'
          name: PassVariable
          inputs:
            targetType: 'inline'
            script: |
              echo "##vso[task.setvariable variable=FOO;isOutput=true]Hello World"
        
        - task: Bash@3
          inputs:
            targetType: 'inline'
            script: 'printenv'
            
        - task: PowerShell@2
          displayName: 'PowerShell Script'
          name: PowerShellTask
          env:
            myVar: $FOO
          inputs:
            targetType: 'inline'
            script: |
              Write-Host "Foo: $($env:PASSVARIABLE_FOO)"
    

    结果:

    【讨论】:

      猜你喜欢
      • 2015-01-14
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-02
      • 2015-12-29
      相关资源
      最近更新 更多