We currently have several projects which can not be tested with our current
Jenkins test infrastructure, and as a consequence are hosting their primary
code repositories on github:
* RESTBase <https://github.com/wikimedia/restbase> -- missing Cassandra
support
* iOS Mobile app
<https://lists.wikimedia.org/pipermail/wikitech-l/2015-September/083005.html>
--
missing OS X platform
Other projects can only run a small portion of their test suite via Jenkins:
* mw-ocg-latexer
<https://github.com/wikimedia/mediawiki-extensions-Collection-OfflineContentGenerator-latex_renderer>
-- requires LaTeX from PPA, image utilities (`jpegtran`).
An alternative to allow these apps to be hosted on Wikimedia infrastructure
(gerrit, eventually phabricator) is to allow travis integration with
jenkins as an optional service.
npm-travis <https://github.com/cscott/npm-travis> (
https://github.com/cscott/npm-travis) is a tool which will trigger Travis
builds from NPM by pushing to a throwaway branch, which is then cleaned up
after the tests complete. It integrates well with the Gerrit access
control mechanism: the "Travis Bot" user can be granted push access only,
and only to branches prefixed with `npm-travis/`, so it cannot be used to
push changes to the master or deployment branches.
This isn't a replacement for our jenkins test infrastructure, but it allows
us to accommodate oddball repositories without taxing our infrastructure
team or resorting to offsite repository hosting.
There are WIP patches for integrating `npm-travis` with our jenkins
infrastructure (
https://gerrit.wikimedia.org/r/173045,
https://gerrit.wikimedia.org/r/173046) but they seem to be blocked on
policy disagreements. This RFC aims to resolve the policy issues.
This RFC in Phabricator:
https://phabricator.wikimedia.org/T114421
--scott
--
(
http://cscott.net)