Continuous integration/Running locally

Rather than waiting for gerrit to trigger Jenkins jobs that report warnings and errors, you can and should run the tools locally.

You can either run them on a git pre-commit hook, or configure your editor to run them.

For vi/vim, Syntastic offers whitespace checking (the red marks in gerrit review), jshint, php, puppet, etc. checking. For a sample configuration, see hashar's .vimrc file.

Note that Jenkins doesn't actually run the tests on your branch, it first merge your branch into master and then runs the tests. This step may fail in which case gerrit will show an obvious jenkins rebase failure. But if there was a recent change in master that broke your code, but doesn't conflict directly (perhaps because an interface you were using changed), the tests may succeed in your local branch but fail in the merge commit. If Jenkins reports such failures, you should first rebase your change onto master (you can even use Gerrit's rebase button for this), at which point the tests will start failing locally as well.