Page MenuHomePhabricator

CI should run composer test/npm test BEFORE running Quibble
Closed, DeclinedPublic

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

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.

hashar moved this task from marble to Backlog on the Quibble board.

That is not for Quibble but something to be figured out in Zuul layout.yaml (if at all possible).