Page MenuHomePhabricator

CI should run composer test/npm test BEFORE running Quibble
Open, Needs TriagePublic

Description

The Quibble jobs ends up all running npm test and composer test. Zuul has support for dependent jobs, so we can first run the linter before triggering the Quibble jobs:

zuul/layout.yaml
- mediawiki-linting:
   - quibble-vendor-php7
   - quibble-composer-hhvm

And Quibble jobs will be invoked with: quibble --skip=npm-test --skip=composer-test.

The devil is figuring out how to first run all the linters (they will vary based on php version). We would probably to reuse the good old single repo jobs:

  • mwgate-npm-test-docker
  • mwgate-composer-test-hhvm-docker
  • mwgate-composer-test-php70-docker

And once they are all completed, get Zuul to run the long running jobs. I have no idea whether Zuul supports multiple parent jobs though.

Event Timeline

hashar created this task.Dec 11 2018, 4:42 PM
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptDec 11 2018, 4:42 PM
hashar updated the task description. (Show Details)Feb 27 2019, 9:57 AM
awight added a subscriber: awight.May 21 2019, 7:32 AM

How does this relate to T211702: Quibble initialize step should only clone the target repository? It seems that they are redundant, if we do this task then the lint steps should be skipped in Quibble, and if we do the other task then this one is irrelevant.

I disagree with the premise of this task, since it's optimizing for the case when someone writes code that fails linters, which should be the exception. Quibble etc jobs already take long enough to run, and delaying the beginning of their execution would be a step backwards IMO.