(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.

Slides:



Advertisements
Similar presentations
Version Control System (Sub)Version Control (SVN).
Advertisements

Copyright  2002, Medical Present Value, Inc. All rights reserved. Copyright © 2010 Texas Education Agency. All rights reserved. TEA confidential and proprietary.
® IBM Software Group © 2010 IBM Corporation What’s New in Profiling & Code Coverage RAD V8 April 21, 2011 Kathy Chan
Building ontologies using Jenkins. Changing requirements for ontology engineering Original ontology build pipeline – What pipeline? – Life on the bleeding.
Roadmap to Continuous Integration Testing and Benefits Gowri Selka, Walgreens Natalie Koltun, Walgreens May 20th, 2014 ©2013 Walgreen Co. All rights reserved.
Mike Azocar Sr. Developer Technical Specialist Microsoft Corporation
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Improving Software Quality with Continuous Integration
Project Implementation for COSC 5050 Distributed Database Applications Lab1.
By Steven Campbell and Erik Boone.  Sharing projects by putting them into a central repository.  Checking out copies of projects from the repository.
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control SubVersion (SVN)
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
#RefreshCache CI - Daily Builds w/Jenkins – an Open Source Continuous Integration Server Nick Airdo Community Developer Advocate Central Christian Church.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Craig Berntson
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Introduction to Version Control
The Design Workshop Introduction to Version Control 1.
1 Lecture 19 Configuration Management Software Engineering.
User Manager Pro Suite Taking Control of Your Systems Joe Vachon Sales Engineer November 8, 2007.
1 G A A new Document Control System “A new system to manage LIGO documents” Stuart Anderson Melody Araya David Shoemaker 29 September, 2008
Design and Programming Chapter 7 Applied Software Project Management, Stellman & Greene See also:
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
Version Control Systems with Subversion (SVN) and Tortoise.
(Sub)Version Control. 2 Keep large teams working on the same code Back up your work so you don't lose it all Compare changes to previous versions Revert.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Distributed Java Programming Distributed Java Programming Setting up a Java Development Environment.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
(1) A “Software ICU” for assessing and maintaining software project health Philip Johnson Collaborative Software Development Laboratory Information and.
(1) A beginners guide to testing Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
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.
Version Control System
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
Lecture XIII: Continuous Integration CS 4593 Cloud-Oriented Big Data and Software Engineering.
(1) Installing the Software ICU Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Continuous Integration Make your development life simpler.
Version Control and SVN ECE 297. Why Do We Need Version Control?
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
Copyright Vincent Massol 2006 – All rights reserved Panorama of Quality Features in Maven2 Vincent Massol, 11 July 2006
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Interactions & Automations
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
(1) Introduction to Subversion (SVN) and Google Project Hosting Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences.
1 Punishment Through Continuous Delivery If it hurts, do it more often…
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
NALINI S. NAUTIYAL SYSTEM SOFTWARE DIVISION Subversion.
Anjana & Shankar September,2010 Introduction to Programming Tools.
ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.
Open-O Integration Project Introduction
Version Control CS These slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
LECTURE 2: Software Configuration Management
Version Control CS These outstanding slides were created by Kevin Schenk, BS in Computer Science, Purdue University, 2012.
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Delphi or C++ Builder, with Subversion and Jenkins
Why should we test? How should we test?
Source Code Management
LECTURE 3: Software Configuration Management
X in [Integration, Delivery, Deployment]
Open Source Continuous Integration Server
JENKINS TIPS Ideas for making your life with Jenkins easier
Continuous Integration
Continuous Integration Tool
Hardware-less Testing for RAS Software
Helping you make your code better
Presentation transcript:

(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii

(2) Objectives Understand the motivation for continuous integration. Become familiar with how to best integrate continuous integration into our practices. Become familiar with Hudson/Jenkins, a very popular open source CI technology. Hudson is a very popular open source Java-based CI tool developed by Sun Microsystems. Jenkins is a fork of Hudson that occurred after Oracle bought Sun

(3) Motivation When many people are working on a project in parallel, there is an “integration problem” How to ensure that the work done separately can be “integrated” successfully. Levels of the integration problem: Merge conflicts: people have modified the same file concurrently. Compile conflicts: No merge conflicts, but people have modified files concurrently such that the resulting system does not compile. Test conflicts: No merge conflicts, no compile conflicts, but people have modified files concurrently such that the system does not execute successfully.

(4) Integration can be time consuming In some development organizations, groups may work independently on separate “branches” of the system for many months. For example, one group might work on the “navigation system” for an aircraft, while another might work on the “flight control system”. When these two branches are “integrated” into a single working system, there may be months of work involved in resolving hidden inconsistencies.

(5) Basic Concepts of CI The system must be able to be built and tested automatically. The system must be under configuration management. Everyone commits their changes frequently (every day or two). Upon commit, the system is immediately and automatically “integrated”: Compiled, tested, etc. Problems are uncovered and developers notified.

(6) Benefits of CI Reduced risk: system always builds, or else you know it quickly. Bugs and problems discovered closer to the point in time that they were introduced. System is deployable more frequently, enabling more user feedback.

(7) CI in ICS SE Your systems can be built and tested automatically. Your systems are under configuration management. You hopefully commit your code frequently. However, no automated integration! Problems only discovered when next person SVN updates and runs verify. We can do better!

(8) Jenkins

(9) What Jenkins does Runs as a server. I have set one up in my lab for you to use. You can define “jobs” to do CI. For example: Connect to Google Project Hosting every minute. Check to see if any changes have been committed. If so, - Check out changes. - Build the system. - Run JUnit, PMD, Checkstyle, FindBugs. - failures to your project team.

(10) Jenkins & verify.build.xml Both are useful and complement each other. You still want to run verify.build.xml: Before committing changes. After updating your local workspace. Jenkins adds extra safety: If you forget to verify, jenkins will remember. Sometimes verify works on your machine only. Jenkins helps discover this quickly.

(11) jenkins.build.xml For clarity, let’s define a new file called jenkins.build.xml that contains the continuous integration target. For starters, this can simply invoke verify! Later, jenkins.build.xml could do different things than verify.

(12) Setting up CI on Jenkins Login to the Jenkins server. Get the password in class. Define a CI job (by copying wattdepot-simpleapp) to: poll SVN every 1 minute invoke jenkins.build.xml when changes detected. developers when build fails. Do a test commit. Check to see that the build is triggered. Test a “bad” commit to see that mail is generated.

(13) Demo time