Beginner s guide to continuous integration. Gilles QUERRET Riverside Software



Similar documents
Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Continuous Integration: A case study

Continuous Integration and Delivery at NSIDC

Database Build and Release will get started soon

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

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous Integration with Roundtable TSMS

Continuous Keylane

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

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

Software configuration management

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

Introduction to Programming Tools. Anjana & Shankar September,2010

Software Continuous Integration & Delivery

Continuous Integration

Continuous Integration. CSC 440: Software Engineering Slide #1

TEST AUTOMATION FRAMEWORK

Continuous Delivery. Alejandro Ruiz

SOFTWARE DEVELOPMENT BASICS SED

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

Mobile Development with Git, Gerrit & Jenkins

Build management & Continuous integration. with Maven & Hudson

Delivering Quality Software with Continuous Integration

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

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

Source Control Systems

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Content. Development Tools 2(63)

Meister Going Beyond Maven

Continuous Integration

Continuous Integration on System z

Module 11 Setting up Customization Environment

Visual Studio - Continuous Integration

Continuous Integration: Put it at the heart of your development

Continuous Integration (CI) and Testing - Configuring Bamboo, Hudson, and TestMaker

Maven or how to automate java builds, tests and version management with open source tools

Mastering Continuous Integration with Jenkins

Best Overall Use of Technology. Jaspersoft

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones

Software Configuration Management Plan

Software Configuration Management and Continuous Integration

Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)

ALERT installation setup

TeamCity A Professional Solution for Delivering Quality Software, on Time

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

Jenkins: The Definitive Guide

[Handout for L6P2] How to Avoid a Big Bang: Integrating Software Components

Software infrastructure for Java development projects

Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)

HP ALM11 & MS VS/TFS2010

Theme 1 Software Processes. Software Configuration Management

Version Control! Scenarios, Working with Git!

Continuous Integration Processes and SCM To Support Test Automation

Version Control. Version Control

Software Configuration Management. Slides derived from Dr. Sara Stoecklin s notes and various web sources.

Continuous Integration using Docker & Jenkins

S609. RDz and Source Control Management Systems

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon

Continuous Integration

Software Construction

Hudson configuration manual

DevOps Course Content

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg

Continuous Integration For Real: The Perforce Java Platform. Hamish Reid Perforce Software Inc.

Continuous Integration. Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK

Teaming Up for Software Development

Building, testing and deploying mobile apps with Jenkins & friends

Hudson Continous Integration Server. Stefan Saasen,

Continuous integration with Jenkins CI

Continuous Integration and Deployment Modern Technique's

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

WHITE PAPER. Getting started with Continuous Integration in software development. - Amruta Kumbhar, Madhavi Shailaja & Ravi Shankar Anupindi

CruiseControl. Extreme Programming-Praktikum Sommersemester 2010 Andreas Höfer, Thomas Karcher, Ali Jannesari.

Build Management. Context. Learning Objectives

Building, Testing & Deploying Android Apps with Jenkins

The Unix-like Build Pattern

Maven the Beautiful City. Healthy, Viable, and Productive Build Infrastructures

Continuous Delivery. Ariel Alonso, IPC

Practical continuous deployment

Software Configuration Management. Context. Learning Objectives

Chapter 13 Configuration Management

CSE 70: Software Development Pipeline Version Control with Subversion, Continuous Integration with Bamboo, Issue Tracking with Jira

CONTINUOUS INTEGRATION. Introduction

ALM: Continuous Integration. José Almeida, Microsoft

INCREASE YOUR WEBMETHODS ROI WITH AUTOMATED TESTING. Copyright 2015 CloudGen, LLC

Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Web Developer Toolkit for IBM Digital Experience

Performance TesTing expertise in case studies a Q & ing T es T

Chapter 13 Configuration Management

Software Version Control With Mercurial and Tortoise Hg

Successful PaaS and CI in the Cloud

CI:IRL. By Beth Tucker Long

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

@jenkinsconf. Maintaining huge Jenkins clusters - Have we reached the limit of Jenkins?

Sonatype CLM for Maven. Sonatype CLM for Maven

Automate Your BI Administration to Save Millions with Command Manager and System Manager

How To Run A Hello World On Android (Jdk) On A Microsoft Ds.Io (Windows) Or Android Or Android On A Pc Or Android 4 (

Paul Barham Program Manager - Java. David Staheli (dastahel@microsoft.com) Software Development Manager - Java

Transcription:

Beginner s guide to continuous integration Gilles QUERRET Riverside Software

About the speaker Working with Progress and Java since 10 years Started Riverside Software 5 years ago Based in Lyon, France Focused on technical expertise and continuous integration in those environments Selling WebClient automation solution

http://geekandpoke.typepad.com

Agenda Definitions Implementing continuous integration in a few steps Demo

define:build automation Source code Build scripts Deliverables

define:continuous integration Build automation Easy access to deliverables Automated deployement Automated tests CONTINUOUS INTEGRATION

Agenda Definitions Implementing continuous integration in a few steps Demo

Steps to CI SCM setup 1 Build automation 2 CI tool setup 3 Automated deployment 4 Automated tests 5

Use the right tools

Step 1 : code repositories Client / Server : CVS / SVN ClearCase Perforce VSS Distributed Mercurial Git BitKeeper

Step 1 : code repositories If you can generate something, don t store it in your SCM It will be part of your build script Separate requirements and dependencies OpenEdge is a requirement, pdf_include is a dependency Don t forget database versioning Commit as much as possible, using branches if necessary Associate a bugtracker to your SCM

Step 2 : Build automation Create DB Compile Generate PL

Step 2 : Build automation Many tools involved during this process OE procedures Shell scripts Ant + PCT for OpenEdge tasks

Step 2 : Build automation <PCTCreateBase dbname="ged" destdir="${db}" codepage="utf" schemafile="db/schema1.df,db/schema2.df" structfile="db/struct.st" blocksize="4" dlchome="${dlc}" /> <PCTRun procedure="src/initdb.p" paramfile="conf/param.pf" dlchome="${dlc}" cpstream="utf-8"> <PCTConnection dbname="ged" dbdir="${db}" singleuser="yes" /> <PCTConnection dbname="cust" dbdir="${db}" singleuser="yes" /> </PCTRun>

Step 2 : Build automation <PCTCompile destdir="${build}" graphicalmode="true" dlchome="${dlc}" md5="false" minsize="false" cpinternal="iso8859-15" cpstream="iso8859-15" inputchars="16384" debuglisting="true"> <fileset dir="src/core" includes="**/*.p,**/*.w" /> <fileset dir="src/module1" includes="**/*.p,**/*.w" /> <fileset dir="src/oo" includes="**/*.cls /> <PCTConnection dbname="ged" dbdir="${db}" /> <PCTConnection dbname="cust" dbdir="${db}" /> <propath> <pathelement location="src/core" /> <pathelement location="src/oo" /> </propath> </PCTCompile>

Step 2 : Build automation Use common build tools Check for requirements Download dependencies Use variables as much as possible Use different folders for build objects

Step 3 : CI Servers Many products, but same functionalities : Define and trigger jobs Store deliverables (keeping history) And make them easily available Keep users informed of build results Server choice : Free or not (support subscription) Integration with your tools Plugins

Step 3 : CI Servers, some names Cruise control Hudson / Jenkins Teamcity (JetBrains) Bamboo (Atlassian)

Step 3 A few tips Always use a clean server Use distributed jobs Define a job for every product and every environment (branches / clones) Keep deliverables only for production jobs. Keep only a dozen for integration Only send alerts for failures!

Step 4 : Deployment Use only what have been generated during the build process But remember requirements Always deploy to a clean server Every deliverable generated by the CI server should be deployed

Using virtualization Available in VMWare ESX Clones, snapshots and remote execution are your friends! Define clean VM for every target OS Define snapshots to be able to improve configuration New clone for a new job Remote execution to execute deployment

Step 5 : tests Unit testing User interface testing API testing Regression testing Load testing Security testing

Agenda Definitions Implementing continuous integration in a few steps Bonus track Demo

Proparse PCT Prolint Jenkins

Proparse PCT Prolint Jenkins New PCT task to generate AST tree for every source file Use old ProLint procedures or new Java Lint tasks Generates XML output Result is presented in Jenkins : Drill-down warnings by source file, category, priority, Display warnings trend View highlighted source code

Agenda Definitions Implementing continuous integration in a few steps Bonus track Demo

Questions?

Questions? Ant : http://ant.apache.org PCT : http://pct.rssw.eu Hudson : http://hudson-ci.org Jenkins : http://jenkins-ci.org And contact me directly (g.querret@riverside-software.fr) if you want additional informations