SlideShare a Scribd company logo
Quickstart for
CONTINUOUS
INTEGRATION
01
Introduction
What is CI?
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
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
501
“Continuous Integration has become a mainstream
technique for software development”
(Martin Fowler, 2006)
How do I start?
02 Getting
started!
Build & Scripting Tools
"
Configuration
Management
#
CI Tool
>
Playground
%
Code Repository
Code Repository 702
%
Private hosting Hosting sites
github.com
bitbucket.org
code.google.com
sourceforge.net
assembla.com
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
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
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
Sample grails data source configuration 11
"
02
Playground 12
>
Dedicated Machine Distributed
CI Server + App build
stack+ App runtime stack
CI Server
App X stack
App Y stack
Server-side infra structure models
Q
External Devices
02
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
CI by Jenkins
03 Practice
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
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
Statistics, reports and notifications 17
Build status
03
18
Code Coverage
Statistics, reports and notifications
Reference: [1] JaCoCO Plugin: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin
03
19
Integration with Code Quality Management Tools
Statistics, reports and notifications
Reference: [1] Sonarqube: http://www.sonarqube.org
03
Comments 20
&
#ContinuousDelivery
#ContinuousDeployment
#Self-service
deployment
#ContinuousTesting
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
Contact
FABRICIO EPAMINONDAS
( linkedin.com/in/fabricioepa
' fabricioepa.wordpress.com
) @fabricioepa

More Related Content

What's hot

Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration TestCampRO
 
Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017
Micro Focus
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Monitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsMonitoring at the Speed of DevOps
Monitoring at the Speed of DevOps
DevOps.com
 
Securing deployment pipeline
Securing deployment pipelineSecuring deployment pipeline
Securing deployment pipelineLen Bass
 
Insurance for your Assurance Team
Insurance for your Assurance TeamInsurance for your Assurance Team
Insurance for your Assurance Team
Worksoft
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
David Funaro
 
Test Automation is for Everyone
Test Automation is for EveryoneTest Automation is for Everyone
Test Automation is for Everyone
Worksoft
 
Test Strategies in Microservices
Test Strategies in MicroservicesTest Strategies in Microservices
Test Strategies in Microservices
Mesut Özen
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
David Funaro
 
Packaged vs. Custom Application Testing
Packaged vs. Custom Application TestingPackaged vs. Custom Application Testing
Packaged vs. Custom Application Testing
Worksoft
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
Edureka!
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
Excella
 
Continuous Integration - Step by Step
Continuous Integration - Step by StepContinuous Integration - Step by Step
Continuous Integration - Step by Step
William Simms
 
Devops
DevopsDevops
Devops
Mauro Cossu
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
Stanislav Tiurikov
 
Continuous testing
Continuous testing Continuous testing
Continuous testing
Dr Ganesh Iyer
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testing
Moataz Nabil
 
Continuous testing for devops
Continuous testing for devopsContinuous testing for devops
Continuous testing for devops
Subrahmaniam S.R.V
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
Codemotion
 

What's hot (20)

Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration
 
Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017Innovation in Action - #MFSummit2017
Innovation in Action - #MFSummit2017
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Monitoring at the Speed of DevOps
Monitoring at the Speed of DevOpsMonitoring at the Speed of DevOps
Monitoring at the Speed of DevOps
 
Securing deployment pipeline
Securing deployment pipelineSecuring deployment pipeline
Securing deployment pipeline
 
Insurance for your Assurance Team
Insurance for your Assurance TeamInsurance for your Assurance Team
Insurance for your Assurance Team
 
The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014The Continuous delivery Value @ codemotion 2014
The Continuous delivery Value @ codemotion 2014
 
Test Automation is for Everyone
Test Automation is for EveryoneTest Automation is for Everyone
Test Automation is for Everyone
 
Test Strategies in Microservices
Test Strategies in MicroservicesTest Strategies in Microservices
Test Strategies in Microservices
 
Continuous delivery @wcap 5-09-2013
Continuous delivery   @wcap 5-09-2013Continuous delivery   @wcap 5-09-2013
Continuous delivery @wcap 5-09-2013
 
Packaged vs. Custom Application Testing
Packaged vs. Custom Application TestingPackaged vs. Custom Application Testing
Packaged vs. Custom Application Testing
 
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
DevOps Testing | Continuous Testing In DevOps | DevOps Tutorial | DevOps Trai...
 
Agile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard ChengAgile Engineering Best Practices by Richard Cheng
Agile Engineering Best Practices by Richard Cheng
 
Continuous Integration - Step by Step
Continuous Integration - Step by StepContinuous Integration - Step by Step
Continuous Integration - Step by Step
 
Devops
DevopsDevops
Devops
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Continuous testing
Continuous testing Continuous testing
Continuous testing
 
A guide for automated testing
A guide for automated testingA guide for automated testing
A guide for automated testing
 
Continuous testing for devops
Continuous testing for devopsContinuous testing for devops
Continuous testing for devops
 
The Continuous delivery value - Funaro
The Continuous delivery value - FunaroThe Continuous delivery value - Funaro
The Continuous delivery value - Funaro
 

Viewers also liked

Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web apps
Fabricio Epaminondas
 
Workshop Guide: RESTful Java Web Application with Spring Boot
Workshop Guide: RESTful Java Web Application with Spring BootWorkshop Guide: RESTful Java Web Application with Spring Boot
Workshop Guide: RESTful Java Web Application with Spring Boot
Fabricio Epaminondas
 
Understanding Web services
Understanding Web servicesUnderstanding Web services
Understanding Web services
Fabricio Epaminondas
 
Hexagonal architecture for java applications
Hexagonal architecture for java applicationsHexagonal architecture for java applications
Hexagonal architecture for java applications
Fabricio Epaminondas
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
Fabricio Epaminondas
 
Patni Hibernate
Patni   HibernatePatni   Hibernate
Patni Hibernatepatinijava
 
JPQL/ JPA Activity 3
JPQL/ JPA  Activity 3JPQL/ JPA  Activity 3
JPQL/ JPA Activity 3
SFI
 
Web Services Part 2
Web Services Part 2Web Services Part 2
Web Services Part 2patinijava
 
Working with jpa
Working with jpaWorking with jpa
Working with jpa
Ondrej Mihályi
 
JPQL/ JPA Activity 2
JPQL/ JPA Activity 2JPQL/ JPA Activity 2
JPQL/ JPA Activity 2
SFI
 
JPQL/ JPA Activity 1
JPQL/ JPA Activity 1JPQL/ JPA Activity 1
JPQL/ JPA Activity 1
SFI
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
Ondrej Mihályi
 
FinelyMe-JustFit Intro
FinelyMe-JustFit IntroFinelyMe-JustFit Intro
FinelyMe-JustFit IntroCheng Ta Yeh
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
Markus Eisele
 
Web Services Part 1
Web Services Part 1Web Services Part 1
Web Services Part 1patinijava
 
Spring Transaction
Spring TransactionSpring Transaction
Spring Transactionpatinijava
 

Viewers also liked (20)

Introduction to developing modern web apps
Introduction to developing modern web appsIntroduction to developing modern web apps
Introduction to developing modern web apps
 
Workshop Guide: RESTful Java Web Application with Spring Boot
Workshop Guide: RESTful Java Web Application with Spring BootWorkshop Guide: RESTful Java Web Application with Spring Boot
Workshop Guide: RESTful Java Web Application with Spring Boot
 
Understanding Web services
Understanding Web servicesUnderstanding Web services
Understanding Web services
 
Hexagonal architecture for java applications
Hexagonal architecture for java applicationsHexagonal architecture for java applications
Hexagonal architecture for java applications
 
Protocol buffers
Protocol buffersProtocol buffers
Protocol buffers
 
Patni Hibernate
Patni   HibernatePatni   Hibernate
Patni Hibernate
 
JPQL/ JPA Activity 3
JPQL/ JPA  Activity 3JPQL/ JPA  Activity 3
JPQL/ JPA Activity 3
 
Ejb5
Ejb5Ejb5
Ejb5
 
15 jpaql
15 jpaql15 jpaql
15 jpaql
 
15 jpa
15 jpa15 jpa
15 jpa
 
Web Services Part 2
Web Services Part 2Web Services Part 2
Web Services Part 2
 
Working with jpa
Working with jpaWorking with jpa
Working with jpa
 
JPQL/ JPA Activity 2
JPQL/ JPA Activity 2JPQL/ JPA Activity 2
JPQL/ JPA Activity 2
 
JPQL/ JPA Activity 1
JPQL/ JPA Activity 1JPQL/ JPA Activity 1
JPQL/ JPA Activity 1
 
How to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applicationsHow to bake reactive behavior into your Java EE applications
How to bake reactive behavior into your Java EE applications
 
FinelyMe-JustFit Intro
FinelyMe-JustFit IntroFinelyMe-JustFit Intro
FinelyMe-JustFit Intro
 
CQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java DevelopersCQRS and Event Sourcing for Java Developers
CQRS and Event Sourcing for Java Developers
 
Web Services Part 1
Web Services Part 1Web Services Part 1
Web Services Part 1
 
Spring Transaction
Spring TransactionSpring Transaction
Spring Transaction
 
Spring Data JPA
Spring Data JPASpring Data JPA
Spring Data JPA
 

Similar to Quickstart for continuous integration

Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
Md Jawed
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
Zahra Golmirzaei
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
Amazon Web Services
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
ajayrajaganeshkayala
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
Accelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzureAccelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft Azure
Perficient, Inc.
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016w2fong
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
Amazon Web Services
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
Jon Arild Tørresdal
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
Worksoft
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
Amazon Web Services
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
Amazon Web Services
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
Dashlane
 
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...Travis Lingenfelder
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An Overview
Synopsys Software Integrity Group
 
Forward5 Auxis VMware
Forward5 Auxis VMwareForward5 Auxis VMware
Forward5 Auxis VMware
Auxis Consulting & Outsourcing
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
Amazon Web Services
 
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
Kellton Tech Solutions Ltd
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseManaging Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Sauce Labs
 

Similar to Quickstart for continuous integration (20)

Automated Build using teamcity
Automated Build using teamcityAutomated Build using teamcity
Automated Build using teamcity
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
CI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual interventionCI, CD -Tools to integrate without manual intervention
CI, CD -Tools to integrate without manual intervention
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
Accelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft AzureAccelerate Sitecore DevOps on Microsoft Azure
Accelerate Sitecore DevOps on Microsoft Azure
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo2016 09-dev opsjourney-devopsdaysoslo
2016 09-dev opsjourney-devopsdaysoslo
 
Continuous Integration Testing for SAP
Continuous Integration Testing for SAPContinuous Integration Testing for SAP
Continuous Integration Testing for SAP
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 
Continuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at DashlaneContinuous Delivery: releasing Better and Faster at Dashlane
Continuous Delivery: releasing Better and Faster at Dashlane
 
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...
SharePoint Saturday Austin: Automatic Build and Deploy using Team Foundation ...
 
Flight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An OverviewFlight East 2018 Presentation–Continuous Integration––An Overview
Flight East 2018 Presentation–Continuous Integration––An Overview
 
Forward5 Auxis VMware
Forward5 Auxis VMwareForward5 Auxis VMware
Forward5 Auxis VMware
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
DevOps Automation and Maturity using FlexDeploy, webMethods demo: Kellton Web...
 
Dev ops using Jenkins
Dev ops using JenkinsDev ops using Jenkins
Dev ops using Jenkins
 
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseManaging Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the Enterprise
 

Quickstart for continuous integration

  • 3. 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
  • 4. 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
  • 5. 501 “Continuous Integration has become a mainstream technique for software development” (Martin Fowler, 2006)
  • 6. How do I start? 02 Getting started! Build & Scripting Tools " Configuration Management # CI Tool > Playground % Code Repository
  • 7. Code Repository 702 % Private hosting Hosting sites github.com bitbucket.org code.google.com sourceforge.net assembla.com
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. Sample grails data source configuration 11 " 02
  • 12. Playground 12 > Dedicated Machine Distributed CI Server + App build stack+ App runtime stack CI Server App X stack App Y stack Server-side infra structure models Q External Devices 02
  • 13. 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
  • 14. CI by Jenkins 03 Practice
  • 15. 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
  • 16. 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
  • 17. Statistics, reports and notifications 17 Build status 03
  • 18. 18 Code Coverage Statistics, reports and notifications Reference: [1] JaCoCO Plugin: https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin 03
  • 19. 19 Integration with Code Quality Management Tools Statistics, reports and notifications Reference: [1] Sonarqube: http://www.sonarqube.org 03
  • 21. 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
  • 22. Contact FABRICIO EPAMINONDAS ( linkedin.com/in/fabricioepa ' fabricioepa.wordpress.com ) @fabricioepa