Release Management in SVN and Git

We use a home release management system integrated with SVN that performs the following actions:

The developer gives the name, repository, set of changes, selects the name of the code browser, the name and the changed QA code in svn repo, and is sent for approval

QA and Code reviewer approve the release, and it is available for download in zip format. Files in the zip archive are tracked using svn changeset.

QUESTION Now: Is there any open source implementation of a more advanced release management system that can perform the above tasks for us? We also plan to migrate our SVN repositories to GIT, so it would be a big plus if the release supported both systems.

PS I read about Jenkins and Maven, but I'm not sure that they will do everything we want.

+4
source share
2 answers

"The developer gives the name, repository, set of changes, selects the reviewer code name, name and name change in svn repo and is sent for approval"

Since you mention that you are looking for a switch to Git, you can consider Gerrit . Gerrit can host your Git repositories as well as manage your submit / review / merge workflow.

There's a video from Alex Blewitt showing how Gerrit can be used with Jenkins. I recommend the video, but it goes pretty fast.

The workflow we use:

  • Developer submits changes to Gerrit for viewing.
  • Jenkins builds the changes and indicates in the overview item whether it will be created.
  • The reviewer receives embedded artifacts from Jenkins and tests them.
  • The reviewer also looks at the code and writes the changes to Gerrit with what they want to see fixed.
  • The developer updates the changes in accordance with the reviews.
  • Repeat above if necessary.
  • The reviewer approves this change and merges into the main branch.

Gerrit is used for some large projects, including the Android project. You can see it in use here .

Edit: You will need a Jenkins plugin that will provide integration between Gerrit and Jenkins. There are at least two Gerrit-related plugins for Jenkins. The above applies to the Gerrit Trigger plugin.

See also: Gerrit Documentation .

+2
source

Well, you basically want to automate the following steps, and for that you need CI.

"The developer gives the name, repository, set of changes, selects the reviewer code name, name and name change in svn repo and is sent for approval"

Ask your developers to correctly tag and add all the necessary information before committing the code.

If you've already read about Hudson / Jenkins, then

  • You can configure the Hudson job (CI) to extract the above information from the SVN / GIT commit history, and the tester / reviewer should get information about this. There are many plugins for this, see the plugin for the release of mange , email-ext should be enough to achieve this.

"QA and Code reviewer approved the release, and it became available for download in zip format. Files in the zip archive are tracked through the svn revision."

For this you need automatic viewing / testing. First find out how the browse is done, and then you can add the build step to Hudson / Jenkins to run a script that does the task. If the script crashes, it again initiates emails to the person who executed the code (see Email-ext module). Finally, you can archive the assembly and archive it. Maybe you don’t even need to write a script to view only Google for a “hudson code review” or a “Jenkins code review”.

Believe me, there is a plugin for all this. You just need to read a little and go through Jenkins / Hudson.

+2
source

Source: https://habr.com/ru/post/1440495/


All Articles