Download - Release Monkey

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]>


Top Related