release management system - architectural question
- by Sonic Soul
Every place i've worked created their own release process, and all of them worked pretty well, however it took pretty good effort (and often a dedicated team) to manage releases.
I am currently at a new place, and about to design such a system, however this time the team is very lean and we won't have dedicated resources to releasing. It will be up to development manager until the system is proofed enough for other developers to use.
we're using Subversion as code repository, Team City as the build server, Jira issue tracker, Oracle db.
I was thinking about writing a basic workflow app, that will let developers create a new manifest which will specify the following items.
release details (who, jira issues etc)
workflow step (dev, test, uat, prod approved, prod released)
source files
that last item is where it can get hairy. especially with database scripts.
Figured I'd ask if there is a good pattern, or off the shelf product that could help with the database part, or perhaps the whole process. I briefly tested Red Gate Oracle deployment tool, but it didn't work out as well as I had hoped (from 1 day of testing at least)
Questions:
I think I could get around releasing of our code with something like Octopus Deploy straight from Team City. I am not clear however, how I could create a simple database deployment part, that will track which version of which script (from subversion) has been deployed where.
Is there already some utility I could utilize for navigating subversion to choose which scripts should be released, instead of writing one from scratch. I'd just need it to produce some manifest of paths + versions.