I have been charged with setting up a CI server in my company and I am looking for some advise on what build configs i need for my projects. As a first step i have set up the builds as:
Commit Build: Compiles code and runs unit tests
Integration Build: Compiles code and runs long running integration tests
I am unsure what else i would need to complete the CI picture. For example What build configs do you have in your shop?
I know there must be a step for deploying my successful builds, but would l make the deployment part of Integration?
Using TeamCity, MSBsuild and SVN
Looking for much needed advice.
The most complete build I ever saw did the following things in the given order. There are two groups, all targets in each group are executed regardless of failure, but the group fails if a member of the group fails. So we see ALL problems.
First group working on sources:
Second group is working on the produced code, only if the first step succeeded:
This is the main build that is triggered time after time for commits. It did a lot, but with some powerfull machine using several cores it was around 4 mins for 500k LOC. Testers can get the newest snapshot builds if they like to.
Long running integration tests (2 hours each) would run once per night and only do
Another build was a purely documantion build, triggered once per night. It would never fail.
Things that we run in a previous project on each CI run where Code Coverage Records, publish the automated generated documentation and Checkstyle reports.
This gave us some stats about the statistical quality of each checkin for planing and improving our work habits.
We have build configurations for
The deployment configuration allows a non-technical QA resource to deploy to the test environment whenever they're ready to test something, and avoids the confusion of whether a bug fix has hit the test environment yet.
We had a similar conversation at the most recent CITCON North America (Continuous Integration and Testing conference) where we all shared our experiences and tried to put together a road map from simple CI to very built out CI and release systems.
The original conference notes are here . Along with a Flickr photostream . A cleaned up version is available at the urbancode blog as well.
The Aussies revisited the topic at CITCON Brisbane and a pencast of that is available
Hope some of those resources are useful.
I am working on this at the moment. Our build configuration does the following:
Build:
Now we have an application that can be published to any server simply by copying it to the deployment directory, and renaming the appropriate config file to web.config
We then have 3 more configurations for deployment. The first gets deployed to a development environment after every successful build. This gives us a working version of the latest codebase at all times. The second gets deployed to staging manually. This is set to deploy from the last pinned development build. Finally there is a live deployment configuration then deploys from the last deployed staging build. This does a number of extra things:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.