Continuous Integration (CI) is a development practice that requires developers to integrate code into a shared repository several times a day. Each check-in is then verified by an automated build, allowing teams to detect problems early.
By integrating regularly, you can detect errors quickly, and locate them more easily.
Say goodbye to long and tense integrations Increase visibility which enables greater communication Catch issues fast and nip them in the bud Spend less time debugging and more time adding features Proceed in the confidence you’re building on a solid foundation Stop waiting to find out if your code’s going to work Reduce integration problems allowing you to deliver software more rapidly
Continuous Deployment is closely related to Continuous Integration and refers to the release into production of software that passes the automated tests.
"Build" means compile, unit test, integration test, quality analysis, etc.
The result is either "success" or "failure". If it is a success, we say that "the build is clean". If it is a failure, we say that "the build is broken". The build usually gets broken because someone breaks it by committing new code that turns previously passing unit tests into failing ones.
Crucially, if the build fails, the development team stops whatever they are doing and fixes the problem immediately
You define it in a job and he does that job.
Easy installation: Just run java -jar jenkins.war, deploy it in a servlet container. No additional install, no database. Prefer an installer or native package? We have those as well.
Easy configuration: Jenkins can be configured entirely from its friendly web GUI with extensive on-the-fly error checks and inline help.
Rich plugin ecosystem: Jenkins integrates with virtually every SCM or build tool that exists. View plugins.
Extensibility: Most parts of Jenkins can be extended and modified, and it's easy to create new Jenkins plugins. This allows you to customize Jenkins to your needs.
Distributed builds: Jenkins can distribute build/test loads to multiple computers with different operating systems. Building software for OS X, Linux, and Windows? No problem.
Web developers – Create/Update web applications leveraging supported archetypes and maven application dependency release repository.
Check code into specified Github master when ready to deploy web application to specific environment.
Jenkins will leverage maven to build the web application by checking out the specific version in Github and compiling to produce a war file.
Maven will executed any test cases built into the project to determine the success of the build.
Jenkins will deploy war file to specified application servers and restart each instance.
Jenkins will publish the build to artifactory to manage the builds for the web application
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
Continuous Integration with
Cloud Person and other stuff
Some Running Rules
1. Maintain a code repository
2. Automate the build
3. Keep the build fast
4. Make the build self-testing
5. Commit early, commit often
6. Every commit to the mainline gets built
7. Everyone can see the results of the build
8. Automate the deployment
What is Jenkins?
• Written in Java.
• Jenkins was originally developed as the Hudson project.
Hudson's creation started in summer of 2004 at Sun.
• Jenkins - , first released in Feb 2005
• CloudBees - Jenkins as a Service
Jenkins is just war file that schedules all things
• java -jar jenkins.war
How Jenkins enables CI/CD
Code Build Integrate Test Release Deploy
Plugin PluginPlugin Plugin Plugin
What is a Job/Item ?
• Basic currency of the Continuous Integration server
• Usually contains steps to compile, test, package, deploy your app and report
• Leverages plugins
• Establishes an Upstream-Downstream Relationship with other Jobs
• Can be scheduled or run manually
• Can run freestyle Bash commands. Anything you run in Linux you can run in
Anatomy of a Job
Build and Post Build Steps
• Help Jenkins to interface with other tools to make
• Can be installed/updated using Jenkins web UI or
• Developers can create their own plugins if needed
(rarely if ever)
• Webhooks provide a way for notifications to be delivered to an external web
server whenever certain actions occur on a repository or organization.
• A repository is pushed to
• A pull request is opened
• A GitHub Pages site is built
• A new member is added to a team
• Trigger a build when a change is pushed to GitHub
• This feature enables builds after post-receive hooks in your GitHub repositories