Page MenuHomePhabricator

Create "High Priority" test pipeline
Closed, ResolvedPublic

Description

Some tests require a faster turn around than others; however, currently they all fall into a single test pipeline. To fix this we first need to create a new zuul pipeline for high priority tests.

Migrated to that new test-prio Zuul pipeline:

  • operations/mediawiki-config
  • operations/puppet
  • operations/dns

Event Timeline

Change 343318 had a related patch set uploaded (by Hashar):
[integration/config] (WIP) High priority test pipeline

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

I have played with it this afternoon. When duplicating pipelines part of its definition are copy.deepcopy() which fails whenever there is a precompiled regex. I have found a workaround for require-approval, but I don't know what will happen with the email whitelist or other regex we might have :(

>>> import copy, re
>>> copy.deepcopy( re.compile('//') )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lib/python2.7/copy.py", line 174, in deepcopy
    y = copier(memo)
TypeError: cannot deepcopy this pattern object
>>>

Mentioned in SAL (#wikimedia-operations) [2017-03-21T09:06:33Z] <hashar> CI deploying config hack "High priority test pipeline" : https://gerrit.wikimedia.org/r/343318 - T160667

Mentioned in SAL (#wikimedia-releng) [2017-03-21T09:06:38Z] <hashar> CI deploying config hack "High priority test pipeline" : https://gerrit.wikimedia.org/r/343318 - T160667

Change 343318 merged by jenkins-bot:
[integration/config] High priority test pipeline

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

hashar removed a project: Patch-For-Review.

Deployed and I will monitor it over the day. The tests probably offer a good enough coverage for now.

Change 343968 had a related patch set uploaded (by Hashar):
[integration/config] mediawiki-config: move to high priority test pipeline

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

Change 343968 merged by jenkins-bot:
[integration/config] mediawiki-config: move to high priority test pipeline

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

On the Grafana Zuul board I have added a graph showing the time to process changes in the test-prio pipeline.

Full screen view https://grafana-admin.wikimedia.org/dashboard/db/zuul?panelId=27&fullscreen&from=now-2d&to=now-5m

View for the last 2days:

zuul_test-prio_2days.png (294×678 px, 49 KB)

The 16+ minutes bump today is me restarting Jenkins and forgetting that jobs were being scheduled/waiting. So it is an human mistake.

Change 344351 had a related patch set uploaded (by Hashar):
[integration/config@master] [operations/dns] switch to test-prio pipeline

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

Change 344351 merged by jenkins-bot:
[integration/config@master] [operations/dns] switch to test-prio pipeline

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

Status

Three repositories now benefit from the high priority pipeline:

  • operations/mediawiki-config
  • operations/puppet
  • operations/dns

Todo

Left to figure out is how to prioritize mediawiki* changes sent to the wmf/.* branches. That requires some evil duplication pretty much everywhere since we would need for each repository a test pipeline for the master/REL branches, the test-prio one for the wmf branches.

My todo above is a similar problem as the gate-and-submit. Namely prioritize wmf/ branches . So lets address it with T160668