Hey all,
For a while now we have .jshintrc rules in the repository and are able to run node-jshint locally.
TL;DR: jshint is now running from Jenkins on mediawiki/core (joining the linting sequence for php and puppet files).
I cleaned up the last old lint failures in the repo yesterday in preparation to enable it from Jenkins (like we already do for PHP and Puppet files). After some quick testing in a sandbox job on Jenkins to confirm it passes/fails accordingly, this has now been enabled in the main Jenkins job for mediawiki/core.
Right now only master and REL1_20 pass (REL1_19 and wmf branches do not, the next wmf branch will however pass).
Therefore is has only been enabled on the master branch for now.
Example success: * https://gerrit.wikimedia.org/r/#/c/24249/ * https://integration.mediawiki.org/ci/job/MediaWiki-GIT-Fetching/7730/console
22:16:41 Running "jshint" task 22:16:48 OK 22:16:48 22:16:48 Done, without errors.
Example failure: * https://gerrit.wikimedia.org/r/#/c/34433/ * https://integration.mediawiki.org/ci/job/MediaWiki-GIT-Fetching/7732/console
22:24:01 Running "jshint" task 22:24:08 >> resources/mediawiki/mediawiki.js: line 5, col 5, Identifier 'bla_bla' is not in camel case. 22:24:08 >> resources/mediawiki/mediawiki.js: line 5, col 12, 'bla_bla' is defined but never used. 22:24:08 >> 22:24:08 >> 2 errors 22:24:08 Warning: Task "jshint" failed.
So if your commit is marked as failure, just like with failures from phplint, puppetlint or phpunit: Click the link from jenkins-bot and follow the trail.
-- Timo Tijhof