Почему моя переменная azure devops не оценивается как bool? - PullRequest
1 голос
/ 29 января 2020

Вопрос

Могу ли я привести свой тип к типу bool, чтобы он работал без eq() при объявлении переменной, или я застрял с версией, которая работает?

мои переменные

variables:
  - name: BUILD_PUBLISH_ARTIFACTS
    value: ${{or(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), eq(variables['Build.SourceBranch'], 'refs/heads/master'))}}
  - name: BUILD_IS_RELEASE
    value: ${{startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/')}}
  - name: BUILD_IS_ALPHA
    value: ${{eq(variables['Build.SourceBranch'], 'refs/heads/master')}}

это работает

  - task: PowerShell@2
    condition: and(succeeded(), eq(variables['BUILD_PUBLISH_ARTIFACTS'], 'True'))

это не работает (но я хочу, чтобы это работало так)

  - task: PowerShell@2
    condition: and(succeeded(), variables['BUILD_PUBLISH_ARTIFACTS'])

screenshot of yaml build pipeline

1 Ответ

1 голос
/ 29 января 2020

Могу ли я привести свой тип к типу bool, чтобы он работал без eq () при объявлении переменной, или я застрял с версией, которая работает?

Я думаю, что вы этого не делаете нужно бросить это, чтобы bool. Я перепробовал все ваши сценарии, и все они хорошо сработали на моей стороне. Если eq(variables['BUILD_PUBLISH_ARTIFACTS'], 'True') может работать, то в вашем состоянии variables['BUILD_PUBLISH_ARTIFACTS'] также должно работать.

Кроме вышеперечисленных комбинаций, я также пробовал condition: and(variables['BUILD_xxx'],eq(variables['BUILD_xxx'], 'True')), оно также работало. Так что вам не нужно приводить это к bool, And() может их хорошо распознать.

На мой взгляд, проблема может возникнуть после того, как вы сделали несколько изменений в конвейере. Вы тестировали эти два сценария в одном сценарии? Тот же конвейер с той же веткой?

Нажмите эту кнопку, и вы найдете прямую причину вашей проблемы:

enter image description here

Надеюсь помогает.

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