Galooshi / happo

Visual diffing in CI for user interfaces
504 stars 16 forks source link

Provide pluggable way to integrate with any CI or code review system #143

Open lencioni opened 8 years ago

lencioni commented 8 years ago

We want happo to be as easy to set up as possible. People use all different kinds of CI systems (e.g. Jenkins, Travis CI, CircleCI) and code review systems (e.g. Gerrit, GitHub, GitHub Enterprise, GitLab, BitBucket). I think it makes sense to enable plugins to be written to easily set up Happo to interface with any CI system or code review system.

I think this should be sequenced after we rewrite in JavaScript (#81). Plugins could be npm packages in the form of happo-plugin-travis-ci and happo-plugin-github.

cc: @kesne

trotzig commented 8 years ago

One idea that would get this going sooner without being blocked on transferring to a node project is to expose a few scripts that you can use.

happo travis-ci
happo jenkins-ci

etc.

trotzig commented 7 years ago

Just a thought: If we decide to implement this as npm modules, and allow users to plug them in using .importjs.js, we should make sure that plugins are explicitly imported and used/instantiated:

const HappoPluginTravisCI = require('happo-plugin-travis-ci');

module.exports = {
  plugins: [
    new HappoPluginTravisCI(),
  ]
};

I've seen others include plugins through string reference only (e.g. http://eslint.org/docs/developer-guide/working-with-plugins) and I find it too implicit.