Я просмотрел официальный документ Microsoft и попробовал именно то, что там определено. Пробовал и Write-Host, и echo, но обновить переменные все равно не удалось.
Но добиться этого не удалось.
variables:
- name: majorVersion
value: "0"
- name: minorVersion
value: "0"
- name: patchVersion
value: "0"
- name: counterNumber
value: "0"
- name: update
value: false
jobs:
- job: Build
pool:
vmImage: 'windows-latest'
steps:
- powershell: |
echo "##vso[task.setvariable variable=update]true"
Write-Host "##vso[task.setvariable variable=majorVersion;]$versionParts[0]"
Write-Host "##vso[task.setvariable variable=minorVersion;]$versionParts[1]"
Write-Host "##vso[task.setvariable variable=patchVersion;]$patch"
Обратитесь к этому документу: Установка переменных в скриптах
Сценарий в вашем конвейере может определить переменную, чтобы ее можно было использовать на одном из последующих шагов конвейера.
Когда вы используете команду для обновления переменных конвейера, она не будет работать для текущей задачи, но значения можно использовать в следующих задачах.
Вот пример обновления переменных и использования их в следующих задачах:
variables:
- name: majorVersion
value: "0"
- name: minorVersion
value: "0"
- name: patchVersion
value: "0"
- name: counterNumber
value: "0"
- name: update
value: false
jobs:
- job: Build
pool:
vmImage: 'windows-latest'
steps:
- powershell: |
$versionParts = @(1,2)
$patch = 3
$major = $versionParts[0]
$minor = $versionParts[1]
echo "##vso[task.setvariable variable=update]true"
echo "##vso[task.setvariable variable=majorVersion;]$major"
echo "##vso[task.setvariable variable=minorVersion;]$minor"
echo "##vso[task.setvariable variable=patchVersion;]$patch"
displayName: Update Variable
- powershell: |
echo $(update)
echo $(majorVersion)
echo $(minorVersion)
echo $(patchVersion)
displayName: Use Variable
Результат: