Do we really need Continuous Integration if we make all tests pass before we push?
Each of our team members runs all kind of tests and makes sure all of them pass before pushing to central/origin repositor开发者_运维技巧y. Do we still need CI server in this case? We have different development and production environment(mac vs linux). One simple reason to still have CI server, if we set up CI server on linux is that we are running test in more production like environment. But are there some solid reasons to still have it?
Thanks
I think you hinted at one of the biggest benefits of continuous integration in your question. It gives you the chance to make sure that the code will check out and run as expected based on what is in your source control repository. If you are working in a team it isn't that uncommon for a person to make a change in their local environment which might have a dependency on another resource (maybe a dll) that they forget to check into the source control repository, your ci server will obviously fail, but the application will compile and tests will run on that developers machine.
Andrew has a good point. To expand on that, many CI software packages can be used for more than just your build. You can use it to automate many development processes.
- Deploying to shared environments
- Running automated tests
- Giving periodic automated test status reports (e.g. daily)
- Archiving builds
Check out the CI article on Wikipedia:
http://en.wikipedia.org/wiki/Continuous_integration#Recommended_practices
精彩评论