Я только начинаю работать с параметрами времени выполнения в 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: ''
, необязательно оставлять пустым. В документации не упоминается, можно ли сделать параметры необязательными.
В ответ на ответ Крызтофа я немного поэкспериментировал, и кажется, что Строка, состоящая только из пробелов, интерпретируется как пустая:
Кажется, что этот пробел интерпретируется как пустой (я также пробовал несколько пробелов).
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