azure-devopsazure-pipelinescicdazure-pipelines-release-pipeline

Azure Devops pipeline schedule releases old releases


I have scheduled releases setup in our Azure Devops pipelines. At the moment they are scheduled to release at 6am every day.

What I have noticed is that when the schedule runs it deploys all releases which have been created since the last deployed release.

For example, if we have the following releases:

Release-421 Release-420 Release-419 Release-418 - deployed yesterday

When the schedule runs, this is what happens:

Release-421 - deployed 6.01am Release-420 - deployed 6am Release-419 - deployed 6.05am ** now live ** Release-418 - deployed yesterday

The main issue is it seems to deploy them in random order, so often we end up with older releases being the last to be released.

Ideally what we want to happen is that just Release-421 gets deployed.

Is there any way to make this happen?

Thanks


Solution

  • I can reproduce the similar situation in Release Pipeline.

    The cause of the issue is that multiple releases triggered simultaneously by the release pipeline schedule trigger will run the releases in order based on the time they enter the agent pool queue rather than the time they were created.

    Ideally what we want to happen is that just Release-421 gets deployed.

    To meet this requirement, you can consider enabling the Option: Deploy latest and cancel the others in Deployment queue settings.

    You can navigate to each release stages and find the option:

    enter image description here

    In this case, when multiple releases are triggered by schedule trigger, it will only run the latest created releases and cancel the others.

    Note: You need to turn this option on for all stages to ensure that entire release will only run the latest one.

    Here is the result:

    enter image description here

    For more detailed info, you can refer to this doc: Specify queuing policies