Post on 24-May-2015
transcript
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel www.sela.co.il
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 2
What is Build Automation?
Feedback Cycle Time
Agile Approach in Build Automation
Example Build Processes
Summary
• ‘The act of scripting or automating … tasks that software developers do in their day-to-day activities …’
(Wikipedia)
• Often includes, but is not limited to:
– Compilation
– Tests (unit, integration, functional, etc.)
– Preparation of installation packages
– Deployment to staging and/or production servers
– Others
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 3
• Benefits of build automation:
– Reduce human errors when manually building
– Have a single ‘authoritative’ source for the product
– Let people focus on creative things!
– Let QA ‘pull’ builds when they are ready
IMPROVE PRODUCT QUALITY!
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 4
• Daily/Nightly Build
– Runs at a scheduled time in the day, automatically
– Builds the entire product from scratch
– Runs tests, builds installer packages, etc.
– May take hours
• Continuous Integration (CI) Build
– Runs many times during the day
– Triggered by check-in operations
– Compiles the code, maybe run some sanity or smoke tests
– Should take several minutes at most
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 5
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 6
Minutes Hours Days
CI
Nightly / Daily
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 7
Minutes Hours Days
CI
Nightly / Daily
• Short Feedback Cycles:
– Individual Teams
– Fine-grained business components
– Run only small subset of unit tests, keep build fast! (<10 minutes)
• Long Feedback Cycles:
– Entire Products
– Build from scratch on dedicated machine
– Run all tests, including automated functional tests
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 8
• A combination of 3 consecutive build stages
• Stage 1:
– Compilation, unit tests
– Short feedback cycle
• Stage 2:
– Integration tests and/or acceptance tests
– Longer feedback cycle
• Stage 3:
– Functional tests and installation packages
– Longest feedback cycle
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 9
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel 10
Time
Stage 1
Stage 2
Stage 3
QA
11
Identify the feedback cycle you want for each of your build types
Use multiple build types together for covering all feedback cycles
Iterate!
© Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel
12 © Copyright SELA software & Education Labs Ltd. 14-18 Baruch Hirsch St.Bnei Brak 51202 Israel