Continuous Integration



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

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

SOFTWARE DEVELOPMENT BASICS SED

Continuous Integration and Delivery at NSIDC

DevOps Course Content

Continuous Integration Multi-Stage Builds for Quality Assurance

Continuous Integration

Delivering Quality Software with Continuous Integration

In depth study - Dev teams tooling

Mastering Continuous Integration with Jenkins

Build management & Continuous integration. with Maven & Hudson

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

CS 2112 Lab: Version Control

Content. Development Tools 2(63)

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

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

Continuous Delivery. Alejandro Ruiz

vs. Web Site: Blog: blog.soebes.com Dipl.Ing.(FH) Karl Heinz Marbaise

Database Build and Release will get started soon

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

Continuous Integration. CSC 440: Software Engineering Slide #1

Efficient Automated Build and Deployment Framework with Parallel Process

Continuous Integration using Docker & Jenkins

Software Continuous Integration & Delivery

IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management

depl Documentation Release depl contributors

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Source Control Systems

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment

Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf

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

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

Client Overview. Engagement Situation. Key Requirements

Software configuration management

Whitepaper. Continuous Integration Tools Applying Best Practices to the Toolchain

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

SOA-14: Continuous Integration in SOA Projects Andreas Gies

You ll need to have: It d be great if you have:

Continuous Keylane

Jenkins User Conference Herzelia, July #jenkinsconf. Testing a Large Support Matrix Using Jenkins. Amir Kibbar HP

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

Best Overall Use of Technology. Jaspersoft

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Continuous integration with Jenkins CI

Version Control Your Jenkins Jobs with Jenkins Job Builder

MATLAB as a Collaboration Platform Marta Wilczkowiak Senior Applications Engineer MathWorks

Continuous Integration (CI)

Advanced Computing Tools for Applied Research Chapter 4. Version control

Continuous integration End of the big bang integration era

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Zero-Touch Drupal Deployment

Software Configuration Management and Continuous Integration

Open Source vs. Collaborative Software: FOSS is Not Enough

Developer Workshop Marc Dumontier McMaster/OSCAR-EMR

Using GitHub for Rally Apps (Mac Version)

Mobile Test Automation Framework

Continuous Integration/Testing and why you should assume every change breaks your code

ACCELERATE DEVOPS USING OPENSHIFT PAAS

Agile ALM. Lightweight tools and Agile strategies MANNING MICHAEL HUTTERMANN. Shelter Island

IT Home 2015 DevOps 研 討 會

SA4 Software Developer Survey Survey Specification v2.2

CONTINUOUS INTEGRATION. Introduction

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

Mobile Development with Git, Gerrit & Jenkins

One solution for all your Source Configuration Management Needs

Hudson configuration manual

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

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Finally, an agile test strategy (that works)! AS OW Test Model, Objectware

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

Data management on HPC platforms

OpenShift Enterprise PaaS by Red Hat. Andrey Markelov RHCA Red Hat, Presales Solution Architect

Is This Your Pipe? Hijacking the Build Pipeline

Jenkins: The Definitive Guide

SOA Solutions & Middleware Testing: White Paper

Building a Continuous Integration Pipeline with Docker

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

Developing Applications Using Continuous Integration 12c (12.2.1)

Security Automation in Agile SDLC Real World Cases

OpenShift. OpenShift platform features. Benefits Document. openshift. Feature Benefit OpenShift. Enterprise

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

Continuous Integration

Software Construction

Software infrastructure for Java development projects

Continuous Integration in the Cloud with Hudson

Gothenburg Mainframe and Continuous Integration. Jan Marek com. CA Technologies. Session S610

Continuous Integration and Delivery. manage development build deploy / release

Meister Going Beyond Maven

Introduction to Agile Software Development Process. Software Development Life Cycles

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

Building, testing and deploying mobile apps with Jenkins & friends

CloudBees Continuous Integration and Test with Appvance Enterprise August 28, 2013 Frank Cohen, (408)

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

JUSTIN J. LITTLE Build and Release Engineer

Transcription:

Continuous Integration Sébastien Besson Open Microscopy Environment Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK 1

Plan 1. What is Continuous integration? 2. Source code repository 3. Build and test automation 4. Continuous integration workflow 2

OMERO & BIO-FORMATS Open- Source Community 3

OME release cycle 4.4.0 5.0.0- beta1 5.0.0 5.1.0 2012 2013 2014 2015 4.4.3 4.4.2 4.4.1 4.4.4 4.4.5 4.4.6 4.4.8 4.4.8p1 4.4.7 4.4.9 4.4.10 4.4.11 5.0.1 5.0.2 5.0.6 4.4.12 5.0.5 5.0.4 5.0.3 Emergency release Security vulnerability release Distribution to a large open-source community with heterogeneous needs/usage 4

The problem o Quality Assurance o Integrating new features o Fixing bugs o Large team (~20 people) coordination hap://geekandpoke.typepad.com 5

What s Continuous Integration? Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to significantly reduced integration problems and allows a team to develop cohesive software more rapidly. -- Martin Fowler 6

Continuous integration 7

Deliverables o OMERO.server / OMERO.clients Windows, Linux, Mac OS X Ice (3.4, 3.5) o Tools/plugins OMERO.imagej, OMERO.matlab, OMERO.py o OMERO Virtual appliance o Documentation API documentation Technical documentation User help documentation o Java ARchives (JAR) bioformats_package.jar formats_api.jar. o Bio-Formats Tools Command-line tools MATLAB toolbox o Bio-Formats C++ o Documentation API documentation Sphinx documentation 8

Source Code Repository o All deliverables generated from code base o Maintain a centralized code base repository o Version control: keep track of every change in the code base 9

Source Code Repository: OME o Version Control software: Subversion, Git, Mercurial o Git / GitHub 10

Source code repository: Pull Requests 11

Continuous integration 12

Jenkins CI hap://ci.openmicroscopy.org 13

Build system o Generate deliverables from code base o Build tools: Shell scripts, Maven, Ant, CMake o Generate a standalone binary with a single command line o Build OMERO.server $./build.py build-default o Build API documentation $./build.py release-sphinx-api o Build JARs $ ant jars o Build Javadoc $ ant docs-sphinx 14

Build artifacts 15

Test o Manual QA testing for each code submission o Automated testing OMERO server, OMERO clients, Bio-Formats Unit/integration tests o Testing framework: TestNG, Robot framework, pytest o Example: addition of a new method to the API addition of corresponding integration tests testing the method logic, various inputs, scenarios 16

OMERO server integration tests 17

Bio-Formats automated tests Large repository of samples files for each supported format testsizex testsizey testsizez testchannelnames testlightsources 18

Bio-Formats automated tests (II) 12K files (1.8 TB), 300K tests, 12096m/12 threads 19

OME CI: Daily workflow Merge Build Deploy Test 20

Future work: Environment matrix o Multiple Operating Systems (Linux, Windows, OSX) o Multiple prerequisite versions Java 1.6, 1.7, 1.8 Python 2.6, 2.7 o Build/Deploy/Test under all supported environments Build: Java 1.8 / Python 2.7 / Ice 3.4 Deployment: PostgreSQL 8.4 / Python 2.6 / Ice 3.5 o Integrating Docker into CI workflow

Acknowledgements

Resources o Source Control Git http://git-scm.com/ GitHub https://github.com/ https://github.com/openmicroscopy o Testing Pytest http://pytest.org/latest/ TestNG http://testng.org/doc/index.html Robot framework http://robotframework.org/ o Build Ant http://ant.apache.org/ Maven http://maven.apache.org/ Cmake http://www.cmake.org/ o Continuous Integration/Deployment Travis CI http://travis-ci.org/ https://travis-ci.org/openmicroscopy/ Jenkins CI http://jenkins-ci.org/ http://ci.openmicroscopy.org Docker https://www.docker.com/

Continuous integration server 24

Source code: changes frequency OMERO Bio- Formats Documenta9on Scripts Number of commits 5502 3033 1375 111 Number of merged Pull Requests Number of unique authors Number of merged Pull Requests/day Number of commits/ day 812 366 254 23 25 26 26 7 2 1 1 <1 11 6 3 <1 Changes on dev_5_0 branch between 25 Sept 2012 and 20 Jan 2014 25