github / github/gh-stack

Add merge queue CI optimisation

Ouverte
#395 1 commentaire 13 réactions 0 personnes assignées Voir sur GitHub
feature request topic: merge queue
Langage dominant
Go
Étoiles
1.5k
Forks
70
Merge moyen
1 j 8 h
PR mergées (30 j)
7

Description

## The problem

We use stacks a lot, and often mid stack PRs have some CI failures that are fixed above.

When I merge a stack of 5 PRs, I don't need to run CI in each of them, it's OK to skip 1-4 and only run CI in 5th. It saves A LOT of wasted runner minutes.

## Current state

You have this checkbox "Only merge non-failing pull requests":
Image

**Imagine we have added 5 stacked PRs to a merge queue, with CI like this**
PR 1 pass ✅
PR 2 pass ✅
PR 3 fail ❌
PR 4 pass ✅
PR 5 fail ❌

Checkbox set:
It will run CI on 5 pull requests, **merge 1-2**
Checkbox not set:
It will run CI on 5 pull requests, **merge 1-4**

## Proposal

It is greedy to _merge something_ now. I want it to _merge a queued atomic stack_ instead.

In order to make it work, you need another checkbox "merge a queued stack atomically and only run CI on the last PR", where it will only run CI on PR 5, and it **will not merge** 1-2 or 1-4 of I queued 1-5.

However, if I only added 1-2 or 1-4 to the merge queue - it will merge, because the last **queued** PR succeeded.

**For context:** it is not rare for us to hit a 50 PRs limit in a graphite, and 20 PRs stacks are very usual. Saving 20x runner minutes is a huge deal.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

No files or tests are named. Start by locating the merge-queue implementation and the existing “Only merge non-failing pull requests” option, then trace how stacked PRs are evaluated. Done means a queued stack can run CI only on its last PR and merge atomically, while a partial queue still merges when its last queued PR succeeds.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
github, go
Domaine
cli, devtools
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.