Continuous Integration, in software engineering, is the practice of merging all of the developer's working copies into a shared mainline, several times a day. XP or Extreme Programming adopted the CI or Continuous Integration concept and performed advocate integrating more than once a day, probably as many as ten times.

The main aim of CONTINUOUS INTEGRATION

The main goal of Continuous Integration is to prevent integration issues. CI is not accepted universally as an enhancement over frequent integration, thus it is paramount to differentiate between the two since there is disagreement regarding the virtues of each. In XP, continuous integration was meant to be used in combination with automated unit tests that are written through test-driven development practices. This was conceived initially as running unit tests in the local environment of the developer and verifying that they all passed before committing to a mainline. This helps in avoiding a developer’s work-in-progress breaking another copy of a developer. If necessary, features that are partially complete could be disabled before committing, like using feature toggles for instance.

Whether an organization is focused on continuous delivery or deployment, a Continuous integration tool is a critical piece of the puzzle. CI tools help in facilitating not only building, testing and deploying software but the whole release process too. Moreover, businesses that wish to experiment with alternate CI tools have so many options.



POPULAR CONTINUOUS INTEGRATION TOOLS
  1. JENKINS
    An open source continuous integration tool that is written in Java. This project was formed by Hudson after a dispute with Oracle. It offers CI services for software development. It’s a server-based system that runs in a servlet container such as Apache Tomcat. Builds could be started by different means, such as triggered by commit in a version control system through scheduling via a cron-like mechanism through building when other builds have completed and through requesting a specific build URL as well.

  2. BAMBOO
    It is a continuous integration server from the makers of JIRA, Atlassian, Crows, and Confluences. It supports builds in any programming language using any build tool, such as Maven, Ant, Mae and any command-line tools. Build notifications may be customized on the kind of event and received through instant messages, email, RSS or pop-up windows in Inteli DEA and Eclipse-based IDEs. It is free for open-source projects. Commercial companies are charged based on the number of build agents required.

  3. CODESHIP
    It is a continuous deployment solution that is focused on being an end-to-end solution to run tests and deploy applications. Furthermore, it focuses on reliability, speed, and simplicity. Codeship is configured to build and deploy an app from GitHub to the staging or production platform of choice. It offers various powerful setup options.

  4. TRAVIS CI
    It is an open-source distributed, hosted continuous integration service that is used for building and testing projects hosted at GitHub. Projects that are open-source could be tested without charge via travis-ci.org. Private projects could be tested in the same location with a fee. TravisPro offers custom deployment of a proprietary customer’s own hardware version.

  5. CONTINUUM
    It is a partner to Apache Maven and is a continuous integration server that runs builds on a configurable schedule. Its features include release management, automated builds, role-based security and integration with popular source control management systems and build tools. Whether one has a centralized build team or want control of release in the developer's hands, Continuum could help boost quality and to maintain a consistent build environment.

  6. TEAMCITY
    A Java-based build management and continuous integration server from JetBrains, which was first released on October 2, 2006. It’s a commercial software that is licensed under a proprietary license. A Freemium license for up to 20 build configuration and 3 free Build Agent licenses is available. Open source projects may request a free license.

  7. BUILDMASTER
    An automated deployment tool that is designed by Inedo, a software development team. It combines features for managing and automating processes that are related primarily to continuous integration, production deployments and database change scripts. It is browser-based and could be used out-of-the-box. The feature set and scope puts it in line with DevOps movement and marketed as more than a release automation too. Website • Wikipedia

  8. SNAP CI
    Enables automating the build and deployment of Java, Clojure, Python, and PHP apps to different deployment platforms. It’s the next evolution in continuous delivery and continuous integrations software technology leaders.

  9. CRUISECONTROL
    A web interface is provided to see the details of the present and previous builds. It lets one perform a continuous integration of any software development process. It’s a Java-based framework for a continuous bid process. It includes but not limited to Ant, plugins for email notification and more. Tools for continuous integration are created to make the development process easier. CI was meant to be used in combination with automated unit test driven development.
Next Recommended Reading
Google Hack Tools for Searching