Page MenuHomePhabricator

Zuul: Make gate-and-submit a DependentPipeline
Closed, ResolvedPublic

Description

Whenever several changes are CR+2 in a short period of time, it does not make sense to test each of the proposed change, we only care about the end result. Zuul handle that by merging all the changes in order and trigger a job testing all the changes at all, if that works, it merge them all.

Our gate-and-submit pipeline "simply" has to be made a DependentPipeLineManager.

There might be some side effects though.


Version: wmf-deployment
Severity: enhancement

Details

Reference
bz48419

Event Timeline

bzimport raised the priority of this task from to Low.Nov 22 2014, 1:32 AM
bzimport set Reference to bz48419.

Did you mean post-merge instead of gate-and-submit?

gate-and-submit must be run for individual changes so that test failures can be caught individually. What will gate-and-submit do if it runs for multiple changes and there is an error?

Will git HEAD have the proper modified files for all of the changes? Afaik a git-merge can only be of 2 changes, not of an arbitrary number of changes. Zuul would have to do some kind of squash to simulate them as 1 change. Not sure this is wanted.

What problem will this solve?

If for post-merge instead of gate-and-submit, it makes sense to combine them. Though even then one could argue it is useful to know which change caused a regression.

I did mean gate-and-submit.

The DependentPipeline is described in upstream documentation:

http://ci.openstack.org/zuul/gating.html

The use case is to speed up the gating process when a lot of changes are approved at the same time. We currently tests them one by one when we could have them run in parallel (on different slaves).

I am not entirely sure how it works, hence this bug :D

Change 101839 had a related patch set uploaded by Hashar:
make gate-and-submit a dependent pipeline

https://gerrit.wikimedia.org/r/101839

Change 101839 merged by jenkins-bot:
make gate-and-submit a dependent pipeline

https://gerrit.wikimedia.org/r/101839

I played with it over the week-end on my local machine. Seems to works fine for our use cases though I haven't thoroughly tested the mediawiki wmf branches system.

The Gerrit change 101839 made gate-and-submit a DependentPipeline. Did land a few changes today and they merged properly AND in the proper order.

Deployed in production back in december and working fine. We still need more gating jobs but that is an over story.