如何在同一作业中的任务之间更改 YAML 变量的值
How to change the value of a YAML variable between tasks inside the same job
如何通过任务在YAML文件中设置YAML变量的新值,后续任务将使用powershell显示新值? (两个 任务在同一个作业中 )
我正在尝试使用以下代码,但 它不起作用。 second/subsequent 任务仍然获得初始值,即使第一个任务为该 YAML 变量设置了新值
stages:
- stage: tst
displayName: tst_stage
jobs:
- deployment:
displayName: 'test 1'
environment: 'test 1'
variables:
- name: someName
value: "someValue"
第一个任务set/update变量的值:
- 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
将这行代码更改为:
echo "##vso[task.setvariable variable=someName;isOutput=true]$newValue"
至:
Write-Host "##vso[task.setvariable variable=someName;]$newValue"
如何通过任务在YAML文件中设置YAML变量的新值,后续任务将使用powershell显示新值? (两个 任务在同一个作业中 )
我正在尝试使用以下代码,但 它不起作用。 second/subsequent 任务仍然获得初始值,即使第一个任务为该 YAML 变量设置了新值
stages:
- stage: tst
displayName: tst_stage
jobs:
- deployment:
displayName: 'test 1'
environment: 'test 1'
variables:
- name: someName
value: "someValue"
第一个任务set/update变量的值:
- 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
将这行代码更改为:
echo "##vso[task.setvariable variable=someName;isOutput=true]$newValue"
至:
Write-Host "##vso[task.setvariable variable=someName;]$newValue"