Azure - создание логических переменных и использование их в нескольких задачах - PullRequest
0 голосов
/ 08 апреля 2020

Я хочу определить одну булеву переменную для этапа и хочу установить ее (True / False) внутри другого сценария в одной из задач этапа и хочу использовать эту переменную в качестве условия в других последующих задачах. Как можно Я делаю это?

Мой azure конвейер основан на YAML.

1 Ответ

1 голос
/ 08 апреля 2020

Я хочу определить одну булеву переменную для этапа и хочу установить ее (True / False) внутри другого сценария в одной из задач этапа и хочу использовать эту переменную в качестве условия в других последующих задачах. , Как я могу это сделать?

Вот один пример:

stages:
- stage: Build
  variables: 
    Key : false
  jobs:
  - job: Build
    continueOnError: true
    steps:
    - script: echo Key:'$(Key)'

    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: |
          # Write your PowerShell commands here.

          Write-Host "##vso[task.setvariable variable=Key;]true"

    - task: CmdLine@2
      inputs:
        script: echo Key:'$(Key)'

    - task: CmdLine@2
      condition: and(succeeded(), eq(variables['Key'], 'true'))
      inputs:
        script: |
          echo Write your commands here

          echo Hello world

У меня есть одна переменная этапа Key, ее значение равно false. Затем в задаче PS я использую task.setvariable, чтобы переопределить значение ключа. Примечание: Таким образом, новое значение true является значением области действия. Если у вас есть несколько заданий на одном этапе, это не может работать хорошо.

Update1:

- task: PowerShell@2
      inputs:
        filePath: 'Test.ps1'

My Test.ps1:

Write-Host "##vso[task.setvariable variable=Key;]true"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...