Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development.
- Jenkins, a continuous build tool, enables teams to focus on their work by automating the build, artifact management, and deployment processes.
- Jenkins’ core functionality and flexibility allow it to fit in a variety of environments and can help streamline the development process for all stakeholders involved.
Continuous Integration (CI)
- What is it?
- What are the benefits?
- Continuous Build Systems
CI Defined –
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily – leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.CI – What does it really mean?
At a regular frequency (ideally at every commit), the system is:
- Integrated All changes up until that point are combined into the project
- Built The code is compiled into an executable or package
- Tested Automated test suites are run
- Archived Versioned and stored so it can be distributed as is, if desired
- Deployed Loaded onto a system where the developers can interact with it
CI – Workflow
CI – Benefits
- Immediate bug detection
- No integration step in the lifecycle
- A deployable system at any given point
- Record of evolution of the project
CI – The tools
- Code Repositories
- SVN, Mercurial, Git
- Continuous Build Systems
- Jenkins, TeamCity, Bamboo, Cruise Control
- Test Frameworks
- JUnit, xUnit, Mocha, Cucumber, CppUnit
- Artifact Repositories
- Nexus, Artifactory, Archiva