Skip to main content

Pilot feature: Queuing PRs for Promotion

How Gearset handles concurrent promotion requests in Pipelines

Brandon Chin Loy avatar
Written by Brandon Chin Loy
Updated over a week ago

Overview

One of the upcoming changes to Pipelines is the ability to queue PRs for promotion, even when another promotion is already in progress. This means users no longer have to wait for the current promotion to complete before actioning their PRs.

Feature access

Team owners can switch on the pilot for the team by:

  1. Navigating to your account settings by clicking the Gearset icon in the top right and clicking My account.

  2. Under profile settings, navigate to the Feature access page.
    ​

  3. Switch on the feature called Queuing PRs for Promotion in Pipelines.

How it works

Promoting a PR

To kick off a promotion, a user selects their PR and clicks Promote changes:

The PR will move to the Promoting section under Now:

If other users wish to promote their PRs while a promotion is already in progress, they can still do so by clicking Promote changes. Their PRs will be added to a queue in a first-in, first-out (FIFO) order under Next:

Once the first PR has been promoted, the next PR will automatically be promoted. This carries on until the queue is empty.

If multiple PRs are selected for promotion together, they will be shown as a single unit in the queue:

Users can expand the unit to view all included PRs by clicking the v arrow:

Managing the queue

There are a few ways to manage the queue, with some actions available to all team members and others restricted to team owners.

Canceling a promotion

Team owners can remove any user's PR from the existing queue as long as the promotion has not started.

Team members are able to only remove the PRs they have promoted. This can be done by clicking the three ellipses icon to the right of the PR and selecting Cancel promotion:

Reordering the queue

Team owners can reorder the queue in two ways:

  • Clicking the three ellipses icon and selecting Promote next, which moves the PR to the top of the queue.

  • Moving the PR to any position using the drag handle to the left of the PR name.

Note: Team owner can remove their own and other users' PRs from the queue (those users with "Member" status). However, a team owner (in case of a team-shared Pipeline) cannot remove other team owners' PRs from the queue.

Use Pipeline notifications to stay informed

If your team uses Slack or Microsoft Teams and wishes to be notified about validations, deployments and/or merge conflicts related to your PR(s), we strongly recommend setting up pipeline notifications. You are able to configure notifications based on events you care about, such as validation errors and merge conflicts.

FAQs

When can my PR be added to the queue?

The PR must meet all necessary prerequisites set by your team, such as pre-deployment steps, required reviews and merge conflict resolution.

What happens if my PR cannot be promoted?

If a PR encounters an issue during promotion, it will be removed from the queue and returned to the Open section. We recommend enabling pipeline notifications (Slack or Microsoft Teams) to stay informed when this happens.

What if I merge my PR through my Version Control System (VCS)?

If a PR is merged directly through your VCS, the next CI job run will pick up the changes, as it does today.
​
However, we strongly recommend promoting PRs within Gearset Pipeline to ensure the queueing order is followed (this also helps to avoid potential issues with PRs showing on "Recent promotion history" tab in a sequence users aren't expecting).

What should I do if I need to commit additional changes to a PR that is already in the queue?

We strongly recommend removing the PR from the queue before making changes to ensure they are correctly reflected. Once you have removed it, you can follow the guidance in this article. If the PR is edited while still in the queue, the changes will be picked up as long as the PR has not reached the top of the queue. However, removing the PR from the queue first is the safest approach.

How does this work for long-term projects and releases?

Long-term projects and releases result in a single PR, which will behave like any other PR within the queue.

Why are my PRs promoting as normal rather than joining the queue?
Assuming the pilot flag is enabled for this feature (this can be done on Feature access page), the most likely cause is that the queue functionality is not supported. There are two scenarios that would cause this:

  • Using a Layered Modules pipeline.

  • Your team has the 'skip validate before merge' flag enabled.

Did this answer your question?