CoDe:U Git Flow - a Continuous Delivery Approach

Size: px
Start display at page:

Download "CoDe:U Git Flow - a Continuous Delivery Approach"

Transcription

1 CoDe:U Git Flow - a Continuous Delivery Approach Praqmatic Software Development 1

2 Continuous Delivery (CoDe) is an approach that builds very much on divide and conquer. It s bred from a lean and agile paradigm and it encourages you to minimize work in progress and continuously deliver the bits of work you are done with. Being able to identify different promotion levels of even fairly small code snippets becomes an essential and important part of the agile and Continuous Delivery process. For that reason more and more teams see the underlying Version Control System s (VCS) ability not only to branch but more importantly to merge back again as a required feature. The modern distributed VCS, such as Mercurial and in particular Git, are being adopted and deployed everywhere - and for a natural cause they are not just a hype. They actually do the job well and easy. This paper describes the branching strategies, the underlying rationale and the building blocks that automate it all to become the preferred choice, for a Continuous Delivery approach. We refer to it as the CoDe:U Git Flow. Inspiration is free - so do not hesitate to call us! You can reach us on phone PRAQMA or send an to info@praqma.com Leif Sørensen & Lars Kruse Founders of Praqma A successful Git branching model Many teams have not been used to working with branches and especially not the process of merging as intensely as when they migrate to Git. Therefore, it s natural to seek advice. The blog post entitled A successful Git branching model - most often referred to as the Git Flow - has become the de facto branching strategy for many teams. We have come to discover that in teams delivering continuously there is a requirement for even more automation and even less branch categories than outlined

3 The CoDe:U Git Flow The automation can be referred to as a branchy approach to pretested integration, and the branching strategy is referred to as lazy, late, or deferred. Basically, this means that CoDe:U Git Flow branches as little and as late as possible. The Git Flow is based on three pillars: A set of principles A vocabulary and a set of naming conventions Continuous Delivery Pipelines with automated promotions A set of principles The 10 principles that make up the entire strategy. 1. The project integration branch is where developers continuously integrate (CI). Each developer should strive to integrate at least once every day. 2. The project integration branch in Git is master. 3. Integrations onto master must pass an automated toll-gate of minimum verification (typically build+unit test). 4. Only trivial merges than can be done without human intervention are allowed onto the integration branch. 5. Every successful integration onto master kicks off the pipeline. 6. The integration branch is always aiming for the next release. Anything that shouldn t go into the next release should be kept out of the integration branch until it s due. 7. Any push to the centralized repository that contains a commit on a development branch that matches the naming convention triggers an automated integration onto the corresponding integration branch. 8. Some development branches may be tied to maintenance branches rather than master. 9. All integrations onto promotion branches are automated (in our setup by Jenkins CI). 10. Any given promotion branch can only have one contributor - merges are guaranteed to be fast-forward. A vocabulary and a set of naming conventions Integration branch The shared work context of the developers where integrations are done frequently. master is typically the project s integration branch. But occasionally maintenance branches may take on the role as integration branch for a dedicated context. Promotion branches Sometimes also referred to as Big picture branches. Covers all the branches which are above and beyond the project integration branch. Any given promotion branch only has one contributor (e.g. stable merges master, release merges stable). Due to the nature of promotion branches only fast-forward merges are allowed. Development branches Occasionally referred to as small picture branches. These are all the branches that produce contributions to the integration branches. These are the branches where developers actually commit code, branch to and from their colleagues, rebase from the integration branches, solve their merge conflicts, share team branches, rewrite history etc. Maintenance branches A stream oriented branching strategy such as the one we describe here essentially implements a going forward approach - a release train. It implies that if anything is broken, you fix it with a new release. While this indeed is a healthy principle, it s sometimes not possible to implement fully due to licensing issues, feature toggles, customizations, product variants etc. The solution when a release train strategy can not be implemented is to use a maintenance branch - a parallel integration branch, not for the project but for a particular release. Maintenance branches should be introduced with some caution, since adapting into the main track should be the norm. Seen from the perspective of the maintenance context it is temporarily the new integration branch, but seen from the integration branch it s just like any other development branch. Or simply put; A maintenance branch is a development branch you allow yourself to release from. 3

4 Hot fix branches Hot fix branches are used frequently in s branching strategy and also in the built-in strategy that is provided in Atlassian s repository browser Stash - so we feel an obligation to mention it too. But in Continuous Delivery a hot fix in the meaning a shorter or faster track to a release than the regular path is a contradiction in terms. They simply do not exist. There is only one track to a release, and that is a successful ride through the Continuous Delivery pipeline. We will erase the term hot fix branch from our vocabulary. Pipeline The set of automated verifications that kicks off automatically upon every commit to an integration branch. The purpose of the pipeline is to promote the commit to the highest possible level of trusted quality. We believe in the doctrine that every commit is a potential release candidate. The pipeline is a chain of events, only the kick-off is triggered by a commit, the remainder of the events are triggered by the previous events having a successful outcome. A pipeline typically has the scope of a repository. Pretested integration Effectively, an automated toll-gate process that merges contributions into a given target context, runs a verification job and - if the outcome is acceptable - commits the changes. This way, only tested integrations exists - the integration branch is kept pristine. Each pipeline has its own set of verification rules, adjusted to the given context. In our setup developers do not have write access to integration branches or promotion branches. They can implement their suggested changes on development branches and raise a flag indicating that they want in. The flag is seen by the pretested integration processes. Everything from this point on is automated. When the automated integration is managed by the pretested integration plugin and branches are named by a certain pattern, things happens automatically. These naming conventions are all configurable, so if you d rather call your branches something else than what we recommend here, simply define your own naming convention when you configure the automation. Rejected Build & Unit test Analysis and metrics Deploy Functional test Every commit is a potential release candidate a state-transition diagram of the process that could verify a release candidate from the point where the code is committed to the VCS and through the verifications that would finally promote it to a release candidate status. Review & doc. Acceptance test Released 4

5 Promotion branches Any given promotion branch in our setup only has one source contributor, consequently all merges to promotion branches are always fast-forward. Fast-forward is a Git term meaning that no actual merge is required. It s simply a matter of moving a branch head to a different commit that is already accessible from the current commit without merging anything. Using promotion branches this way means that they behave more like floating tags, and we use them to indicate successful promotions. It s a simple and efficient way of storing tiny bits of meta data in Git - allowing it to be easily synced between clones. Typically, a pipeline can have many verification events, all working on the same commit. Essentially, all passed verifications represent some level of promotion, so should a promotion actually cause a merge onto another branch? In reality, you could easily define a separate promotion branch for each individual step in your pipeline. In our setup the pipeline is executed by Jenkins CI so that would, to some extend, create redundant information of the same promotions being maintained by Jenkins CI. We recommend the principle that every time a promotion causes a new group of people to take interest in the commit, it s promoted to a promotion branch. In reality we very rarely see more than two promotion branches in our setups: stable and release. stable indicates that the commit is ready to leave the project team and make sense to the rest of the organization; Testers and other development teams who want to use the delivery can keep themselves updated with the stable branch. release indicates that the commit is ready to leave the organisation. This content could be made available to end-users and customers. Development branches The main goal when choosing names for development branches is to adapt into a predictable behavior that enables your colleagues to read what you are doing. In the end, developer branches are indeed the developer s and it is quite often that developers make branches in their own local clones that aren t necessarily meant to be pushed anywhere - at least not for the time being. So we encourage you to allow developers to name their local branches any way they want. But! Since the integration is automated and triggered by pushes to the remote origin, you will have to push to a remote branch name that follows a certain pattern. The pattern we recommend is : Where the keyword ready is the indicator that it should be integrated and the configuration you use in the Jenkins setup. When you push a commit to origin and the commit is on a branch with the configured naming pattern (ready/** in our example) then your work will be automatically merged onto the integration branch and it will kick off the pipeline for the repository you are working in. Your branch may be named something less informative like mybranch while you work on it in your local clone - and in this case you can push it to origin as often you want, simply for information sharing with colleagues or for backups at the end of the day. When you are truly done and have committed you can push it to a branch that will trigger the integration. Like this: Essentially your local branch mybranch becomes ready/case_514 on the remote - and all the magic starts. 5

6 Integration Promotion branch branches Devlopment branches feat maint feat master Maintenance releases done from here Time Tag 1.0 Major feature for next release Stable Release Tag Release Feature for future release not integrated yet Automatically verified and promoted by the CI platform Tag 1.1 At any point in time next release literally means anything shippable" All merges into promotion branches are fast-forwards Stable Origin: CoDe:U by Praqma Inspired License: Creative Commons 6 Any integration into master and beyond to the promotion branches is automated

7 Continuous Delivery Pipelines with automated promotions Continuous Delivery Pipelines have impact on the flow as well. The concept of a pipeline is that it is a set of related job executions that together verify a repository - either a component or a product - to a level where it s a candidate to be released. In any case a repository has a pipeline which we typically implement in Jenkins CI using the pretested integration plugin, but with a bit of adaption it can be implemented in any automation platform such as Bamboo, Travis, BuildBot, MFS, or whatever you prefer. The key concept is that the pipeline kicks off when something is changed on the respective repository s master branch. A pipeline is related to something that is tangible and which can be shipped, like a product or a component. Components are the building blocks, and products are the constructions that you build out of your building blocks. The difference for you as a developer or a release manager is basically that sometimes you version control files and some times you version control dependencies. But the flow model and the branch naming strategies you use for the purpose are the same. The pipeline will know what to do with your commits, and if the verification passes, then you re OK. If not, then you still have more work to do. The pretested integration plugin To support our flow, we ve developed the pretested integration plugin for Jenkins CI. The plugin is Open Source and is installed like any other plugin from the Jenkins CI management menu. There are already several Jenkins CI plugins that implement some kind of automated integration, including the one we made ourselves for ClearCase UCM. There are even existing solutions for doing this in Git, so why develop a new Jenkins CI plugin for this purpose? To put it short: The pretested integration plugin for Jenkins CI introduces a generic branchy approach to pretested integrations which can be turned on by the check of a checkbox and most importantly which utilizes the existing SCM plugins. There are many different approaches to achieve pretested integration using anything from clones, shelves, caches or branches. We argue that an approach using branches, is the right way simply because it s the only one that is truly selfcontained within the repository. It means that the meta data required to make this work is all available within every single clone. It makes the implementation simpler and more resilient. In a pretested integration situation you need to do several steps: Set-up a workspace and merge stuff into it before it is handed over to the build step. After the build is done a decision is required, whether to commit the changes or discard them. Almost all current Jenkins CI plugins that support pretested integrations are in the SCM plugin category. But this type of plugin does not natively support a footprint in the post-build step, and they will all have to implement multiple extension points (typically the Notifier plugin category as well as the SCM plugin category). Our extensive experience with plugin development on Jenkins CI has taught us, that we achieve the sleekest and most generic implementation when reusing all the features already implemented in the various SCM plugins and then implementing a small plugin based on the build-wrapper category, which natively has a footprint in both the pre- and post-build steps. Our implementations for Git and Mercurial uses the original SCM plugins for Jenkins CI just out of the box - and we really don t configure much. For a detailed description on how to install the plugin and configure it to support the flow visit the pretested integration plugin s wiki page at the Jenkins Ci community (a shortened version to ease your typing: bit.ly/pretested_integration). If you do give it a spin, we hope that you will share your thoughts, ideas and feedback - either on the Jenkins CI wiki, or on Twitter in a mention Now go deliver something! 7

8 References Pretested Integration Plugin wiki on Jenkins: bit.ly/pretested_integration Continuous Delivery Users: Joint Open Source Roadmap Alliance: PDF version of this paper: s original blog: nvie.com/posts/a-successful-git-branching-model Continuous Deliver Users CoDe:U is a professionally driven user group. It s an community for people who are interested and engaged in the disciplines of Continuous Delivery and DevOps and who believes in sharing experiences, worries, challenges and successes as a mean to become wiser. The Git Flow presented in this paper was developed in collaboration with several corporations. The Jenkins CI plugin that does the automation is Open Source and the model and concept is handed to the CoDe:U community - to be maintained, developed and used. Joint Open Source Roadmap Alliance JOSRA is an alliance of companies who use the same Open Source tools in their Continuous Delivery tool stack and who jointly maintain a strategic roadmap for these tools. Jenkins CI and a lot of plugins are included. JOSRA is also the maintainer of the Pretested Integration Plugin. You are encouraged to join the alliance: Praqma A/S Allerød Stationsvej Allerød Denmark Tel: PRAQMA info@praqma.net Web: 8

Continuous Delivery Maturity Model

Continuous Delivery Maturity Model Continuous Delivery Maturity Model Continuous Delivery is a software development approach that enables teams to always have releasable code in stock. Through the means of automation and extensive tool

More information

Continuous Integration and Delivery at NSIDC

Continuous Integration and Delivery at NSIDC National Snow and Ice Data Center Supporting Cryospheric Research Since 1976 Continuous Integration and Delivery at NSIDC Julia Collins National Snow and Ice Data Center Cooperative Institute for Research

More information

Git Branching for Continuous Delivery

Git Branching for Continuous Delivery Git Branching for Continuous Delivery Sarah Goff-Dupont Automation Enthusiast Hello everyone I ll be talking about how teams at Atlassian use Git branches for continuous delivery. My name is Sarah, and

More information

In depth study - Dev teams tooling

In depth study - Dev teams tooling In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses

More information

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

Understanding Code Management in a Multi-Vendor Environment. Examples of code management in a multi-team environment Understanding Code Management in a Multi-Vendor Environment Examples of code management in a multi-team environment About this Presentation This presentation was prepared as part of the support materials

More information

Software Continuous Integration & Delivery

Software Continuous Integration & Delivery November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com

More information

SOFTWARE DEVELOPMENT BASICS SED

SOFTWARE DEVELOPMENT BASICS SED SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2

More information

Version Uncontrolled! : How to Manage Your Version Control

Version Uncontrolled! : How to Manage Your Version Control Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code

More information

2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments

2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments 2405 - Using Git with Rational Team Concert and Rational ClearCase in enterprise environments Bartosz Chrabski Executive IT Specialist WW Competitive Sales Team bartosz.chrabski@pl.ibm.com Peter Hack ClearCase

More information

Zoom Plug-ins for Adobe

Zoom Plug-ins for Adobe = Zoom Plug-ins for Adobe User Guide Copyright 2010 Evolphin Software. All rights reserved. Table of Contents Table of Contents Chapter 1 Preface... 4 1.1 Document Revision... 4 1.2 Audience... 4 1.3 Pre-requisite...

More information

efolder BDR for Veeam Cloud Connection Guide

efolder BDR for Veeam Cloud Connection Guide efolder BDR for Veeam Cloud Connection Guide Setup Connect Preload Data uh6 efolder BDR Guide for Veeam Page 1 of 36 INTRODUCTION Thank you for choosing the efolder Cloud for Veeam. Using the efolder Cloud

More information

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process

DJANGOCODERS.COM THE PROCESS. Core strength built on healthy process DJANGOCODERS.COM THE PROCESS This is a guide that outlines our operating procedures and coding processes. These practices help us to create the best possible software products while ensuring a successful

More information

Zero-Touch Drupal Deployment

Zero-Touch Drupal Deployment Zero-Touch Drupal Deployment Whitepaper Date 25th October 2011 Document Number MIG5-WP-D-004 Revision 01 1 Table of Contents Preamble The concept Version control Consistency breeds abstraction Automation

More information

Version control with GIT

Version control with GIT AGV, IIT Kharagpur September 13, 2012 Outline 1 Version control system What is version control Why version control 2 Introducing GIT What is GIT? 3 Using GIT Using GIT for AGV at IIT KGP Help and Tips

More information

The 7 Attributes of a Good Software Configuration Management System

The 7 Attributes of a Good Software Configuration Management System Software Development Best Practices The 7 Attributes of a Good Software Configuration Management System Robert Kennedy IBM Rational software Benefits of Business Driven Development GOVERNANCE DASHBOARD

More information

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

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012 Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development

More information

Agile Austin Dev SIG. June 2013 - Continuous Integration (CI)

Agile Austin Dev SIG. June 2013 - Continuous Integration (CI) Agile Austin Dev SIG June 2013 - Continuous Integration (CI) Special thanks to: Our hosts, BancVue, for their hospitality and meeting facilities. And to Agile Austin for providing lunch. * For more SIGs

More information

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

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

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically

More information

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

JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE

Source Code Management for Continuous Integration and Deployment. Version 1.0 DO NOT DISTRIBUTE Source Code Management for Continuous Integration and Deployment Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed,

More information

Content. Development Tools 2(63)

Content. Development Tools 2(63) Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)

More information

Introducing Xcode Source Control

Introducing Xcode Source Control APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion

More information

Building, testing and deploying mobile apps with Jenkins & friends

Building, testing and deploying mobile apps with Jenkins & friends Building, testing and deploying mobile apps with Jenkins & friends Christopher Orr https://chris.orr.me.uk/ This is a lightning talk which is basically described by its title, where "mobile apps" really

More information

The Importance of Continuous Integration for Quality Assurance Teams

The Importance of Continuous Integration for Quality Assurance Teams The Importance of Continuous Integration for Quality Assurance Teams Without proper implementation, a continuous integration system will go from a competitive advantage for a software quality assurance

More information

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief

Continuous Delivery: Automating the Deployment Pipeline. Solution Brief Continuous Delivery: Automating the Deployment Pipeline Solution Brief The Value of Continuous Delivery Continuous Delivery is a software delivery practice that requires you to build and deploy software

More information

Testing Rails. by Josh Steiner. thoughtbot

Testing Rails. by Josh Steiner. thoughtbot Testing Rails by Josh Steiner thoughtbot Testing Rails Josh Steiner April 10, 2015 Contents thoughtbot Books iii Contact us................................ iii Introduction 1 Why test?.................................

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @huibschoots & @mieldonkers INTRODUCTION Huib Schoots Tester @huibschoots Miel Donkers Developer @mieldonkers TYPICAL Experience with Continuous Delivery?

More information

StriderCD Book. Release 1.4. Niall O Higgins

StriderCD Book. Release 1.4. Niall O Higgins StriderCD Book Release 1.4 Niall O Higgins August 22, 2015 Contents 1 Introduction 3 1.1 What Is Strider.............................................. 3 1.2 What Is Continuous Integration.....................................

More information

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

Build Automation for Mobile. or How to Deliver Quality Apps Continuously. Angelo Rüggeberg Build Automation for Mobile or How to Deliver Quality Apps Continuously Angelo Rüggeberg Things to remember Publishing your App should not be painfull Angelo Rüggeberg Code Quality Matters Angelo Rüggeberg

More information

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction DRUPAL CONTINUOUS INTEGRATION Part I - Introduction Continuous Integration is a software development practice where members of a team integrate work frequently, usually each person integrates at least

More information

Version Control Your Jenkins Jobs with Jenkins Job Builder

Version Control Your Jenkins Jobs with Jenkins Job Builder Version Control Your Jenkins Jobs with Jenkins Job Builder Abstract Wayne Warren wayne@puppetlabs.com Puppet Labs uses Jenkins to automate building and testing software. While we do derive benefit from

More information

Continuous Delivery. Alejandro Ruiz

Continuous Delivery. Alejandro Ruiz Continuous Delivery Alejandro Ruiz True reality How the customer explained it How the project leader understood it How the analyst designed it How the programmer wrote it What the customer really needed

More information

A Pythonic Approach to Continuous Delivery

A Pythonic Approach to Continuous Delivery https://github.com/sebastianneubauer sebastian.neubauer@blue-yonder.com A Pythonic Approach to Continuous Delivery Sebastian Neubauer Europython 2015 Overview What is Continuous Delivery? definitions,

More information

Agile Web Application Testing

Agile Web Application Testing Agile Web Application Testing Technologies and Solutions V. Narayan Raman Tyto Software Goals Rapid feedback on the quality of software Problem in Web App Testing Many Browsers Many Operating Systems Browsers

More information

Agile Power Tools. Author: Damon Poole, Chief Technology Officer

Agile Power Tools. Author: Damon Poole, Chief Technology Officer Agile Power Tools Best Practices of Agile Tool Users Author: Damon Poole, Chief Technology Officer Best Practices of Agile Tool Users You ve decided to transition to Agile development. Everybody has been

More information

Theme 1 Software Processes. Software Configuration Management

Theme 1 Software Processes. Software Configuration Management Theme 1 Software Processes Software Configuration Management 1 Roadmap Software Configuration Management Software configuration management goals SCM Activities Configuration Management Plans Configuration

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Beginners guide to continuous integration. Gilles QUERRET Riverside Software Beginners guide to continuous integration Gilles QUERRET Riverside Software About the speaker Working with Progress and Java since 10 years Started Riverside Software 7 years ago Based in Lyon, France

More information

DevOps. Building a Continuous Delivery Pipeline

DevOps. Building a Continuous Delivery Pipeline DevOps Building a Continuous Delivery Pipeline Who Am I Bobby Warner Founder & President @bobbywarner What is the goal? Infrastructure as Code Write code to describe our infrastructure Never manually execute

More information

Global Software Change Management for PVCS Version Manager

Global Software Change Management for PVCS Version Manager Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.

More information

Continuous Integration: Put it at the heart of your development

Continuous Integration: Put it at the heart of your development Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For

More information

ALM Solutions using Visual Studio TFS 2013 ALMI13; 5 Days, Instructor-led

ALM Solutions using Visual Studio TFS 2013 ALMI13; 5 Days, Instructor-led ALM Solutions using Visual Studio TFS 2013 ALMI13; 5 Days, Instructor-led Course Description This five day course is designed to get your entire team working efficiently with Microsoft s Application Lifecycle

More information

The care of open source creatures. Vincent Sanders

The care of open source creatures. Vincent Sanders The care of open source creatures Vincent Sanders What am I on about? An examination of: What a services a project ought to have What options exist to fulfil those requirements A practical look at some

More information

@CodenvyHQ http://blog.codenvy.com/vision/

@CodenvyHQ http://blog.codenvy.com/vision/ @CodenvyHQ http://blog.codenvy.com/vision/ Inefficiency LinkedIn Study: Developers spend 13 hrs / wk configuring their environment. Costs & Risks DEVELOPER CONFIGURATION New Projects Changing Branches

More information

Continuous Integration

Continuous Integration CODING & DEVELOPMENT BORIS GORDON FEBRUARY 7 2013 Continuous Integration Introduction About me boztek on d.o. (http://drupal.org/user/134410) @boztek boris@previousnext.com.au 2 Introduction About you

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

Continuous delivery Release software on-demand, not on Red Alert

Continuous delivery Release software on-demand, not on Red Alert Continuous delivery Release software on-demand, not on Red Alert Have it all. Ahead of the competition Value In a world where customers expect a mobile and connected 24x7 experience, businesses must adapt

More information

Super-powered CI with Git

Super-powered CI with Git Super-powered CI with Git SARAH GOFF-DUPONT DEV TOOLS MARKETING ATLASSIAN @DEVTOOLSUPERFAN Good morning My name is Sarah and I m on the DevTools marketing team at Atlassian. And today I ll be sharing with

More information

How To Write A Continuous Delivery

How To Write A Continuous Delivery 1 Optimizing the Jenkins Pipeline a DSL for Greasing the CD machine Who am I? Robert Cowham Senior Consultant Perforce Software, Inc 2 Agenda Continuous Delivery and Pipelines Perforce Helix Introduction

More information

Fundamentals of Continuous Integration

Fundamentals of Continuous Integration Zend Blueprint for Delivery Fundamentals of Jenkins with and server by Slavey Karadzhov Introduction Delivery is a methodology, a mindset change and a leadership practice that focuses on how to achieve

More information

Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013

Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013 Sreerupa Sen Senior Technical Staff Member, IBM December 15, 2013 Abstract In this experience report, I ll talk about how we transformed ourselves from a team that does one big bang release a year, to

More information

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE

Continuous Delivery on AWS. Version 1.0 DO NOT DISTRIBUTE Continuous Version 1.0 Copyright 2013, 2014 Amazon Web Services, Inc. and its affiliates. All rights reserved. This work may not be reproduced or redistributed, in whole or in part, without prior written

More information

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS @pascal_dufour & @hrietman INTRODUCTION Pascal Dufour Agile Tester @Pascal_Dufour Harald Rietman Developer Scrum Master @hrietman TYPICAL Experience with

More information

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY

Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY Solution Spotlight KEY OPPORTUNITIES AND PITFALLS ON THE ROAD TO CONTINUOUS DELIVERY C ontinuous delivery offers a number of opportunities and for organizations. By automating the software buildtest-deployment

More information

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software

Beginner s guide to continuous integration. Gilles QUERRET Riverside Software 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

More information

Version Control with Git. Dylan Nugent

Version Control with Git. Dylan Nugent Version Control with Git Dylan Nugent Agenda What is Version Control? (and why use it?) What is Git? (And why Git?) How Git Works (in theory) Setting up Git (surviving the CLI) The basics of Git (Just

More information

The Tools For Continuous Delivery

The Tools For Continuous Delivery The Tools For Continuous Delivery Table of Contents Introduction...3 Benefits of Continuous Delivery...4 Launching Continuous Delivery in Your Organization...6 The Tools for Continuous Delivery...8 Easier

More information

Continuous Delivery for Force.com

Continuous Delivery for Force.com Continuous Delivery for Force.com Achieve higher release velocity (shorten release cycles) & reduced Time to Market by 40% info@autorabit.com AutoRABIT a product of TechSophy, Inc. www.autorabit.com Continuous

More information

Building a Continuous Integration Pipeline with Docker

Building a Continuous Integration Pipeline with Docker Building a Continuous Integration Pipeline with Docker August 2015 Table of Contents Overview 3 Architectural Overview and Required Components 3 Architectural Components 3 Workflow 4 Environment Prerequisites

More information

Bridging the Gap Between Acceptance Criteria and Definition of Done

Bridging the Gap Between Acceptance Criteria and Definition of Done Bridging the Gap Between Acceptance Criteria and Definition of Done Sowmya Purushotham, Amith Pulla sowmya.sudha@gmail.com, amith.pulla@intel.com Abstract With the onset of Scrum and as many organizations

More information

Optimizing Your Software Process

Optimizing Your Software Process Optimizing Your Software Process Top 5 Software Development Process Challenges Executive Summar ry A process framework is a combination of project management, technical practices, and supporting tools.

More information

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

Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git Escaping the Works-On-My-Machine badge Continuous Integration with PDE Build and Git Matthias Kempka EclipseSource ` mkempka@eclipsesource.com 2011 EclipseSource September 2011 About EclipseSource Eclipse

More information

How To Manage A Multi Site In Drupal

How To Manage A Multi Site In Drupal http://platform.sh sales@platform.sh MODERNISING DRUPAL MULTI-SITE IMPLEMENTATIONS Drupal multi-site is easily re-architected to run each site in its own containerised environment. It s better and it costs

More information

www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

www.testing-solutions.com TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes www. TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes What is Agile Development? There are various opinions on what defines agile development, but most would

More information

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture

Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah

More information

Simplifying development through activity-based change management

Simplifying development through activity-based change management IBM Rational ClearCase and IBM Rational ClearQuest October 2004 Simplifying development through activity-based change management Allan Tate Product Manager IBM Software Group Karen Wade SCM Product Marketing

More information

Enhance visibility into and control over software projects IBM Rational change and release management software

Enhance visibility into and control over software projects IBM Rational change and release management software Enhance visibility into and control over software projects IBM Rational change and release management software Accelerating the software delivery lifecycle Faster delivery of high-quality software Software

More information

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Enabling Continuous Delivery by Leveraging the Deployment Pipeline Enabling Continuous Delivery by Leveraging the Deployment Pipeline Jason Carter Principal (972) 689-6402 Jason.carter@parivedasolutions.com Pariveda Solutions, Inc. Dallas,TX Table of Contents Matching

More information

The Deployment Pipeline

The Deployment Pipeline The Deployment Pipeline (Extending the range of Continuous Integration) Dave Farley 2007 Continuous Build A core practice in Agile development projects is the use of Continuous Integration. CI is a process

More information

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM

Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM ALM Application Lifecycle Management White Paper Source Code Management Best Practice: Applying Economic Logic to Migration Summary: Is there a Business Case for Migration? Ultimately, what is the value

More information

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Version Control Systems: SVN and GIT. How do VCS support SW development teams? Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it

More information

Agile Software Factory: Bringing the reliability of a manufacturing line to software development

Agile Software Factory: Bringing the reliability of a manufacturing line to software development Agile Software Factory: Bringing the reliability of a manufacturing line to software development Today s businesses are complex organizations that must be agile across multiple channels in highly competitive

More information

How To Achieve Continuous Delivery

How To Achieve Continuous Delivery White Paper Overcoming Jenkins Sprawl: Going from CI to CD with ElectricFlow Software is everywhere. And accelerating the delivery and quality of that software can mean the difference between merely surviving,

More information

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester

Continuous Integration and Bamboo. Ryan Cutter CSCI 5828 2012 Spring Semester Continuous Integration and Bamboo Ryan Cutter CSCI 5828 2012 Spring Semester Agenda What is CI and how can it help me? Fundamentals of CI Fundamentals of Bamboo Configuration / Price Quick example Features

More information

Implementing Continuous Integration Testing Prepared by:

Implementing Continuous Integration Testing Prepared by: Implementing Continuous Integration Testing Prepared by: Mr Sandeep M Table of Contents 1. ABSTRACT... 2 2. INTRODUCTION TO CONTINUOUS INTEGRATION (CI)... 3 3. CI FOR AGILE METHODOLOGY... 4 4. WORK FLOW...

More information

A central continuous integration platform

A central continuous integration platform A central continuous integration platform Agile Infrastructure use case and future plans Dec 5th, 2014 1/3 The Agile Infrastructure Use Case By Stefanos Georgiou What? Development practice Build better

More information

Software Configuration Management (SCM)

Software Configuration Management (SCM) Software Configuration Management (SCM) SCM actually consists of several separate yet cumulative disciplines. Version Management is an entry point for SCM T M Abstract : Software Configuration Management

More information

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR

Developer Workshop 2015. Marc Dumontier McMaster/OSCAR-EMR Developer Workshop 2015 Marc Dumontier McMaster/OSCAR-EMR Agenda Code Submission 101 Infrastructure Tools Developing OSCAR Code Submission: Process OSCAR EMR Sourceforge http://www.sourceforge.net/projects/oscarmcmaster

More information

The Nuts and Bolts of Autodesk Vault Replication Setup

The Nuts and Bolts of Autodesk Vault Replication Setup The Nuts and Bolts of Autodesk Vault Replication Setup James McMullen Autodesk, Inc PL4700-V Has your company decided to move toward a replicated Autodesk Vault software environment? Does your company

More information

Database Build and Release will get started soon

Database Build and Release will get started soon #sqlinthecity Database Build and Release will get started soon Ernest Hwang Principal Software Engineer, Practice Fusion http://practicefusion.com/careers/ While you re waiting, check out SQL Prompt #sqlinthecity

More information

jenkins, drupal & testing automating every phing! miggle

jenkins, drupal & testing automating every phing! miggle jenkins, drupal & testing automating every phing! about me > Drupal dev for 6+ years > PHP dev for 10+ years > Husband > Cyclist > Frustrated rockstar @8ballmedia aims > Encourage best practices > Ensure

More information

Practical continuous deployment

Practical continuous deployment Practical continuous deployment Who Am I? Steve Smith! An Atlassian for 8+ years! Original company sysadmin! Developer for last 5 years! Now working out of Amsterdam! Not a professional speaker Who Am

More information

Achieving Continuous Integration with Drupal

Achieving Continuous Integration with Drupal 23 Au gu Achieving Continuous Integration with Drupal st 20 12 Achieving Continuous Integration with Drupal Drupalcon Munich 2012 Barry Jaspan barry.jaspan@acquia.com The Evolution of a Drupal Developer

More information

Continuous integration for databases using

Continuous integration for databases using Continuous integration for databases using Red Wie Sie Gate die tools Microsoft SQL An overview Continuous integration for databases using Red Gate tools An overview Contents Why continuous integration?

More information

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS

CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS whitepaper CLOUD DEVELOPMENT BEST PRACTICES & SUPPORT APPLICATIONS - Cloud Development Best Practices and Support Applications CLOUD DEVELOPMENT BEST PRACTICES 1 Cloud-based solutions are increasingly

More information

Automation and DevOps Best Practices. Rob Hirschfeld, Dell Matt Ray, Opscode

Automation and DevOps Best Practices. Rob Hirschfeld, Dell Matt Ray, Opscode Automation and DevOps Best Practices Rob Hirschfeld, Dell Matt Ray, Opscode Deploying & Managing a Cloud is not simple. Deploying to physical gear on layered networks Multiple interlocking projects Hundreds

More information

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6.

Git Basics. Christian Hanser. Institute for Applied Information Processing and Communications Graz University of Technology. 6. Git Basics Christian Hanser Institute for Applied Information Processing and Communications Graz University of Technology 6. March 2013 Christian Hanser 6. March 2013 Seite 1/39 Outline Learning Targets

More information

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies

My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies About the author My DevOps Journey by Billy Foss, Engineering Services Architect, CA Technologies I am going to take you through the journey that my team embarked on as we looked for ways to automate processes,

More information

Solving the Software Quality Challenges of Agile Development

Solving the Software Quality Challenges of Agile Development Solving the Software Quality Challenges of Agile Development 2 Solving the Software Quality Risks of Agile Development Agile software development is a series of iterative and incremental development methods

More information

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns Introducing FACTORY SCHEMES Adaptable software factory Patterns FACTORY SCHEMES 3 Standard Edition Community & Enterprise Key Benefits and Features GECKO Software http://consulting.bygecko.com Email: Info@gecko.fr

More information

Continuous Integration & Feature Branches

Continuous Integration & Feature Branches UNIVERSITY OF TARTU FACULTY OF MATHEMATICS AND COMPUTER SCIENCE Institute of Computer Science Tõnis Pool Continuous Integration & Feature Branches Bachelor thesis (6 EAP) Supervisors: Toomas Römer, Rein

More information

Source Control Guide: Git

Source Control Guide: Git MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this

More information

Virginia, United States Zurich, Switzerland Cape Town, South Africa. Hosted at the data center of VSHN, DIN-ISO/ IEC-27001 and Finma 2008/7 certified

Virginia, United States Zurich, Switzerland Cape Town, South Africa. Hosted at the data center of VSHN, DIN-ISO/ IEC-27001 and Finma 2008/7 certified Drupal Hosting by Developers, for Developers At, we don t just know Drupal we love Drupal. We re a secure, high-performance, cloud-based hosting provider built for folks who love their Drupal sites as

More information

Continuous Delivery and Test Automation in Agile SW projects with Robot Framework 7.6.2013 Antti Pohjonen

Continuous Delivery and Test Automation in Agile SW projects with Robot Framework 7.6.2013 Antti Pohjonen Continuous Delivery and Test Automation in Agile SW projects with Robot Framework 7.6.2013 Antti Pohjonen Copyright Knowit Oy 2013 Public Version 1.0 Group revenue (MEUR) Trusted Partner in Nordics Knowit

More information

Continuous integration for databases using Redgate tools

Continuous integration for databases using Redgate tools Continuous integration for databases using Redgate tools Wie Sie die Microsoft SQL Server Data Tools mit den Tools von Redgate ergänzen und kombinieren können An overview 1 Continuous integration for

More information