Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Un numéro d’exécution unique ou un numéro de build identifie chaque exécution d’un pipeline ou d’une build Azure Pipelines. Cet article explique la structure de ce nombre et explique comment vous pouvez le personnaliser afin qu’il soit plus utile ou significatif pour votre équipe.
Si vous ne spécifiez pas de nom de build dans des pipelines YAML, ou si vous laissez le champ Nom ou Format du numéro de build vide dans les pipelines Classiques, chaque exécution obtient un entier unique comme nom. Les noms de build peuvent utiliser d’autres caractères, jetons et variables. Vous pouvez personnaliser les numéros d’exécution et de génération à l’aide de modèles de nommage, de jetons spéciaux et de variables prédéfinies ou définies par l’utilisateur.
Configuration du numéro de build
Dans les pipelines classiques, vous pouvez personnaliser le format du numéro de build sous Options dans la définition du pipeline. Dans les pipelines YAML, vous pouvez personnaliser le format de numéro d’exécution à l’aide de la name propriété au niveau du pipeline du fichier YAML. La name propriété n’est pas prise en charge dans les modèles ou les phases.
L’exemple suivant définit un format de numéro d’exécution personnalisé qui produit un numéro de build tel que MyProject_MyBuild_main_20240828.1.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
steps:
- script: echo '$(Build.BuildNumber)'
Nombre d’exécutions
La valeur par défaut d’un numéro d’exécution Azure Pipelines est $(Date:yyyyMMdd).$(Rev:r). La $(Rev:r) variable de révision fonctionne uniquement dans un champ de numéro de build. Lorsqu’une build est terminée, si rien d’autre dans le numéro de build change, la Rev valeur entière augmente d’un.
$(Rev:r) est réinitialisé à 1 lorsque toute autre partie du numéro de build change. Par exemple, si vous configurez votre format de numéro de build en $(Build.DefinitionName)_$(Date:yyyyMMdd).$(Rev:r), le numéro de build est réinitialisé lorsque la date change.
Si le numéro de build précédent était MyBuild_20230621.1, le numéro de build suivant ce jour-là est MyBuild_20230621.2. Le premier numéro de build le lendemain est MyBuild_20230622.1.
$(Rev:r) est également réinitialisé à 1 si vous modifiez la version. Si votre format de build est 1.0.$(Rev:r) et que votre dernier numéro de build a été 1.0.3, si vous remplacez la version 1.1.$(Rev:r)par , le numéro de build suivant est 1.1.1.
Le format de numéro de build suivant produit le nom Fabrikam_CIBuild_main_20240506.2 pour la deuxième exécution le 6 mai 2024.
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd).$(Rev:r)
Les jetons de numéro de build sont résolus comme suit :
- Nom du projet : Fabrikam
- Nom de la définition de build : CIBuild
- Branche : main
- Date : 6 mai 2024
- Numéro d’exécution pour ce jour : 2
Exécuter des jetons de numéro
Le tableau suivant montre comment résoudre les jetons de numéro d’exécution. Vous pouvez utiliser ces jetons uniquement pour définir des numéros d’exécution. Ils ne fonctionnent nulle part ailleurs dans un pipeline.
| Jeton | Valeur d'exemple | Remarques |
|---|---|---|
$(Build.DefinitionName) |
CIBuild | Nom de build, qui ne peut pas contenir de caractères non valides ou d’espace blanc. |
$(Build.BuildId) |
752 | Un ID interne immuable, également appelé Run ID« unique » dans l’organisation Azure DevOps. |
$(Date:yyyyMMdd) |
20240506 | Format de date. Vous pouvez également spécifier d’autres formats de date, tels que $(Date:MMddyy). |
$(DayOfMonth) |
6 | |
$(DayOfYear) |
126 | |
$(Hours) |
Vingt-et-un | |
$(Minutes) |
7 | |
$(Month) |
5 | |
$(Rev:r) |
2 | Position du nombre de courses pour ce jour-là. Utilisez $(Rev:r) pour vous assurer que chaque build terminé possède un nom unique. |
$(Seconds) |
3 | |
$(SourceBranchName) |
main | |
$(TeamProject) |
Fabrikam | |
$(Year:yy) |
Vingt-quatre | |
$(Year:yyyy) |
2024 |
Importante
Si vous souhaitez afficher des zéros de préfixe dans le numéro d’exécution, vous pouvez ajouter plus de caractères r au jeton Rev. Par exemple, spécifiez $(Rev:rr) si vous voulez que le numéro Rev commence par 01, 02, et ainsi de suite.
Toutefois, si vous utilisez un zéro rembourré Rev dans le cadre d’un schéma de numérotation de version, certaines tâches de pipeline ou des outils populaires comme les packages NuGet suppriment les zéros non significatifs. Ce comportement provoque une incompatibilité de numéro de version dans les artefacts générés par la build.
Expressions dans les numéros de série
Si vous utilisez une expression pour définir le numéro d’exécution, vous ne pouvez pas utiliser les jetons $(Build.BuildId), $(Build.BuildUri) ou $(Build.BuildNumber), car leurs valeurs ne sont pas encore définies au moment où les expressions de pipeline sont évaluées.
Variables dans les numéros d’exécution
Vous pouvez utiliser des variables prédéfinies et définies par l’utilisateur dans votre numéro d’exécution. Par exemple, si vous définissez My.Variable, vous pouvez spécifier le format numérique suivant. Les quatre premières variables sont prédéfinies.
$(Build.DefinitionName)_$(Build.DefinitionVersion)_$(Build.RequestedFor)_$(Build.BuildId)_$(My.Variable)
Pour plus d’informations sur les variables prédéfinies, consultez Utiliser des variables prédéfinies. Pour plus d’informations sur la définition des variables utilisateur, consultez Définir des variables.
Questions fréquentes (FAQ)
Quelle est la longueur maximale d’un numéro d’exécution et quels caractères puis-je utiliser ?
Les numéros d’exécution peuvent comporter jusqu’à 255 caractères. Vous ne pouvez pas utiliser les caractères ", /, \, :, <, >, ', |, ?, @, ou *, et vous ne pouvez pas terminer le nombre avec ..
Dans quel fuseau horaire sont exprimées les valeurs de temps du numéro de build ?
Le fuseau horaire est UTC.
Le fuseau horaire est identique au système d’exploitation de l’ordinateur qui exécute votre serveur de couche Application.
Comment puis-je définir dynamiquement le numéro de build avec des conditions ?
Vous pouvez utiliser des variables dans le cadre de votre numéro d’exécution. Dans l’exemple suivant, la variable why est définie dans le cadre du numéro d’exécution et sa valeur change en fonction du Build.Reason.
variables:
- name: why
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
value: pr
${{ elseif eq(variables['Build.Reason'], 'Manual' ) }}:
value: manual
${{ elseif eq(variables['Build.Reason'], 'IndividualCI' ) }}:
value: indivci
${{ else }}:
value: other
name: $(TeamProject)_$(SourceBranchName)_$(why)_$(Date:yyyyMMdd).$(Rev:r)
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo '$(Build.BuildNumber)'
Comment puis-je référencer la variable de numéro d’exécution dans un script ?
Vous pouvez référencer le numéro d’exécution directement comme $(Build.BuildNumber) dans vos scripts ou créer une variable personnalisée qui inclut le nombre. Par exemple:
# Set MyRunNumber
variables:
MyRunNumber: '1.0.0-CI+$(Build.BuildNumber)'
steps:
- script: echo $(MyRunNumber)
- script: echo $(Build.BuildNumber)