Practical Continuous Integration



Similar documents
Continuous Integration with CruiseControl.Net

Quick Start Guide. User Manual. 1 March 2012

Hadoop Data Warehouse Manual

Continuous Integration. CSC 440: Software Engineering Slide #1

SAS Marketing Optimization. Windows Installation Instructions for Hot Fix 51mo14

ORACLE NOSQL DATABASE HANDS-ON WORKSHOP Cluster Deployment and Management

ALM: Continuous Integration. José Almeida, Microsoft

Contents Overview... 5 Configuring Project Management Bridge after Installation... 9 The Project Management Bridge Menu... 14

For more about patterns & practices: My blog:

DEPLOYING EMC DOCUMENTUM BUSINESS ACTIVITY MONITOR SERVER ON IBM WEBSPHERE APPLICATION SERVER CLUSTER

WebSphere Business Monitor V7.0 Configuring a remote CEI server

Publish Acrolinx Terminology Changes via RSS

Sample copy. Introduction To WebLogic Server Property of Web 10.3 Age Solutions Inc.

F Cross-system event-driven scheduling. F Central console for managing your enterprise. F Automation for UNIX, Linux, and Windows servers

User Guide. Version 3.2. Copyright Snow Software AB. All rights reserved.

SQL Server Setup for Assistant/Pro applications Compliance Information Systems

Setting Up One Search

GWAVA 5. Migration Guide for Netware GWAVA 4 to Linux GWAVA 5

1Z Oracle Weblogic Server 11g: System Administration I. Version: Demo. Page <<1/7>>

Tutorial: Packaging your server build

IBM WebSphere Application Server V8.5 lab Basic Liberty profile administration using the job manager

Snow Inventory. Installing and Evaluating

ManageEngine Desktop Central Training

Specops Command. Installation Guide

Monitoring Oracle Enterprise Performance Management System Release Deployments from Oracle Enterprise Manager 12c

System Area Management Software Tool Tip: Integrating into NetIQ AppManager

Spector 360 Deployment Guide. Version 7

WebSphere MQ Managed File Transfer. Parineeta Mattur

StruxureWare Power Monitoring In-Place Upgrade Guide SQL Server Standard Edition Only

Configure Single Sign on Between Domino and WPS

Zenoss Resource Manager ZenUp Installation and Administration

Upgrading Horizon Workspace

Terminal Server Citrix MetaFrame Installation Guide

Oracle Exam 1z0-102 Oracle Weblogic Server 11g: System Administration I Version: 9.0 [ Total Questions: 111 ]

Installing The Kairos Software On The Server

Installing and Configuring DB2 10, WebSphere Application Server v8 & Maximo Asset Management

Information Integration for Improved City Construction Supervision

Bitrix Site Manager ASP.NET. Installation Guide

Developing Microsoft SharePoint Server 2013 Advanced Solutions. Version: Demo. Page <<1/8>>

using version control in system administration

Continuous Integration on System z

Universal Management Service 2015

Extending Remote Desktop for Large Installations. Distributed Package Installs

NetIQ. How to guides: AppManager v7.04 Initial Setup for a trial. Haf Saba Attachmate NetIQ. Prepared by. Haf Saba. Senior Technical Consultant

Synthetic Monitoring Scripting Framework. User Guide

How To Install A Safesync On A Server

Umbraco Courier 2.0. Installation guide. Per Ploug Hansen 5/24/2011

Installing GFI Network Server Monitor

PrivateWire Gateway Load Balancing and High Availability using Microsoft SQL Server Replication

Improving software quality with an automated build process

Updating Device Firmware Via FTP

SOA Software API Gateway Appliance 7.1.x Administration Guide

Installation Instructions for Version 8 (TS M1) of the SAS System for Microsoft Windows

Zenoss Core ZenUp Installation and Administration

Sophos Endpoint Security and Control How to deploy through Citrix Receiver 2.0

FlexSim LAN License Server

IBM InfoSphere MDM Server v9.0. Version: Demo. Page <<1/11>>

FAA San Diego Call Center

How to monitor AD security with MOM

Web based training for field technicians can be arranged by calling These Documents are required for a successful install:

Installing and Configuring Login PI

Continuous Integration

Quick Installation Guide

PCRecruiter Resume Inhaler

Intelligent Video Analytics. Server Installation Guide. - Windows - Linux

Implementing Active Directory Rights Management Services with Exchange and SharePoint

Active Directory Change Notifier Quick Start Guide

How To Deploy Lync 2010 Client Using SCCM 2012 R2

How to Install Multiple Monitoring Agents on a Microsoft Operating System. Version StoneGate Firewall/VPN 2.6 and SMC 3.2

Continuous. Integration. in.net MARGIN KAWALEROWICZ CRAIG BERNTSON MANNING. Greenwich. (74 w. long.)

IBM WebSphere Application Server Version 7.0

Configuration Manager Error Messages

Moving the TRITON Reporting Databases

WebSphere Business Monitor V6.2 KPI history and prediction lab

ESX 4 Patch Management Guide ESX 4.0

Oracle EXAM - 1Z Oracle Weblogic Server 11g: System Administration I. Buy Full Product.

Software Construction

Zenoss Core ZenUp Installation and Administration

CD Update Instructions

Installing Client GPO Software

Implementing a SAS Metadata Server Configuration for Use with SAS Enterprise Guide

StruxureWare Power Monitoring 7.0. Side By Side Upgrade Guide For Distributed Systems

HP OpenView Storage Mirroring application notes. Guidelines for testing a disaster recovery/high availability scenario

Version Uncontrolled! : How to Manage Your Version Control

InstantSearch+ for Magento Extension

Configuring Business Monitor for Event Consumption from WebSphere MQ

Netwatch Installation For Windows

Continuous Integration and Delivery at NSIDC

Windows PCs & Servers are often the life-blood of your IT investment. Monitoring them is key, especially in today s 24 hour world!

Parallels Plesk Panel

Pocket ESA Network Server Installation

Microsoft Lab Of Things - Week11 Tuesday -

Enterprise Content Management System Monitor. How to deploy the JMX monitor application in WebSphere ND clustered environments. Revision 1.

GETTING STARTED WITH FLEXI-CLOUD

XyLoc Security Server w/ AD Integration (XSS-AD 5.x.x) Administrator's Guide

Sage HRMS 2012 Sage Employee Self Service. Technical Installation Guide for Windows Server 2003 and Windows Server 2008

Parallels Plesk Panel

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

Outpost Office Firewall

Implementing Continuous Integration Testing Prepared by:

Transcription:

Methods & Tools Practical Continuous Integration Kim Gräsman & Jonas Blunck, TAC AB

Integration Merging your latest changes with the common code base

Integration problems Forgetting to add a file Conflicting changes Environment dependencies Problems increase the longer you wait to integrate

Symptoms of problems Code base hard to build on clean machine Build often fails when a release needs to be put together Conflicts occur regularly when approaching release Integration takes a long time

Continuous Integration Integrate and verify changes as soon as possible

Ground rules Always keep common code base in a working state Integrate one at a time Verify every integration on clean machine Notify everyone of integration results Don t allow almost works

Source code Integration status Build and test

CruiseControl.NET An integration server developed by ThoughtWorks, Inc. Open source license Available at no cost

CruiseControl.NET 1. Poll source control for recent changes 2. Execute build tasks 3. Report on status during the entire process 4. Publish the build results

Source code Integration status Build and test

Demo

Extending CruiseControl.NET Log build tool output to XML Merge XML into build log Display in web dashboard using XSL

Demo

Experiences

Managing CC.NET paths Ultimate root is server working directory Project can set its own root, relative to server working directory Tasks execute relative to project working directory

Managing CC.NET paths NT service: working directory at ccservice.exe Console: working directory varies (%CD%) Run ccnet.exe through a.bat script to force specific working directory

Minimize CC.NET config Smell: CC.NET config contains many project-specific details Makes configuration fragile if project changes ccnet.config grows huge

Minimize CC.NET config Try to collect all dependencies and source under a single source control root Move details to build script in project source root directory Build separate CC.NET bootstrap script that checks out project and calls its build script

Minimize CC.NET config Build script can now be tested without CC.NET Good way to perform local integration test before committing Details no longer in ccnet.config Drawback: Usually some amount of duplication between ccnet.config, bootstrap and build.

Demo

Too many CC.NET projects Common mistake: one CC.NET project per VS project They are not the same A CC.NET project builds any number of VS projects and other components Produces a deployable system

Too many CC.NET projects Poll one source root and execute one build script per product The build script can do any amount of work Again: the output should be as close to a final product as possible

Too many CC.NET projects Multiple products competing for build resources? Scale out onto multiple CC.NET servers Join reports on a shared web dashboard

Configuration in version control Seamless, versioned configuration Can easily revert back to working state Anybody can make improvements Self-contained system, including binaries for build tools and CC.NET Easy to setup local environment

Demo

Recommendations Play by the rules Fix broken builds immediately Never integrate while building Never integrate into a broken build Check in/commit often Do local updates frequently

Recommendations Keep build time as short as possible Store configuration in source control system Choose a fast source control system

Resources CC.NET project page http://sourceforge.net/projects/ccnet CC.NET documentation http://confluence.public.thoughtworks.org/display/ccnet Continuous Integration defined http://martinfowler.com/articles/continuousintegration.html Presentation resources http://www.blunck.se/practical-ci/ http://www.winwonk.com/practical-ci/

Remember! Enter the evaluation form and be a part of making Øredev even better. You will automatically be part of the evening lottery