Running pipeline on all commits
Problem to solve
Allow testing of all commits in a MR to catch broken commits before they enter master
where they compromise bisectability.
Further details
It is common (and often recommended) for authors to split large changes into individual atomic (that is, individually buildable) commits. This practice both provides structure to guide reviewers and clarity to later readers of the code.
However, this practice can also be remarkably harmful to bisectability if not all commits in an MR build. With the behavior of GitLab's current Pipelines facility it is very easy for MRs to be merged that do not meet this criterion since only the head commit of an MR is tested.
Proposal
I propose that GitLab's Pipelines facility allow running of Pipelines on all commits. This would likely be controlled via a property of the job. For instance,
job1:
buildable: $BUILDABLE
where $BUILDABLE
is the item which triggers the job: either merge-request
(the current semantics, building only the head commit) or commit
(where the job will be run on each commit between the MR's base commit and its head).
What does success look like, and how can we measure that?
Success would mean never again having to skip a range of commits during bisection due to broken intermediate states.