- Azure
- Azure DevOps
Dans l’article précédent nous vous avons montré les bases de l’utilisation de variables dans vos pipelines Azure DevOps. Aujourd’hui, nous irons plus loin et examinerons différentes manières d’utiliser des variables et des paramètres dans des templates réutilisables.
Pour les besoins de ce tutoriel, prenons cet extrait de template:
variables:
- name: minimumVersionNumber
value: 1000
steps:
# ...steps before
- task: Bash@3
displayName: 'Calculate a build number'
inputs:
targetType: 'inline'
script: |
echo Computing with $(minimumVersionNumber) or ${{ variables.minimumVersionNumber }}
# ...steps after
Dans cet exemple, nous avons une task shell de base Bash@3
qui calcule le numéro de version de build de notre application. Étant donné que nous définissons le minimumVersionNumber
dans l’objet variables
par défaut d’Azure DevOps, il existe deux options pour y accéder:
$(minimumVersionNumber)
: Cette notation est accessible n’importe où dans votre template${{ variables.minimumVersionNumber }}
: Ceci n’est accessible qu’au même niveau de la définition des variables
Cela fait, nous allons créer un nouveau template dans un fichier appelé: compute-build-number.yml
pour pouvoir réutiliser cette task dans différents projets:
# compute-build-number.yml
# Define parameter first way:
parameters:
minVersion: 0
# Or second way:
parameters:
- name: minVersion
type: number
value: 0
steps:
- task: Bash@3
displayName: 'Calculate a build number'
inputs:
targetType: 'inline'
script: |
echo Computing with ${{ parameters.minVersion }}
Comme vous pouvez le voir, la minVersion
est définie dans l’objet parameters
, pour y accéder, vous devez utiliser ${{ parameters.minVersion }}
. Vous pouvez appeler l’objet parameters
comme vous le souhaitez, le but est de définir tous les paramètres nécessaires au fonctionnement de ce template. Cela sera également utile lorsque quelqu’un d’autre voudra connaître les paramètres nécessaires à fournir pour pouvoir réutiliser ce template.
Maintenant, mettons à jour notre pipeline pour utiliser ce template:
variables:
- name: minimumVersionNumber
value: 1000
steps:
# ...steps before
- template: compute-build-number.yml
parameters:
minVersion: $(minimumVersionNumber)
# OR:
- template: compute-build-number.yml
parameters:
minVersion: ${{ variables.minimumVersionNumber }}
# ...steps after
Pourquoi n’utilisons-nous pas la notation $(ma_variable)
partout dans notre pipeline et évitons d’utiliser des paramètres pour nos templates?
Ce n’est pas recommandé car si vous faites cela, vous:
Comme vous pouvez le voir dans ces tutoriels, vous avez plusieurs façons d’utiliser les paramètres et les variables dans Azure DevOps, assurez-vous de vérifier le contexte pour appliquer le bon, vous n’accédez pas à vos variables et paramètres de la même manière.