Upload
dinhnga
View
217
Download
0
Embed Size (px)
Citation preview
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipelines
Quality through Repeatability
Anders Asplund| [email protected] Björn Beskow| [email protected]
1 1
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Quality through Repeatability: Enterprise Builds
2
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Automation
• SoGware Builds should be CRISP: – Complete – Repeatable – InformaLve – Schedulable – Portable
3
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Levels of build automation
Commanded Builds
Scheduled Builds
Triggered Builds
4
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Continuous Integration Servers Provides Scheduled and Triggered Builds on top of a Commanded build mechanism
5
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Challenge: Modularity
6
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Upstream/Downstream Projects
7
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Challenge: Externals (servers, environments, …)
8
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Challenge: Autonomy & Cohesion
9
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Challenge: Autonomy & Cohesion
10
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipelines
11
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipelines
• Wikipedia: “a set of validaLons through which a piece of soGware must pass on its way to release”
12
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Traditional CI scope
13
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipelines scope
14
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
One-‐click Deploys
15
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
• Open Source CI server • Formerly known as Hudson • Monitors execuLon of repeated jobs
– Manually – Scheduled – On code change – Other Job
• Plugin Support
Test
Deploy
Release
16
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Plugin support for Build Pipelines
• Build Pipeline
• Build Flow
17
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline
18
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline Support Plugins Parameterized Trigger Plugin
19
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline Support Plugins CondiLonal BuildStep Plugin
20
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline Support Plugins Join plugin
21
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline Support Plugins More Plugins
• Clone Workspace SCM Plugin • Copy ArLfact Plugin
22
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Other Plugins JobConfigHistory
23
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Plugin support for Build Pipelines
• Build Pipeline
• Build Flow
24
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Flow
25
build(“Test”)!build(“Release”)!
b = build(“Release”)!build(”Deploy to Test”, param: b.build.number)!
build("Test")!build("Release")!parallel (! { build("Deploy to Test") },! { build("Generate docs") }!)!build("Deploy to Staging")!build("Deploy to Production")!
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Flow
26
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Build Pipeline
• Löst kopplade byggsteg – återanvändbarhet
• DSL-‐konfiguraLon • Saknar visuell
presentaLon • Saknar stöd för
manuella steg
Build Flow
-‐
+ • Bra visuell överblick • Läd ad komma igång
• Hårt kopplade byggsteg -‐ Redundans
27
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Case Study: www.papyrus.com
28
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
TODO: screen shot of Jenkins
29
© 2013 Callista Enterprise | www.callistaenterprise.se Build Pipelines © 2013 Callista Enterprise | www.callistaenterprise.se
Effects:
• Total effort: 1 man week • Manual effort in packaging and deploying a release: 1 man day -‐> 5 minutes
• Manual configuraLon and verificaLon points (areas for potenLal errors) +20 -‐> 1
• ROI: Almost instant
30