- Azure
- Azure DevOps
- Xamarin
Lorsque vous exécutez votre pipeline sur Azure DevOps Server pour vos projets, vous devez parfois cibler un agent spécifique sans modifier la configuration de vos demands
.
Cela peut être utile dans ces cas :
Lorsque vous utilisez Azure DevOps Server, vous êtes responsable de la gestion de votre pool d’agents.
Dans ce tutoriel nous découvrirons comment définir vos demands
par défaut pour cibler tous les agents compatibles et en même temps, pouvoir sélectionner un agent spécifique si besoin.
Un pipeline a une structure comme celle-ci :
pipeline
| --- stage 1
| --- job 1
| --- task 1
...
| --- task X
...
| --- job Y
...
| --- stage Z
Chaque pipeline peut avoir plusieurs stages
qui peuvent contenir plusieurs jobs
et chaque tâche a ses propres étapes représentées par les tasks
.
Par exemple, un stage
peut avoir la responsabilité de contenir toutes les jobs
de build pour votre projet, et chaque job
buildera votre application pour un environnement spécifique (dev, staging, prod…). Une task
est une simple commande qui exécute un script.
Les demands
permettent à Azure DevOps de sélectionner le bon agent pour vous. Vous pouvez le définir à l’aide du mot-clé demands
.
Ci-dessous, nous demandons un agent avec une version de XCode définie sur 13.0:
demands:
- XCODE_VERSION -equals 13.0
La XCODE_VERSION
est appelée une capacité. Ceci est défini manuellement dans votre agent. Avec cette demande, votre pipeline s’exécutera uniquement avec un agent exécutant cette version de Xcode.
Maintenant que nous savons comment sélectionner un agent à l’aide des demands
, ajoutons la possibilité de le choisir par son nom:
parameters:
agentName: 'Any'
stages:
- stage: Build
pool:
name: Default # The name of your agent pool
${{ if eq(parameters.agentName, 'Any') }}:
demands:
- XCODE_VERSION -equals 13.0
# Other demands here
${{ if ne(parameters.agentName, 'Any') }}:
demands:
- Agent.Name -equals ${{ parameters.agentName }}
jobs:
- job:
steps:
# All steps for your job here..
Comme vous pouvez le voir ci-dessus, nous définissons le agentName
à une valeur par défaut: Any
. Lorsque vous exécuterez votre pipeline, si vous ne modifiez pas cette valeur, il l’exécutera automatiquement en utilisant les demandes que vous avez spécifiez, ici la version Xcode.
Cependant, si vous souhaitez exécuter votre pipeline sur un agent spécifique, il vous suffit de saisir le nom de cet agent avant de démarrer le pipeline.
Il est désormais facile de basculer entre différents agents et configurations sur vos pipelines Azure DevOps Server. D’après mon expérience, cette fonctionnalité vous fera gagner beaucoup de temps dans vos projets !
Happy coding!