Как разрешить пустую строку для параметра времени выполнения? - PullRequest
0 голосов
/ 08 апреля 2020

Я только начинаю работать с параметрами времени выполнения в Azure Конвейерах, и есть кое-что, что я не могу понять. Учитывая это Azure Конвейеры YAML:

parameters:
- name: deployEnvironment
  displayName: Select your target environment.
  type: string
  default: Build_only
  values:
  - Build_only
  - TST
  - PP
  - P
- name: releaseName
  type: string
  default: ''

steps:
- task: ....

Почему releaseName является обязательным параметром? Я надеялся, что, указав default: '', необязательно оставлять пустым. В документации не упоминается, можно ли сделать параметры необязательными.

image

В ответ на ответ Крызтофа я немного поэкспериментировал, и кажется, что Строка, состоящая только из пробелов, интерпретируется как пустая:

Кажется, что этот пробел интерпретируется как пустой (я также пробовал несколько пробелов).

parameters:
- name: myString
  type: string
  default: ' '

steps:
- task: PowerShell@2
  inputs:
    targetType: inline
    script: |
      $MS = $ENV:MS
      Write-Host "myString value is '$MS'"
      Write-Host "Its length is $($MS.Length)"
      Write-Host "is it null or empty? $([System.String]::IsNullOrEmpty($MS))"
      Write-Host "Is it null or whitespace? $([System.String]::IsNullOrWhiteSpace($MS))"
  env:
    MS: ${{ parameters.myString }}

Это приводит к:

Значение myString равно '' Его длина равна 0, он нулевой или пустой? Правда это ноль или пробел? True

1 Ответ

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

Это действительно странно. Но если вместо '' поставить пробел ' ', вы сможете запустить конвейер, даже удалив этот пробел из поля.

build with runtime parameters

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