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

Slides:



Advertisements
Similar presentations
Legal Meetings: Extended Instructions on Movica and Screencast.
Advertisements

Version Control System (Sub)Version Control (SVN).
Week 6: Chapter 6 Agenda Automation of SQL Server tasks using: SQL Server Agent Scheduling Scripting Technologies.
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
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Automated Tests in NICOS Nightly Control System Alexander Undrus Brookhaven National Laboratory, Upton, NY Software testing is a difficult, time-consuming.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Improving Software Quality with Continuous Integration
SubVersioN – the new Central Service at DESY by Marian Gawron.
GIT is for people who like SVN September 18 th 2012 Vladimir Kerkez and BK.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
Version control Using Git 1Version control, using Git.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks gLite Release Process Maria Alandes Pradillo.
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
Software Testing. Definition To test a program is to try to make it fail.
Created by the Community for the Community BizTalk & Build.
Craig Berntson
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Introduction to Version Control
The Design Workshop Introduction to Version Control 1.
Version Control with Subversion Quick Reference of Subversion.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
1 Lecture 19 Configuration Management Software Engineering.
Version control Using Git Version control, using Git1.
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.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
(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.
Mtivity Client Support System Quick start guide. Mtivity Client Support System We are very pleased to announce the launch of a new Client Support System.
CVS Hudson Build Server krykhudson.desy.de:8282 User Developer.
CPSC 871 John D. McGregor Change management Module 2 Session 3.
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.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
(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?
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
 Introduction  Tripwire For Servers  Tripwire Manager  Tripwire For Network Devices  Working Of Tripwire  Advantages  Conclusion.
(1) Code Walkthrough robocode-pmj-dacruzer Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(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.
2014 Build & Infrastructure Engineering What It Is and Why You Need It Na’Tosha J. Bard October 9, 2014 #GHC
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
OST TO PST How to deal with the problem of OST when Outlook gets terminated abruptly ?
Introduction Aaron Day ● Software Architect ● Open Solutions Interests and Hobbies ● Family ● Software Development ● Woodworking ● Gaming ● Shooting.
Project Management: Messages
Version Control with Subversion
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Concurrent Version Control
Source Code Management
LECTURE 3: Software Configuration Management
slides borrowed and adapted from Alex Mariakis and CSE 390a
X in [Integration, Delivery, Deployment]
Open Source Continuous Integration Server
JENKINS TIPS Ideas for making your life with Jenkins easier
Continuous Integration
CS 240 – Advanced Programming Concepts
Hardware-less Testing for RAS Software
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, one very popular open source CI technology.

(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 test 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 immediately. 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 413 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) Hudson

(9) What Hudson 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 5 mins. 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 discussion list.

(10) Hudson & 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. Hudson adds extra safety: If you forget to verify, hudson will remember. Sometimes verify works on one machine and not another. Hudson helps discover this quickly.

(11) Setting up a Hudson task Login Define the job. Add to your discussion list. Do a test commit. Check to see that the build is triggered. Test a “bad” commit to see that mail is generated.

(12) Login

(13) Create Job

(14) Provide a description

(15) Provide SVN URL for READ- ONLY access! ( not

(16) Poll SVN every 5 minutes

(17) Invoke “ant -f hudson.build.xml” Ant is invoked only if polling SCM has found changes since last build.

(18) What is hudson.build.xml? Can by very simple to start with. Just invoke verify!

(19) Test “ant -f hudson.build.xml” locally

(20) SVN add your new hudson.build.xml

(21) Send to your discuss list Be sure to add to your discussion list membership!!

(22) After saving your configuration, Hudson will immediately try to build Check your build history to see what happened!!

(23) Build #3 (Manually invoked) Check “Console output” for the build record.

(24) Console Output for Build #3

(25) Commit a busted file to test failure

(26) Within 5 minutes, it should start to automatically build

(27) Build Failed!

(28)

(29) Check discussion group for

(30) Don’t forget to fix your code!

(31) Configuration issues Why hudson.build.xml? Why not invoke verify directly? Local manual verification and automated CI tend to diverge slightly over time. Start by making them identical, but enable each to evolve independently. Why send to -discuss? Why not developers directly? The developers in a project can evolve over time. By sending the info to the list, you don’t have to maintain a membership list inside Hudson.