Mon équipe utilise le mécanisme VSTS Build & Release, combiné avec les paramètres de sécurité de la branche de demande d'extraction, de sorte que le code ne peut être fusionné qu'une fois la demande d'extraction terminée.
Cependant, nous rencontrons quelque chose d'étrange, car lorsqu'une pull-request est créée (et qu'une build est générée pour prouver le commit) - l'achèvement de cette build déclenchée par la pull request déclenche également indirectement une version car nous avons une configuration de déclencheur de version .
En soi, cela est probablement correct, mais ce qui se passe également est une fois la demande d'extraction terminée, un autre cycle de génération et de publication a lieu!
Existe-t-il un moyen de faire en sorte que les déclencheurs de libération VSTS ne démarrent que lorsque la demande d'extraction est terminée et fusionnée dans la branche de libération?
Je vous remercie!
Nous pouvons spécifier un filtre de branche sur le déclencheur de version de sorte que seules les versions de master déclenchent une version. Les builds de validation PR sont effectués dans une branche différente. Une fois approuvée et la branche fusionnée en master, c'est la build que vous souhaitez déclencher une version.
Ennuyeux, ils continuent de déplacer des choses. Au moment d'écrire ces lignes, lors de la modification d'une version, sous Pipeline, sous Artefacts, sur l'artefact, il y a un cercle avec un éclair à l'intérieur, l'info-bulle dit "Déclencheur de déploiement continu" - cliquez dessus. À droite, si le déclencheur est activé, vous verrez "Créer des filtres de branche". Cliquez sur "+ Ajouter" et sélectionnez la branche principale. Enregistrez la définition de version.
En ce qui concerne la génération, nous pouvons maintenant définir des conditions sur les tâches de sorte que vous ne puissiez exécuter une tâche que sur des versions de validation PR ou uniquement sur des versions principales.
https://docs.Microsoft.com/en-us/vsts/build-release/concepts/process/conditions
Il vous suffit de cloner votre définition de build actuelle et de désactiver la build CI, puis d'utiliser la build clonée pour vérifier le PR créé.
Tout d'abord, modifiez les paramètres ci-dessous comme ci-dessous:
1. Génération de clone.
Cliquez sur ...
bouton de la construction CI -> Clone -> éditer la définition de construction clonée -> désactiver la construction CI -> enregistrer.
2. Remplacez la génération clonée pour la stratégie de branche.
Ouvrez la stratégie de branche -> modifiez la stratégie de validation de génération -> sélectionnez la définition de génération clonée à la place -> enregistrez.
Le workflow sera donc:
Maintenant, seul le PR est terminé et fusionné dans la branche release
, la définition de la version sera déclenchée.
Utilisez les instructions conditionnelles pour la tâche de génération pour valider si la raison de la génération est "Pull Request".
Allez à votre tâche> Développez "Options de contrôle"> "Exécutez cette tâche"> Sous cette option, sélectionnez "Contions personnalisées"
Dans les conditions personnalisées, spécifiez la condition ci-dessous pour filtrer les versions PullRequest et (réussi (), ne (variables ['Build.Reason'], 'PullRequest'))