Beautiful Builds - Roy Osherove at Microsoft Swit
Upcoming SlideShare
Loading in...5
×
 

Beautiful Builds - Roy Osherove at Microsoft Swit

on

  • 1,133 views

more info at http://BeautifulBuilds.com ...

more info at http://BeautifulBuilds.com
Roy Osherove speaks at Microsoft SWIT conference in Ukraine about build patterns, build tools, continuous integration, continuous delivery, and how to make it all work.

Statistics

Views

Total Views
1,133
Slideshare-icon Views on SlideShare
1,064
Embed Views
69

Actions

Likes
2
Downloads
8
Comments
0

1 Embed 69

https://twitter.com 69

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Beautiful Builds - Roy Osherove at Microsoft Swit Beautiful Builds - Roy Osherove at Microsoft Swit Presentation Transcript

    • BeautifulBuilds@RoyOsheroveBouvet
    • @RoyOsheroveBouvet
    • Release Compilation
    • Why do we have builds?• Code Compilation• Functionality Compilation• Deployment Compilation• Feedback
    • Builds and tests are made to be broken
    • What’s beautiful?• See flow• Ease of change• Coherent
    • Recommendations• Use the right tools for build and CI• Use the right patterns to allow extra benefits
    • Part of a Build Process• Build Script/editor• Build Server / CI Server• Build Environments
    • What’s the difference?• Automated Build (what to do)• Continuous Integration (when to do it)
    • Declarative• [Ant, nant,msbuild] (http://ant.apache.org/)• [Automake] (http://www.gnu.org/software/automake/)• [Boost Build] (http://www.boost.org/doc/tools/build/index.html)• [Cmake] (http://www.cmake.org/)• [Make] (http://www.gnu.org/software/make/)• [Ocamlbuild] (http://gallium.inria.fr/~pouillar/)• [Omake] (http://omake.metaprl.org/index.html)• [Qmake] (http://doc.trolltech.com/4.2/qmake-manual.html)• [Rake] (http://rake.rubyforge.org/)• [SCons] (http://www.scons.org/)• [Waf] (http://code.google.com/p/waf/)
    • Xml Build Scripts (Ant) - declarative
    • Procedural• FinalBuilder• Visual build pro• Batch files• Powersell scripts
    • Build Scripts (Bat)Procedural
    • Domain SpecificLanguage BuildScripts (Rake)declarative
    • Visual Build Scripts (FinalBuilder)
    • Which one?• Visual editing allows seeing FLOW• Easy to update and change by newbies• Easy to debug• FinalBuilder or Visual Build Pro on windows• Rake on linux or mac
    • The Right CI Tools
    • TeamCity
    • Jenkins
    • CruiseControl
    • Hudson
    • Many others. Which one?• TFS? TeamCity?• Support build agents• Support amazon ec2 auto scaling agents• Easy to setup and maintain• Free for a small team• TeamCity is awesome
    • But some CI servers support buildactions too!
    • Hardware• Build Machine (with teamcity)– + agent machines (optional)• Test Machine• Staging Machine• Production Machine• This can all be in the cloud (EC2 is wonderful)
    • Build Configurations• Continuous Integration Build• Slow Build (nightly, optional)• Deploy to test servers• Deploy to staging servers (optional)• Deploy to production
    • Build Script Injection• Allow version aware builds• Build scripts are part of source control• Build configurations on the CI server are dumbtriggers
    • Fill In The Blanks• Build Script uses placeholders for systemrelated knowledge• Placeholders are filled from environmentvariables or other types of parameters to thecommand line• These variables are SET by the BuildConfiguration on the CI server
    • Location Agnostic Scripts
    • Extract Script
    • Build Chain TriggersTriggered by checkinTriggered by end of previousManualManual
    • Slow BuildsDo XDo X + YDo X + Y + ZDo X + y + Z + N
    • Cumulative, Fast BuildsDo XDo YDo ZDo N
    • How Fast?
    • Shipping Skeleton• Start by releasing• Deploy a hello world empty skeleton• Then fill out the product• Continue adding small build features as you goalong
    • More infobeautifulbuilds.com
    • Short Song?
    • This is a test line
    • It looks like you’re doing just fine
    • The was a bomb in the kiev airline
    • The build songWhy this song?
    • Every build you break• Refactoring you make• Every mock you fake• You little snake• I’ll be watching you
    • • Every stand up meeting• I believe you’re cheating• Every unit test• Pains my chest• I’ll be stopping you
    • • Oh can’t you see?• This is scaring me• Every time we deliver• I begin to shiver
    • • When you say “transparent”• My fear is apparent• ‘Hide reality’• Is my mentality• I’ll be stopping you
    • • Oh can’t you see• I would rather ski• Dealing with this change• Is gonna feel so strange
    • • Every build you break…
    • roy@osherove.comcoursesconsultingbeautifulbuilds.com