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 puisse être fusionné que lorsqu'une demande d'extraction est terminée.

Nous vivons cependant quelque chose d'étrange, en ce sens que 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 release car nous avons une configuration de déclencheur de release .

Cela en soi est probablement correct, mais ce qui se passe également, c'est après avoir «terminé» la requête d'extraction, un autre cycle de construction et de publication a lieu!

Existe-t-il un moyen de faire en sorte que les déclencheurs de publication VSTS ne se déclenchent que lorsque la demande d'extraction est terminée et fusionnée dans la branche de publication?

Je vous remercie!

12
watdo 2 août 2017 à 22:36

2 réponses

Meilleure réponse

Nous pouvons spécifier un filtre de branche sur le déclencheur de release de sorte que seules les builds de master déclenchent une release. Les builds de validation PR sont effectués dans une branche différente. Lorsqu'elle est approuvée et que la branche est fusionnée dans master, c'est la version que vous voulez déclencher une version.

Malheureusement, ils continuent de faire bouger les choses. Au moment de la rédaction de cet article, 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 indique "Déclencheur de déploiement continu" - cliquez dessus. Sur la 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 construction faisant différentes choses, nous pouvons maintenant définir des conditions sur les tâches de sorte que vous ne puissiez exécuter une tâche que sur les versions de validation PR ou uniquement sur les versions principales.

https://docs.microsoft.com/en-us/vsts/build-release/concepts/process/conditions

16
Jeff Shepler 2 oct. 2017 à 13:34

Utilisez des instructions conditionnelles pour la tâche de construction pour valider si Build.Reason est "Pull Request".

Accédez à votre tâche> Développez "Options de contrôle"> "Exécuter cette tâche"> Sous cette option, sélectionnez "Conditions personnalisées"

Dans les conditions personnalisées, spécifiez la condition ci-dessous pour filtrer les builds PullRequest et (réussi (), ne (variables ['Build.Reason'], 'PullRequest'))

0
Anil 2 mai 2019 à 00:47