Jenkins - From Continuous Integration to Continuous Delivery
Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
-
Upload
james-strong -
Category
Technology
-
view
252 -
download
0
Transcript of Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins
![Page 1: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/1.jpg)
Continuous Integration with Jenkins
James StrongCloud Person and other stuff
![Page 2: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/2.jpg)
Integrations
Continuous Delivery
Continuous Deployment
Continuous Integration
Code Build Integrate Test Release Deploy
INTEGRATON HELL
![Page 3: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/3.jpg)
What is Continuous Integration Continuous Deployment?
Continuous – All day, Every day.
Integration – This is my code, that’s your code, Let’s get together.
Deployment – Deploy to ALL the servers.
![Page 4: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/4.jpg)
Solution
![Page 5: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/5.jpg)
Some Running Rules1. 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
![Page 6: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/6.jpg)
What is Jenkins?
Some Facts:
• 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
http://pages.zeroturnaround.com/Java-Tools-Technologies.html
![Page 7: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/7.jpg)
Why is Jenkins?
Why Jenkins?
• Easy installation
• Easy configuration
• Rich plugin ecosystem
• Extensibility
• Distributed builds
![Page 8: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/8.jpg)
Jenkins
DockerGitHub
How Jenkins enables CI/CD
Code Build Integrate Test Release Deploy
Plugin PluginPlugin Plugin Plugin
![Page 9: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/9.jpg)
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 Jenkins
![Page 10: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/10.jpg)
Anatomy of a JobProject Name/Description
Plugin
Build and Post Build Steps
Job chaining
Notification
![Page 11: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/11.jpg)
Plugins
• Help Jenkins to interface with other tools to make CI possible
• Can be installed/updated using Jenkins web UI or by hand
• Developers can create their own plugins if needed (rarely if ever)
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
![Page 12: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/12.jpg)
Github Webhooks
https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Pluginhttps://help.github.com/articles/about-webhooks/
• 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• Manual• Automatic
![Page 13: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/13.jpg)
Job Notifications
• Slack
• PagerDuty
![Page 14: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/14.jpg)
Bringing them together
![Page 15: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/15.jpg)
THE END
![Page 16: Louisville Software Engineering Meet Up: Continuous Integration Using Jenkins](https://reader035.fdocuments.us/reader035/viewer/2022062522/58a1b36d1a28ab537c8b4f2d/html5/thumbnails/16.jpg)
More Information
https://jenkins-ci.org/
https://dzone.com/refcardz/jenkins-paas
https://www.cloudbees.com/jenkins/about
https://yow.eventer.com/events/1004/talks/1062