web-dev-qa-db-fra.com

Déclencheur de génération de demande d'extraction de version VSTS

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!

12
watdo

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

16
Jeff Shepler

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.

enter image description here

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.

enter image description here

Le workflow sera donc:

  1. La génération clonée sera déclenchée lorsque la demande d'extraction est créée/modifiée.
  2. Lorsque la génération clonée a été mise en file d'attente, vous pouvez terminer le PR.
  3. Lorsque le PR est terminé (les modifications ont été fusionnées), la génération CI sera déclenchée.
  4. Lorsque la génération CI a été mise en file d'attente, la sortie du CD sera déclenchée.

Maintenant, seul le PR est terminé et fusionné dans la branche release, la définition de la version sera déclenchée.

9
Marina Liu

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'))

0
Anil