Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Continuous Integration, fast builds and Flot
Search
Chris Bushell
February 03, 2010
Programming
2
58
Continuous Integration, fast builds and Flot
Prepared for the Melbourne Patters Group
Chris Bushell
February 03, 2010
Tweet
Share
More Decks by Chris Bushell
See All by Chris Bushell
Test Automation for Packaged Systems: Yes You Can!
cbushell
0
58
Introduction to Pair Programming
cbushell
1
110
An Introduction to BDD
cbushell
5
160
An Introduction to HTTP
cbushell
2
120
Agile Test Automation
cbushell
2
170
Working Effectively With Legacy Code
cbushell
4
240
Jasmine, BDD for JavaScript
cbushell
1
120
Branches Are For Trees. How to Develop Software Without Them
cbushell
1
98
State Pattern From GoF
cbushell
1
62
Other Decks in Programming
See All in Programming
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
Jakarta EE meets AI
ivargrimstad
0
740
cmp.Or に感動した
otakakot
3
230
Flutterを言い訳にしない!アプリの使い心地改善テクニック5選🔥
kno3a87
1
210
macOS でできる リアルタイム動画像処理
biacco42
9
2.4k
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
CSC509 Lecture 13
javiergs
PRO
0
110
as(型アサーション)を書く前にできること
marokanatani
10
2.7k
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
6
1.6k
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
910
初めてDefinitelyTypedにPRを出した話
syumai
0
430
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
334
57k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Faster Mobile Websites
deanohume
305
30k
Bash Introduction
62gerente
608
210k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Scaling GitHub
holman
458
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
38
1.8k
Raft: Consensus for Rubyists
vanstee
136
6.6k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Transcript
Con$nuous Integra$on, Fast Builds and Flot Chris Bushell
-‐ Melbourne Pa9erns Group February 3rd 2010
Tradi$onal SoCware Development • Waterfall • Development happens
independently, in parallel streams • Integra$on phase
Integra$on Is Painful • Time consuming • Unpredictable
Typical SoCware Development
Con$nuous Integra$on • Single source code repository •
Automated build • Automated tests • Frequent commits
CI In Prac$ce – Check Out Time
CI In Prac$ce – Write Code Time
CI In Prac$ce – Run Build Time
CI In Prac$ce – Commit Time
CI In Prac$ce Time
CI In Prac$ce – Con$nuous Build Time
Encourage Frequent Check-‐Ins • Integra$ng small changes is much
less painful and $me consuming than integra$ng large changes
Problem -‐ Builds Can Become Slow • More code
= more tests = longer build $me
A Fast Build Is Essen$al • Idle developers
• Context switching • Unable to deliver new features • I get bored easily
Monitoring Build Time • Need to measure how long
your build takes
Con$nuous Integra$on Server • API allows us to access
historic build $me informa$on
Flot • Demo
Speeding Up A Slow Build • Split code base
Speeding Up A Slow Build • Hardware •
SSD
Speeding Up A Slow Build • Think about how
to test • Unit tests are fast • Func$onal tes$ng can be slow
Speeding Up A Slow Build • Isola$on from slow
dependencies • Impersonator pa9ern
Speeding Up A Slow Build • Parallelize build
– Be careful with shared dependencies
Speeding Up A Slow Build • Choose a light
weight development container
Speeding Up A Slow Build • Sam Newman’s Build
Pa9erns – Check In Gate – Fish Eye Test Suite – Build Time Limit