Continuous Integration



Similar documents
Delivering Quality Software with Continuous Integration

Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8

Continuous Delivery. Alejandro Ruiz

Content. Development Tools 2(63)

Software infrastructure for Java development projects

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Software Construction

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Delivery. Ariel Alonso, IPC

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Continuous Integration in Kieker

Continuous Integration

Continuous Integration Processes and SCM To Support Test Automation

Continuous Integration (CI)

<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style

Java Software Quality Tools and techniques

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Software Continuous Integration & Delivery

Mastering Continuous Integration with Jenkins

Redmine: A project management software tool. January, 2013

Continuous Integration on System z

Continuous Integration

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git

November 12 th 13 th London: Mastering Continuous Integration with Jenkins

Build management & Continuous integration. with Maven & Hudson

Jenkins: The Definitive Guide

Open Source Tools. The Magazine for Professional Testers. December 2010

Software Development In the Cloud Cloud management and ALM

Quality Cruising. Making Java Work for Erlang. Erik (Happi) Stenman

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Hudson Continous Integration Server. Stefan Saasen,

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Accelerate Software Delivery

Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

using version control in system administration

Software Configuration Management Best Practices for Continuous Integration

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

OFBiz Addons goals, howto use, howto manage. Nicolas Malin, Nov. 2012

TEST AUTOMATION FRAMEWORK

Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo

Nexus Professional Whitepaper. Repository Management: Stages of Adoption

Automate Your Deployment with Bamboo, Drush and Features DrupalCamp Scotland, 9 th 10 th May 2014

Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!

Introducing Continuous Integration

Building, testing and deploying mobile apps with Jenkins & friends

Kevin Lee Technical Consultant As part of a normal software build and release process

Continuous Integration

SOA-14: Continuous Integration in SOA Projects Andreas Gies

Implementing Continuous Integration Testing Prepared by:

Introduction to Programming Tools. Anjana & Shankar September,2010

Continuous Integration Northwestern University. Evanston, Illinois November The Business of IT

UCS. Amazing tools suite in CORBA world

CONTINUOUS INTEGRATION. Introduction

Continuous Integration (CI) for Mobile Applications

Fail early, fail often, succeed sooner!

Automating the Nengo build process

Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

Effective feedback from quality tools during development

Automation of Flex Building and Unit Testing or Continuous Integration with Flex, FlexUnit, and Ant

Taking full advantage of the medium does also mean that publications can be updated and the changes being visible to all online readers immediately.

Massively! Continuous Integration! A case study for Jenkins at cloud-scale

Building Value with Continuous Integration

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

NXTware Remote. Advanced Development and Maintenance Environment for OpenVMS and other Strategic Platforms

Improving your Drupal Development workflow with Continuous Integration

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

Java course - IAG0040. Unit testing & Agile Software Development

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

Automated build service to facilitate Continuous Delivery

How To Install Linux Titan

DevOps. Jesse Pai Robert Monical 8/14/2015

"Build and Test in the Cloud "

Hudson configuration manual

SOFTWARE DEVELOPMENT BASICS SED

Code Quality Assurance. Peter Kofler, Code Cop FH Technikum Wien, February 2010

Source Control Guide: Git

The Importance of Continuous Integration for Quality Assurance Teams

Improving software quality with an automated build process

Servers. Servers. NAT Public Subnet: /20. Internet Gateway. VPC Gateway VPC: /16

Meister Going Beyond Maven

Automated testing and continuous integration

Realizing Continuous Performance Management

Maintaining Quality in Agile Environment

Visual Studio - Continuous Integration

Version Control! Scenarios, Working with Git!

Building Value with Continuous Integration

Fundamentals of Continuous Integration

Software Configuration Management and Continuous Integration

SAS in clinical trials A relook at project management,

Transcription:

LT-QAI Torch Talk: Continuous Integration Marc <firstname.lastname>@dfki.de DFKI Language Technology Lab, Saarbrücken and Berlin, Germany

What do I mean by Torch Talk? Idea to increase the frequency of LT-QAI talks on software engineering topics encourage people to dare make a presentation lower the entry barrier presenter makes to claim to be an expert some first experience with a technology / a workflow / some good practice present, discuss, jointly decide whether to dig into the topic more deeply in some context 2

What do I mean by Torch Talk? Why Torch? a torch brings a bit of light into an unknown area you can light a torch with little effort depending on the others in the group, the torch might put something bigger on fire, or be quitely extinguished without much wasted effort 3

Continuous Integration Maybe the core of agile practices Scenario: team works together on a code base different team members work on different parts how do you integrate the parts? Old approach: every individual or subteam develops their component in isolation integration phase before release (painful) New approach: Team integrates continuously! 4

Source code management Probably current practice in most of our projects today Everybody's code is committed to a repository, checked out to local working copy Subversion, CVS, Mercury, Git Important element for Continuous Integration: Whole team works on the same repository People commit often (at least once per day) but before I commit, my changes must reach a state where they don't break anything! 5

Single target build Automate the build such that the full system can be built automatically, on a new machine, with no manual adaptation automatic resolution of any dependencies to thirdparty code automatic resolution of any dependencies between sub-projects 6

Continuous Integration Server Basic idea: a server is running all the time, watching a source code repository for changes when a commit is detected, the latest code is automatically built on the CI server machine if the build breaks, the team can be notified if the build breaks, the team will make fixing the build its top priority 7

CI server basic benefit: no more it works on my machine quick feedback when you forget to check in that new.java file establish trust that you know about the stability of the code 8

How to notify the team Through email to the whole team or to the person who broke the build Through instant messaging Through color of mobile phone status light Through lava lamps red and green lava lamp in team room idea: red lamp should never bubble... 9

Added benefits Many tools have been developed in recent years which help identify problems in the code unit tests integration tests static code analysis FindBugs for java lint for C/C++... coverage measures which percentage of methods is tested by my unit tests? finding duplicate code the root of all evil, maintenance nightmare All these can be run automatically on the CI server 10

Distinguish two tasks CI server give quick feedback on compilation and unit tests has to run quickly (a few minutes max) has to run often (ideally after every commit) Integration more extensive and time-consuming tasks can run once per night run integration tests: does the entire system produce the expected output? run static code analysis build javadoc build a nightly installable package 11

CI server software Idea is more than ten years old Now a good choice of easy-to-use free software is available Apache Hudson / Jenkins easy to configure via web interface Apache Continuum more fine-grained control CruiseControl was the first configuration via XML files 12

Some hands-on experience with Hudson CI + nightly build for MARY TTS CI in Aliz-E for Java and C++ 13