Условия в конвейере yaml, такие как "eq" и "ne" не работают - PullRequest
0 голосов
/ 24 октября 2019

Я создал переменную сборки конвейера "svctag" и присвоил ее значение пусто (пустая строка). Теперь попробуйте выполнить приведенный ниже скрипт внутри задания в файле yaml. Каждый раз, когда он печатает "svctag не пусто". Не уверен, что я делаю не так. Пожалуйста, помогите.

- ${{ if eq('$(svctag)', '') }}:
   - script: echo 'svctag is blank'
- ${{ if ne('$(svctag)', '') }}:
   - script: echo 'svctag is not blank'

1 Ответ

1 голос
/ 24 октября 2019

Как я знаю, этот формат применяется только в шаблоне YAML. Теперь проблема в том, что используемая вами переменная с именем method не верна.

Вы должны использовать формат variables['svctag'] вместо $(svctag) для доступа к переменной, которая была объявлена ​​ранее при использовании YAML.

Итак, вы должны изменить свой сценарий на

  - ${{ if eq(variables['svctag'], '') }}:
    - script: echo it is true 
  - ${{ if ne(variables['svctag'], '') }}:
    - script: echo it is false

Вот вывод на моей стороне.

enter image description here


Другое решение - определить svctag в parameters:

parameters:
  svctag: '' 

. Затем использовать параметры с шагом:

  steps:
  - ${{ if eq(parameters.svctag, '') }}:
    - script: echo it is true
  - ${{ if ne(parameters.svctag, '') }}:
    - script: echo it is false

Примечание. Пожалуйста, используйте parameters.svctag.

...