[openstack-dev] [ci][infra][tripleo] Multi-staged check pipelines for Zuul v3 proposal

Bogdan Dobrelya bdobreli at redhat.com
Mon May 14 16:15:04 UTC 2018

An update for your review please folks

> Bogdan Dobrelya <bdobreli at redhat.com> writes:
>> Hello.
>> As Zuul documentation [0] explains, the names "check", "gate", and
>> "post"  may be altered for more advanced pipelines. Is it doable to
>> introduce, for particular openstack projects, multiple check
>> stages/steps as check-1, check-2 and so on? And is it possible to make
>> the consequent steps reusing environments from the previous steps
>> finished with?
>> Narrowing down to tripleo CI scope, the problem I'd want we to solve
>> with this "virtual RFE", and using such multi-staged check pipelines,
>> is reducing (ideally, de-duplicating) some of the common steps for
>> existing CI jobs.
> What you're describing sounds more like a job graph within a pipeline.
> See: https://docs.openstack.org/infra/zuul/user/config.html#attr-job.dependencies
> for how to configure a job to run only after another job has completed.
> There is also a facility to pass data between such jobs.
> ... (skipped) ...
> Creating a job graph to have one job use the results of the previous job
> can make sense in a lot of cases.  It doesn't always save *time*
> however.
> It's worth noting that in OpenStack's Zuul, we have made an explicit
> choice not to have long-running integration jobs depend on shorter pep8
> or tox jobs, and that's because we value developer time more than CPU
> time.  We would rather run all of the tests and return all of the
> results so a developer can fix all of the errors as quickly as possible,
> rather than forcing an iterative workflow where they have to fix all the
> whitespace issues before the CI system will tell them which actual tests
> broke.
> -Jim

I proposed a few zuul dependencies [0], [1] to tripleo CI pipelines for 
undercloud deployments vs upgrades testing (and some more). Given that 
those undercloud jobs have not so high fail rates though, I think 
Emilien is right in his comments and those would buy us nothing.

 From the other side, what do you think folks of making the
tripleo-ci-centos-7-3nodes-multinode depend on 
tripleo-ci-centos-7-containers-multinode [2]? The former seems quite 
faily and long running, and is non-voting. It deploys (see featuresets 
configs [3]*) a 3 nodes in HA fashion. And it seems almost never 
passing, when the containers-multinode fails - see the CI stats page 
[4]. I've found only a 2 cases there for the otherwise situation, when 
containers-multinode fails, but 3nodes-multinode passes. So cutting off 
those future failures via the dependency added, *would* buy us something 
and allow other jobs to wait less to commence, by a reasonable price of 
somewhat extended time of the main zuul pipeline. I think it makes sense 
and that extended CI time will not overhead the RDO CI execution times 
so much to become a problem. WDYT?

[0] https://review.openstack.org/#/c/568275/
[1] https://review.openstack.org/#/c/568278/
[2] https://review.openstack.org/#/c/568326/
[4] http://tripleo.org/cistatus.html

* ignore the column 1, it's obsolete, all CI jobs now using configs 
download AFAICT...

Best regards,
Bogdan Dobrelya,
Irc #bogdando

More information about the OpenStack-dev mailing list