Add Jenkins CI integration
Review Request #9507 — Created Jan. 27, 2018 and submitted — Latest diff uploaded
Jenkins is a continuous integration environment, widely used in industry
for running automated test suites, performing deployments, as well as
many other use cases.This change adds a Jenkins integration to Review Board. This will enable
users to add this integration and have new review requests trigger
builds on a Jenkins server.This additionally features a Jenkins plugin. This plugin features two
build steps. The first build step, to occur prior to the main job's
build steps, applies the review request's diff usingrbt patch
. The
second, post-build step notifies review board of the build's status.
rbintegrations/util/urlrequest.py
featured duplicate code from the
reviewboard repository,reviewboard.hostingsvcs.service.URLRequest
.
That class is currently an internal class, so rather than importing it
in all files that use it in this repository, for now we'll import it
once in this file. OnceURLRequest
is refactored in the reviewboard
repo, we can remove theurlrequest.py
file and import the original
class.
- Unit tests have been created and ran for the Jenkins java plugin
- Run
mvn test
in the base directory
- Run
- Unit tests have been created and ran for rbintegrations
- Manual testing of creating reviews, publishing them, triggering
builds on Jenkins server, and those builds updating the status
once complete.