quickstart for continuous integration
TRANSCRIPT
![Page 1: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/1.jpg)
Quickstart for
CONTINUOUS INTEGRATION
![Page 2: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/2.jpg)
01 Introduction
What is CI?
![Page 3: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/3.jpg)
Continuous Integration objectives 3
• Support team work integration: • Component x Software x Infrastructure
• Anticipate integration phase • Short & fast integration cycles • Significantly reduce integration problems and
allows a team to be more productive. • Accelerate software development and release
01
![Page 4: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/4.jpg)
Benefits 4
• Anticipating risks • Early execution of the integration cycle, not only at the
pre-release stage. • Radically reducing errors
• Test practice leads to product maturity. • Fast and continuous feedback
• Reporting, metrics and status in minutes, not hours or days.
• Lowering release stress • Release in a few weeks not months
• Powering cross-team collaboration • Self-service builds for developers, testers, operations,
business people and others
01
![Page 5: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/5.jpg)
501
“Continuous Integration has become a mainstream technique for software development”
(Martin Fowler, 2006)
![Page 6: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/6.jpg)
How do I start?
02 Getting started!
Build & Scripting Tools
"
Configuration Management
#CI Tool
>Playground
%Code Repository
![Page 7: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/7.jpg)
Code Repository 702
%
Private hosting Hosting sites
github.com bitbucket.org code.google.com sourceforge.net assembla.com
![Page 8: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/8.jpg)
Building & Scripting 8
!
Building Scripting• Tasks automation:
operating system tasks, releasing steps, publishing artifacts, deployment scripting
• Dependency Management • Build • Test • Packaging • Deployment
02
Do not rely on IDE settings, use Command-Line Interface (CLI) like a boss
![Page 9: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/9.jpg)
Choosing the right toolkit 9
Building Tools Scripting Languages
Platform based Windows batch Linux bash, shell
Object-oriented Ruby JavaScript Python Groovy
Javascript: Grunt, Gulp
Java: Ant, Maven, Gradle
.NET: MSBuild
!
02
![Page 10: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/10.jpg)
Configuration management 10
"
• Externalized application configuration: files, environment variables, etc.
• Define multiple application configuration profiles • Local development & unit testing • CI build & integration testing • Releasing for staging, production
• Integration tests may require some external tools and database setup.
02
![Page 11: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/11.jpg)
Sample grails data source configuration 11
"
02
![Page 12: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/12.jpg)
Playground 12
>
Dedicated Machine Distributed
CI Server + App build stack+ App runtime stack
CI ServerApp X stack
App Y stack
Server-side infra structure models
QExternal Devices
02
![Page 13: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/13.jpg)
Playground: Keep it Simple 13
>
• Virtualize wherever possible • You can found some VMs ready to use on the
market: Amazon AWS, Bitnami.com…
• Keep a manifest file for the application stack, aka README
• Minimum software requirements • Operating system version • Configuration updates • Installation steps
• build stack • runtime stack
02
![Page 14: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/14.jpg)
CI by Jenkins
03 Practice
![Page 15: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/15.jpg)
Configuring a CI system with Jenkins 15
• Building/testing software projects continuously • Monitoring executions of externally-run jobs
03
What is Jenkins?
jenkins-ci.org
![Page 16: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/16.jpg)
Create a Job / Task 16
• Parameters • Pre-conditions • Source Code • Triggers • Build steps:
• No tricks here please • Just call the scripts and tools • Treat scripts as source code
• Post conditions • Post build tasks
03
![Page 17: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/17.jpg)
Statistics, reports and notifications 17
Build status
03
![Page 18: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/18.jpg)
18
Code Coverage
Statistics, reports and notifications
Reference: [1] JaCoCO Plugin: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin
03
![Page 19: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/19.jpg)
19
Integration with Code Quality Management Tools
Statistics, reports and notifications
Reference: [1] Sonarqube: http://www.sonarqube.org
03
![Page 20: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/20.jpg)
Comments 20
&#ContinuousDelivery
#ContinuousDeployment
#Self-service deployment
#ContinuousTesting
![Page 21: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/21.jpg)
See more…
• Continuous Integration practices
• References: [1] http://martinfowler.com/articles/continuousIntegration.html
[2] http://refcardz.dzone.com/refcardz/continuous-delivery-patterns
[3] http://guide.agilealliance.org/guide/ci.html
' fabricioepa.wordpress.com
![Page 22: Quickstart for continuous integration](https://reader030.vdocuments.site/reader030/viewer/2022020307/55a6b1c91a28ab475c8b4830/html5/thumbnails/22.jpg)
Contact
FABRICIO EPAMINONDAS ( linkedin.com/in/fabricioepa
' fabricioepa.wordpress.com
) @fabricioepa