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

Slides:



Advertisements
Similar presentations
Jenkins User Conference San Francisco, Sept #jenkinsconf Business Process Model & Notation (BPMN) Workflows in Jenkins Max Spring Cisco
Advertisements

Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
03 | Application Lifecycle Management Susan Ibach| Technical Evangelist Christopher Harrison | Head Geek.
Deployment and Configuration Management Solution
Patterns & practices Symposium 2013 Introducing Git version control into your team Mark
Continuous Integration Demonstration. Agenda 1.Continuous Integration Basics 2.Live Demonstration 3.Bamboo Concepts 4.Advantages 5.Version 2.0 Features.
Automation using Selenium Authored & Presented by : Chinmay Sathe & Amit Prabhu Cybage Software Pvt. Ltd.
Automating Drupal Deployment Dominique De Cooman.
Standardize on Team Foundation Server across the enterprise with Teamprise Corey Steffen General Manager
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
CONTINUOUS INTEGRATION, DELIVERY & DEPLOYMENT ONE CLICK DELIVERY.
RMG Study Group Session I: Git, Sphinx, webRMG Connie Gao 9/20/
© 2012 IBM Corporation Rational Insight | Back to Basis Series SCM introduction Chu Shu June 2012.
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
EMI INFSO-RI EMI SA2 Report Quality Assurance Alberto Aimar (CERN) SA2 WP Leader.
1 Lecture 19 Configuration Management Software Engineering.
INFSO-RI Enabling Grids for E-sciencE The gLite Software Development Process Alberto Di Meglio CERN.
EGEE is a project funded by the European Union under contract IST Build Infrastructure & Release Procedures Integration.
Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Seattle, WA, USA User Experience Team Gus Ferguson.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
QUICK START OF GITHUB Lin Shuo-Ren 2013/3/6 1. Why We Should Control The Version Although it rains, throw not away your watering pot. All changes should.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Nir Koren DevOps & Integration Lead, SAP Labs Israel June 2013 Connect your tools to Jenkins Using the basic Jenkins API’s Jenkins User Conference Jenkins.
Anubha Gupta | Software Engineer Visual Studio Online Microsoft Corp. Visual Studio Enterprise Leveraging modern tools to streamline Build and Release.
Build automation. Prerequisites for Continuous Integration (CI)  Version Control System  Build automation  Notification on build result sent to related.
GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
(1) Introduction to Continuous Integration Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of.
Copyright 2015, Robert W. Hasker. Continuous Inspection  Code reviews  Powerful tool  Difficult to ensure meaningful reviews take place  Static analysis.
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.
Selenium server By, Kartikeya Rastogi Mayur Sapre Mosheca. R
Cruise Training Introduction of Continuous Integration.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Testing and Release Procedures/Tools Cristina Aiftimiei (INFN-CNAF) Mario David (LIP)
Managing Alfresco source code
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Open-O Integration Project Introduction
Source Control Systems
Build Automation with Gradle
OPEN-O CSIT Infrastructure
LECTURE 2: Software Configuration Management
Mr. Gerkins InnerSource's first open tool
Trends like agile development and continuous integration speak to the modern enterprise’s need to build software hyper-efficiently Jenkins:  a highly.
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Revision Control, Automated Testing and Docker RSE Conference 2017
Quality Control in the dCache team.
Configuration Management with Azure Automation DSC
Auditing in an Agile Environment
Building a Continuous Integration Pipeline using VSTS
API Documentation Guidelines
SU Development Forum Introduction to Git - Save your projects!
DevOps in an Embedded Environment
LECTURE 3: Software Configuration Management
Simplified Development Toolkit
Automated Testing and Integration with CI Tool
Continuous deployment best practices, methods and tools.
GitHub A Tool for software collaboration James Skon
Continuous Integration Tool
CONTINUOUS INTEGRATION –WHY WE DO IT?
Selenium Tutorials Cheyat Training.
CI/CD Workflow and Event Pages
Overview of Workflows: Why Use Them?
Office 365 Development July 2014.
PyWBEM Python WBEM Client: Overview #2
Overview on CI Use JJB (Jenkins Job Builder) to manage Jenkins jobs.
Presentation transcript:

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

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

Plan 1. Why OME needs Continuous Integration? 1.OME Deliverables and Releases 2.OME source code management 3.Continuous Integration 2. OME Continuous Integration servers 1.Introduction 2.Travis CI 3.Jenkins CI 3. CI documentation 2

OME releases: Deliverables o OMERO.server / OMERO.clients Windows, Linux, Mac OS X Ice (3,3, 3.4, 3.5) o Tools/plugins OMERO.imagej, OMERO.matlab, OMERO.py o OMERO Virtual appliance o Documentation API documentation Sphinx documentation 3 o Java ARchives (JAR) loci_tools.jar ome_tools.jar …. o Bio-Formats Tools Command-line tools MATLAB toolbox o Documentation API documentation Sphinx documentation

OME releases o OME 4.4.x series (June 2012 – Jan 2014) 12 releases in 19 months (1 major, 11 minor) 3 emergency releases (4.4.1, 4.4.3, 4.4.8) o Quality Assurance Ensure quality standards are being met Robustness/stability Catching bugs early o Every code change must be tested and reviewed 4

Source code management 5

Source code: Pull Requests 6

Source code: changes frequency 7 OMEROBio-FormatsDocumentationScripts Number of commits Number of merged Pull Requests Number of unique authors Number of merged Pull Requests/day 211<1 Number of commits/day 1163<1 Changes on dev_5_0 branch between 25 Sept 2012 and 20 Jan 2014

The problem 8

Continuous integration o Continuous integration: perform software integration frequently o Automate the build OMERO suite (server, clients…), Bio-Formats suite OME Consortium products o Automate the tests 1.Run Bio-Formats automated tests against the data repository 2.Run the OMERO.server integration tests of the OMERO.server o Automate the deployment Deploy all deliverables for PR review/ QA release Deploy the latest version of the documentation 9

Continuous integration server 10 Source:

Continuous integration server BENEFITS o Automation (build, test, deployment) o Integration with SCM o Easy access to daily deliverables o Time trigger/change polling o Build history COSTS o Writing/maintenance of CI automated scripts o Team resources Server setup Server maintenance Individual job setup o Team communication 11

OME CI servers 12 o o Externally hosted o Integration with GitHub o Support Java, Python, C+ o Matrix jobs o Setup in.travis.yml o Build queues/ 50 min timeout o o Hosted by OME team o Integration via scc tools o Node-specific languages o Chained jobs o Build system (ant, build.py) o Control over node number/throttling/time

Typical CI workflow 13

Travis CI : introduction 14 Activated for core OME source code repositories

Travis CI: GitHub integration 15

Travis CI: OME usage Source:.travis.yml 16 Code validation BuildTest OMERO pyflake8./build.py build-default./build.py -py test java./build.py build-default test-compile Bio-Formats mavenmvn cppcmake + make cppwrapmvn + cmake + make sphinxmake clean html latexpdf Documentationmake clean html latexpdf Scripts flake8

17 OME Jenkins CI: main view

OME Jenkins CI: build view 18

Jenkins CI: job naming scheme o $COMPONENT-$VERSION-$TYPE-$DESCRIPTION, e.g. OMERO-5.0-merge-integration o COMPONENT: deliverable name OMERO, BIOFORMATS, Consortium or third-party deliverable o VERSION: version number e.g. 5.0 o TYPE: usually merge, latest, release o DESCRIPTION: Short description (2-3 words max) Allows to create personal views 19

Jenkins CI: views o Versions 4.4, 5.0, 5.1: for OME main products (OMERO, Bio-Formats) o Components OMERO/Bio-Formats Consortium Third Party (Pytables, ITK, Zlib,…) Mgmt o Experimental o Failing all non-Experimental jobs with failing/unstable status 20

Jenkins CI: job types o LATEST jobs built from the HEAD of the development branch, i.e. origin/dev_5_0 o MERGE jobs built from the HEAD of a development branch with Pull Requests merged in, i.e. snoopycrimecop/merge/dev_5_0/latest o RELEASE jobs associated with a tag, e.g rc1 21

Jenkins CI: chained jobs o Morning jobs merge Pull Requests build artifacts deploy merge server import data run integration tests build and deploy staging documentation

Jenkins CI: deployment servers o One node associated to each development branch o Multiple OMERO instances running on different ports 4064: merge server for PR review 14064: latest server 24064: integration server for integration tests SeriesDevelopment branchServer name 4.4.xdev_4_4howe.openmicroscopy.org.uk 5.0.xdev_5_0gretzky.openmicroscopy.org.uk 5.1.xdeveloptrout.openmicroscopy.org

Continuous integration documentation

Continuous Integration: future directions o Lots of progress in the last 6 months Cleanup of the job (integration tests) Server maintenance and stabilization Rationalization/organization o Future steps Refactoring of Consortium projects Integration tests in Travis build Maintenance/improvements of the CI documentationCI documentation Refactoring of the 5.0 jobs using new 5.1 jobs

CI Agent: Snoopy Crime Cop o GitHub user Member of openmicroscopy and ome organizations o Perform actions Performs local PR merging using GitHub API Open PRs for submodule bumps Push merge/branches release tags to his forks o Forks of main repositories see used for pushing merge branches/ staging release tags 27