We have three CI jobs that run as part of the with each change submitted to Gerrit for review:
- apps-android-wikipedia-test (runs for every change, and should)
- apps-android-wikipedia-npm-node-6-jessie (runs for every change, but only concerns JS files)
- apps-android-wikipedia-tox-jessie (runs for every change, but only concerns Python files)
It's not uncommon for apps-android-wikipedia-test to be the only relevant test for a given change, and for it to have finished but for the patch to remain queued in Zuul, awaiting a chance to run one or both of the others, for much longer. Eliminating this condition would considerably improve our CI response times.
It seems possible to restrict jobs to running only when changes include specific types of files.[1] We should see about doing this for the npm and tox jobs. The latter, in particular, should very rarely be invoked, since our Python scripts almost never change.
[1] For example: https://github.com/wikimedia/integration-config/blob/d67981d0a88619ecbb6f0ae059799fb5fbbbc1e8/zuul/layout.yaml#L767-L769