web-dev-qa-db-fra.com

Comment permettre une chaîne vide pour un paramètre d'exécution?

Je commence juste à travailler avec des paramètres d'exécution dans les pipelines Azure et je ne peux pas comprendre quelque chose. Compte tenu de ce pipelines 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: ....

Pourquoi le désapprouve-t-il un paramètre requis? J'espérais que en précisant default: '' Il serait facultatif d'être laissé vide. La documentation ne mentionne pas si les paramètres peuvent être effectués en option.

image

Suivi sur la réponse de Kryzstof, j'ai expérimenté un peu plus loin et il semble qu'une ficelle composée que des espaces blanchisseurs soit interprétée comme vide:

Il semble que cet espacement unique soit interprété comme vide (j'ai également essayé plusieurs espaces blousins).

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 }}

Ces rendements:

la valeur mystring est '' sa longueur est 0 est-elle nulle ou vide? Vrai est-ce nul ou blanc? Vrai

7
Walter Vos

Selon , la documentation , "Les paramètres ne peuvent pas être facultatifs".

Mettre un espace ' ' Comme la valeur par défaut fonctionnera (comme krzysztof suggérées), mais l'espace restera sur le terrain. Si vous supprimez l'espace dans le champ afin qu'il n'y ait pas de valeur de texte, la valeur par défaut de ' ' sera utilisé lorsque le pipeline est exécuté.

0
pjivers