Introduction to Continuous Integration Mike Roberts.

Slides:



Advertisements
Similar presentations
Large Scale Continuous Integration. Made by: Erik Romson Zenior.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
System Analysis & Design Methods V Extreme Programming XP/dX.
Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
I Can Slack Off, My Code’s Compiling Comic and title care of XKCD.com.
CONTINUOUS INTEGRATION AND TEST Stephen Oglesby - CSCI577b – April 2011.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
EXtreme Programming Quick Introduction Daniel Arraes Pereira Eduardo Lourenço Apolinário Ricardo de Oliveira Cavalcanti.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Applied Software Project Management Andrew Stellman & Jennifer Greene Applied Software Project Management Applied Software.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Continuous Integration for OpenEdge Applications NameDivyaTheja Pachipula TitleSenior Engineer Date8 th June, 2015.
Agile Testing with Testing Anywhere The road to automation need not be long.
Test-Driven Development “Test first, develop later!” –OCUnit.
Improving Software Quality with Continuous Integration
Continuous Integration for Databases Learn how to automate your build and test Steve Jones Red Gate Software Part II of the Continuous Delivery for Databases.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
2007 Adobe Systems Incorporated. All Rights Reserved. 1 Joe Berkovitz VP Engineering Allurent, Inc. Continuous Integration with Flex, FlexUnit, and Ant.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Extreme Programming.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Test Driven Development An approach to writing better code Jimmy Zimmerman Intel Corporation.
© 2012 IBM Corporation Rational Insight | Back to Basis Series SCM introduction Chu Shu June 2012.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
Continuous Integration and Testing
@benday #vslive Automated Build, Test & Deploy with TFS, ASP.NET, and SQL Server Benjamin
Craig Berntson
Creating a Maintainable Software Ecosystem Jeremy D. Miller November 27th, 2007.
Testing in Extreme Programming
1 e X treme P rogramming D. Dranidis September 2000 CITY College.
Extreme/Agile Programming Prabhaker Mateti. ACK These slides are collected from many authors along with a few of mine. Many thanks to all these authors.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
XP Explained Chapters 7-9. Primary Practices  Sit together Ideal Resistance Multi-site  Whole Team All the necessary skills in a single management structure.
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
XP Overview Short Life cycle Risky / Dynamic Requirements Increase developer productivity.
Chapter 7 The Practices: dX. 2 Outline Iterative Development Iterative Development Planning Planning Organizing the Iterations into Management Phases.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
UHCS 2005, slide 1 About Continuous Integration. UHCS 2005, slide 2 Why do you write Unit Test ? Improve quality/robustness of your code Quick feedback.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Sean Chambers.  Senior Developer at Flagler County Schools for 5 years  Owner Hybrid Software, Educational Software  Contributor to various open source.
Continuous Integration CruiseControl.Net. Best Practices Use version control; Automate the build; Build should be self tested; Developers must commit.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
Software Testing Process
Agenda: Overview of Agile testing Difference between Agile and traditional Methodology Agile Development Methodologies Extreme Programming Test Driven.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Cruise Training Introduction of Continuous Integration.
Continuous Deployments using SSDT
2014 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 2014 #GHC
1 Punishment Through Continuous Delivery If it hurts, do it more often…
Continuous Delivery and Quality Monitoring 1 iCSC2016, Kamil Henryk Król, CERN Continuous Delivery and Quality Monitoring Kamil Henryk Król CERN Inverted.
1 © Agitar Software, 2007 Automated Unit Testing with AgitarOne Presented by Eamon McCormick Senior Solutions Consultant, Agitar Software Inc. Presented.
Software Development.
Continuous Delivery and Quality Monitoring
Integrate Agile Testing into the Process
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
Continuous Integration For Databases
Johanna Rothman Create Technical Excellence Chapter 9
X in [Integration, Delivery, Deployment]
DevOps CSCI 577b.
Continuous Integration
Continuous Integration Tool
Bringing more value out of automation testing
Presentation transcript:

Introduction to Continuous Integration Mike Roberts

This session Some slides Demonstration You! Time at end for Q+A but please shout out if something is unclear Law of 2 feet!

Introduction to Continuous Integration Or…

A tale of Lava Lamps, Homer Simpson, and broken builds

Overview What? Why ? How? Show me!

What?

What is Continuous Integration? “ Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible.“

What is Continuous Integration? “The Daily Build on Steroids” or… “The practice of integrating source code continuously”

What is “integration” ? At a minimum: –Gather latest source together –Compile –Execute tests –Verify success

What is “integration” ? Can include other tasks such as: –Rebuild the database –Build release distribution –Run code analysis and coverage tools –Generate documentation

How often is continuously? As frequently as possible More like once per hour than once per day Before leaving at the end of the day

When to integrate? Implement just enough, then integrate If using Test Driven Development, it forms a natural break in the cycle Taking small steps Code Refactor Integrate Test

Why?

Regular feedback –For the integrator : “Did that work?” –For the rest of the team : “Is the build OK?” –Reduces Risk overall

Why? Reduce integration pain –No more ‘merge hell’ –XP Mantra: Do the ‘hard things’ often so they’re not hard any more

Why? Enables concurrent development –“We can both work on this today”

Why? Increased automation –Don’t repeat yourself - automate to increase speed and to make less mistakes

How?

Technical pre-requisites Source Code checked into Source Control Automated (fast) build –Compile –Test –command line without interaction Dedicated (communal) Integration Machine

Social pre-requisites Developer discipline –Continuous means continuous, not ‘once per week’ Shared ownership

Automated CI Automated Continuous Integration Server –CruiseControl, CruiseControl.NET, TeamCity, Bamboo, etc. –Detects changes in source control –Launches integration build –Publishes results

How does Automated CI Work?

Why use Automated CI? Makes integration easy Guarantees integration happens Better feedback options Encourages test automation –Through metrics

Immediate Feedback is Key

Social Issues - CI Etiquette Fixing a broken build is the highest priority “You broke it, you organise fixing it” Do not check in on a broken build –It makes fixing it harder Don’t leave until the integration runs successfully Keep the build quick

Show me!

Where next?

Etc…

Introduction to Continuous Integration Mike Roberts