Continuous Integration workflow for SVN

702 Views Asked by At

I am trying to setup a continuous integration workflow for SVN just like for a GIT project. Can any one suggest good code review tool which would integrate with Jenkins for +1 functionality and also allows users to review code (+2 functionality) like Gerrit.

I have seen several questions related to this here, but not same as mine. I want to integrate svn with review tool + Jenkins in Windows environment. I see that ReviewBoard installation doesnt work well with windows and phabricator isnt supported on windows. Can any one suggest any alternatives ?

Also, can you share your experience on what workflow you setup for svn (linux or windows)..

1

There are 1 best solutions below

2
On

Gerrit is specifically designed for this. As described here:

Gerrit is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. It integrates closely with Git, a distributed version control system.

I highly recommend you take a look at this and this for detailed information on integrating Gerrit. For an in-depth workflow utilizing Gerrit, check here.

As mentioned above, to make your life easier, I would definitely utilize the Gerrit Trigger plugin.

This plugin integrates Jenkins to Gerrit code review for triggering builds when a "patch set" is created.


EDIT: For a code review tool that integrates with SVN, I would recommend Crucible by Atlassian. It is not free, but for small teams it has a one time cost of $10 which is very reasonable in my opinion.

Additionally, there are ways you can trigger Jenkins actions (ie: kicking off a build) based on Crucible events (ie: code reviewed successfully with no issues listed by reviewer). Try this link for more detail on this.

The only downside with Crucible I have issues with is the storage of SVN credentials in plaintext. Atlassian stated here that they are not willing to fix this, and instead encourage teams to use a 'system account' with read-only access. This can be a problem for dev teams that do not have a system account (like mine). Besides that, it is an excellent tool.