<p>Pour le déclenchement d’un pipeline à partir d’un autre, la <a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/build/triggers?view=azure-devops&tabs=yaml#pipeline-triggers">documentation</a> officielle d’Azure suggère la solution ci-dessous, c’est-à-dire utiliser les <strong>déclencheurs de pipeline</strong>.</p>
<pre><code class="lang-auto">resources:
pipelines:
- pipeline: RELEASE_PIPELINE # any arbitrary name
source: PIPELINE_NAME. # name of the previous pipeline shown on azure UI portal
trigger:
branches:
include:
- dummy_branch # name of branch on which pipeline need to trigger
</code></pre>
<p>Mais en réalité, ce qui se passe, c’est que cela déclenche deux pipelines. Prenons un exemple : supposons que nous ayons deux pipelines A et B et que nous voulions déclencher B quand A se termine. Dans ce scénario, B s’exécute 2 fois : une fois lors du commit (en parallèle avec A) et une seconde fois après la fin de A.</p>
<p>Pour éviter ce <strong>problème de double exécution du pipeline, suivez la solution ci-dessous</strong> :</p>
<pre><code class="lang-auto">trigger: none # add this trigger value to none
resources:
pipelines:
- pipeline: RELEASE_PIPELINE # any arbitrary name
source: PIPELINE_NAME. # name of the pipeline shown on azure UI portal
trigger:
branches:
include:
- dummy_branch # name of branch on which pipeline need to trigger
</code></pre>
<p>En ajoutant <strong>trigger:none</strong>, le second pipeline ne se déclenchera pas au commit initial et ne se déclenchera que lorsque le premier aura terminé son travail.</p>
<p>J’espère que cela vous aidera.</p>