2. Contents
Definition
Workflow
Popular tools for CI
Requirements
Principles
Functionalities
Jenkins configuration
Advantages
Disadvantages
3. Continuous Integration
“Continuous Integration is a software development
practice where members of a team integrate their work
frequently. Each integration is verified by an automated
build (including test) to detect integration errors as
quickly as possible”- Martin Flower.
5. Workflow contains following steps:
• Integrated
All changes up until some point are combined into the project.
• Built
The code is compiled into a executable or package
• Tested
Automated test suites are run
• Archived
Versioned and stored
• Deployed
Loaded onto the system[server] where developers can interact with it.
6. Popular tools for CI
Hudson/Jenkins
TravisCI
TeamCity
BuildBot
Bamboo
7. History of Jenkins
• Jenkins is an open source continuous integration tool
written in java.
• The primary developer of Hudson/Jenkins is Kohsuke
Kawaguchi.
• Jenkins is forked from Hudson after a dispute with
Oracle.
• Jenkins organization on GitHub had 567 project
members and around 1,100 public repositories.
• Kohsuke Kawaguchi received a Google-O'Reilly Open
Source Award for his work on Jenkins project
9. Principles
The following are the principles which needs to be
follow
• Maintain a code repository
• Automate the build
• Make the build self-testing
• Everyone commits to the baseline every day
• Every commit should be built
• Keep the build fast
• Test in a clone of the production environment
• Automatic deployment
10. Major functionalities
• Integrate with many different version control systems
• Generate test reports
• Push to various artifact repositories
• Deploys directly to production or test environments.
• Publish Junit test results and javadocs
• Email notifications
11. Jenkins configuration
We can install Jenkins in following ways:
Installing Jenkins on Ubuntu
Jenkins provides Debian/Ubuntu packages which
install Jenkins and register Jenkins as start
service[/etc/init.d/jenkins]
Using the .war file of Jenkins
start Jenkins directly via the command line with
java -jar jenkins*.war.
Then jenkins running under the following URL:
http://localhost:8080/jenkins
12. Advantages
• We can easily configure from the browser
• When unit tests fail or a bug emerges, developers
might revert the codebase to a bug-free state,
without wasting time.
• Developers detect and fix integration problems
continuously
• Early warning of broken/incompatible code
• Immediate unit testing of all changes
13. • Constant availability of a "current" build for testing,
demo or release purposes.
• Immediate feedback to developers on the quality,
functionality, or system-wide impact of code they are
writing.