views:

68

answers:

1

Im working to set up an good continuous integration with a branching and trunk structure.

But how should we think?

We want that our continuous integration tool to give us a version to test once a week which will stay at that version for a week, well sometimes we will do bugfixes until release.

Should I create a branch called like Testbranch and let the testbranch always been build and put up to the testserver? Or shall I think in any other direction?

+1  A: 

I think you would have CI builds on both the "test / soon to be released" branch and another CI build that watches the mainline.

Any bug fixes to the test branch would be built and moved to the test server. Changes to the mainline would just be built with any sort of unit testing you have in place. Weekly, you would sync the mainline and test branches which would trigger a build on the test branch to start your testing of the new features.

I'd also recommend getting a second test server so you can deploy the mainline regularly as well and validate that it's on track. Over the long term, this may allow you to push up your test cycle so more "in development" items get tested immediately. This may eventually allow your team to leave the branching model and just have one week sprints where new functionality is built, tested and delivered in a single week.

EricMinick