Невозможно обновить переменные в сценарии PowerShell файла yml Azure Devops

Я просмотрел официальный документ Microsoft и попробовал именно то, что там определено. Пробовал и Write-Host, и echo, но обновить переменные все равно не удалось.

Вот ссылка: https://learn.microsoft.com/en-us/azure/devops/pipelines/process/set-variables-scripts?view=azure-devops&tabs=powershell

Но добиться этого не удалось.

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"
        

🤔 А знаете ли вы, что...
С PowerShell можно управлять файлами, реестром, службами, процессами и многими другими аспектами Windows.


50
1

Ответ:

Решено

Обратитесь к этому документу: Установка переменных в скриптах

Сценарий в вашем конвейере может определить переменную, чтобы ее можно было использовать на одном из последующих шагов конвейера.

Когда вы используете команду для обновления переменных конвейера, она не будет работать для текущей задачи, но значения можно использовать в следующих задачах.

Вот пример обновления переменных и использования их в следующих задачах:

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 

Результат:


Интересные вопросы для изучения

Как обновить балансировщик нагрузки Azure с базового до стандартного в Terraform?Приложения логики Azure — массив переменныхКак создать виртуальную машину с использованием шаблона ARM, в котором на изображение имеется ссылка из галереи вычислений Azure?Получение ошибки «Azure.Storage.Queues: значение не может быть нулевым» в функции Azure с триггером BLOB-объектаФабрика данных Azure (ADF), создайте набор данных CSV с динамическим путем к файлуОтсутствует терминатор в PowerShell CLI в цикле for с использованием расширенных переменныхКак получить доступ к защищенной переменной в свойстве условия задачи Powershell в конвейере AzurePowershell, как отображать только имена каталогов (кроме одного) и подкаталогов?Переименуйте файлы последовательно, и если файл уже существует (конфликт имен), просто увеличьте итератор, чтобы дать файлу новое имяКак преобразовать определенные символы в Unicode из BATCH/Powershell