Benefits of Continuous Integration workflow
I'm currently planning a new project and considering the products I need to buy. Currently I'm quite definite we'll be using Git as a VCS, but I'm quite new to the whole Continuous Integration concept and confused about the benefits we can get from it. But I have a sense that this thing might greatly increase the future workflow of the team of about 5 developers I'm planning to gather on a JVM web project.
So my questions are:
- What benefits do I get from using some CI system compared to simply using some private Git repository like beanstalkapp?
- If I'll be using some CI system will I need to also setup or rent some private VCS repository or will it already 开发者_如何转开发be integrated in CIS?
- I find myself very trusting to all JetBrains products I know so far, so I'm considering TeamCity. Is this a good choice?
- Just in case. I'm wondering if there are some better "cutting edge" VCSs compared to Git I should consider?
1) Benefits - The benefits are talked about in many places, I will just link to them as I cannot do a better job of it -
http://martinfowler.com/articles/continuousIntegration.html#BenefitsOfContinuousIntegration
http://en.wikipedia.org/wiki/Continuous_integration#Advantages
2) CI tools like Teamcity, Hudson / Jenkins and CruiseControl usually do not have integrated VCS. They have the ability to poll the VCS you are using and build, test, deploy etc. You will have to setup a separate repository with the VCS of your choice, private or otherwise.
3) TeamCity is an excellent CI tool. I am using it in my project with the full license. For a 5 developer team, I think TeamCity, with its developer focused features and setting will be a great CI tool. You might want to look at Jenkins though.
4) Hg ( mercurial) and Git are both pretty well known and "cutting edge" in the DVCS world. SVN is stil the most widely used VCS I believe. Git would be a good choice.
- The main benefit of CI (with TDD) is that it helps you identify failing code early.
- A CI tools like CruiseControl should integrate to your SVN repository with the help of plugins, but you need to check compatibility.
- Cant help you here, I don't know TeamCity, but I have used CruiseControl and I was happy with it.
- Personally I use my own subversion server. For work I always favor having full control of the supporting system. Now we are moving our VC Server to the cloud, but still setting up our own.
精彩评论