release monkey

38
Release Monkey July 25th, 2007 O'Reilly Open Source Convention Portland, Oregon, USA Build, Test, and Release Your Software into the Wild Jonathan Oxer <[email protected]>

Upload: jonathan-oxer

Post on 18-Dec-2014

1.658 views

Category:

Technology


4 download

DESCRIPTION

Build, test and release your software into the wild. Talk given by Jonathan Oxer at OSCON in July 2007. Release software involves many sub-tasks including building packages for multiple target platforms, running test suites, managing software repositories, and sending notifications. Release Monkey is a project to provide a simplified equivalent to the Debian release infrastructure for use by smaller projects or organizations wanting to release their software for multiple target distributions and architectures. It integrates bug tracking, source code management and package building to take as much load off individual developers as possible. More information at http://jon.oxer.com.au/talks/id/78

TRANSCRIPT

Page 1: Release Monkey

ReleaseMonkey

July 25th, 2007O'Reilly Open Source Convention

Portland, Oregon, USA

Build, Test, and ReleaseYour Software into the Wild

Jonathan Oxer <[email protected]>

Page 2: Release Monkey

The Problem

Release Monkey Jonathan Oxer <[email protected]>

Build-Test-Releaseis expensive

Page 3: Release Monkey

The Problem

Release Monkey Jonathan Oxer <[email protected]>

Build-Test-Releaseand Deploy

is really expensive

Page 4: Release Monkey

The Problem

Release Monkey Jonathan Oxer <[email protected]>

It's a pain fordevelopers

Page 5: Release Monkey

The Problem

Release Monkey Jonathan Oxer <[email protected]>

It's a pain forQA

Page 6: Release Monkey

The Problem

Release Monkey Jonathan Oxer <[email protected]>

It's a pain foroperations

Page 7: Release Monkey

The Moving Parts

Release Monkey Jonathan Oxer <[email protected]>

Source code managementBug / issue trackingInternal documentationUnit testingFunctional testingDistribution packagingPackage deployment

Page 8: Release Monkey

The Moving Parts

Release Monkey Jonathan Oxer <[email protected]>

Automate your world:hooks and APIs

Page 9: Release Monkey

The Moving Parts

Release Monkey Jonathan Oxer <[email protected]>

Release Monkeyis glue

Page 10: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

The Moving Parts

Page 11: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

SCM / Revision Control

Page 12: Release Monkey

SCM / Revision Control

Release Monkey Jonathan Oxer <[email protected]>

No SCM?

Go directly to jailDo not pass GO

Do not collect $500

Page 13: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Internal Docs

Page 14: Release Monkey

Internal Docs

Release Monkey Jonathan Oxer <[email protected]>

JavadocPHPDocDoxygen

Page 15: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Bug Closure

Page 16: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Bug Closure

Page 17: Release Monkey

Bug Closure

Release Monkey Jonathan Oxer <[email protected]>

Check commitmessages for

“Closes: #xxxx”

Page 18: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Build Daemons

Page 19: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Check commitmessages for

“release” ANDmodified changelog

Page 20: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Push job tobuild boxes

Page 21: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Use distro packaging

Page 22: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Compile,build package,sanity-check

Page 23: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Add release-blockerto bug tracker

(QA-Test/Critical)

Page 24: Release Monkey

Build Daemons

Release Monkey Jonathan Oxer <[email protected]>

Push to“unstable”

repo

Page 25: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Test Deployment

Page 26: Release Monkey

Deploy On Test Servers

Release Monkey Jonathan Oxer <[email protected]>

Migrate packageto “testing” repo

Page 27: Release Monkey

Deploy On Test Servers

Release Monkey Jonathan Oxer <[email protected]>

Have test serverspull down packages

Page 28: Release Monkey

Automatic Testing

Release Monkey Jonathan Oxer <[email protected]>

Run unit tests /functional testsautomatically

Page 29: Release Monkey

Automatic Testing

Release Monkey Jonathan Oxer <[email protected]>

Add results tobug tracker,

email developerwith breakage

Page 30: Release Monkey

Manual Testing

Release Monkey Jonathan Oxer <[email protected]>

Pre-populateclean data,

give each testertheir own sandbox

Page 31: Release Monkey

Release Approval

Release Monkey Jonathan Oxer <[email protected]>

Release prevented byrelease-blockers

Page 32: Release Monkey

Release Approval

Release Monkey Jonathan Oxer <[email protected]>

Close the QA bug torelease the package

Page 33: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

Production Deployment

Page 34: Release Monkey

Production Deployment

Release Monkey Jonathan Oxer <[email protected]>

Migrate packagesto “stable” repo

Page 35: Release Monkey

Production Deployment

Release Monkey Jonathan Oxer <[email protected]>

Production serverspull stable packages

Page 36: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

The Moving Parts

Page 37: Release Monkey

Release Monkey Jonathan Oxer <[email protected]>

[Bananas Are Good!]

Page 38: Release Monkey

Thanks:-)

These slides: jon.oxer.com.au/talks

Shameless plug: www.releasemonkey.org

Contact: Jonathan Oxer <[email protected]>