1

如何通过任务在 YAML 文件中设置 YAML 变量的新值,后续任务将使用 powershell 显示新值?(两个任务都在同一个工作中

我正在尝试使用下面的代码,但它不起作用。即使第一个任务为该 YAML 变量设置了新值,第二个/后续任务仍会获得初始值

stages:
  - stage: tst
    displayName: tst_stage

    jobs:
      - deployment: 
        displayName: 'test 1'
        environment: 'test 1'

        variables:
        - name: someName
          value: "someValue"

第一个将设置/更新变量值的任务

- task: PowerShell@2
    name: "task1"
    displayName: this is task1
    inputs:

      targetType: 'inline'
      script: |
        $newValue = "ThisIsNewValue"
        echo "##vso[task.setvariable variable=someName;isOutput=true]$newValue"

第二个任务将显示具有新值的变量

- task: PowerShell@2
    name: "task2"
    displayName: this is task2
    inputs:

      targetType: 'inline'
      script: |
        echo "the new value of the variable is : $(someName)"

现在任务 2 的预期输出应该是:

the new value of the variable is : ThisIsNewValue

但由于某种原因,我得到的实际输出是初始值:

the new value of the variable is : someValue
4

1 回答 1

1

将这行代码从:

echo "##vso[task.setvariable variable=someName;isOutput=true]$newValue"

至 :

Write-Host "##vso[task.setvariable variable=someName;]$newValue"
于 2021-09-29T16:26:04.187 回答