Nightly build done right

715 views
539 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
715
On SlideShare
0
From Embeds
0
Number of Embeds
16
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nightly build done right

  1. 1. 2
  2. 2. A program was made out of a single source file  Command Line was used to create a deployable object from a single source file  $ gcc –c main.c –o a.out 3
  3. 3. 4
  4. 4. A program was made out of multiple source files  Command Line was not an option to create a deployable object  Make scripting language executed a serious of compile/link steps in a specific order (outcome - incremental build)  5
  5. 5. 6
  6. 6.  Build Process grew more complex › Components/Layers/Multiple Products › Pre/Post steps  “build automation” (BA) – build infrastructure & management (make, ant, MSBuild, Maven, Jenkins, Bamboo, TeamCity, RTC…) is a Practice which became popular in the late 90s after Microsoft published its development practices 7
  7. 7. A software build which reflects the current state of the checked in (baselined) code  In a neutral environment – integration (not the development environment)  The build created for the software QA department for testing purposes  8
  8. 8. A is a neutral build which takes place automatically 9
  9. 9. Source Control  Compilation/Link  Packaging  Tests  Delivery/Deployment  Documentation/Release Notes  10
  10. 10. Dev  Integration  Testing  Staging  Production  11
  11. 11. Clean environment 12
  12. 12. Build Infrastructure – makefiles/ant files/Visual Studio solution and project files…. › Source Code Directory Structure › Compiler/Linker options › Environment Variables 13
  13. 13. Build Management › Build Artifacts › Which Defects/Features are included in the Build Result? › Log file(s) › Build Results 14
  14. 14. Build Servers farm – same OS and tools setup for consistency 15
  15. 15. Integrating with Version Control System 16
  16. 16. Build Dependencies/Order 17
  17. 17. Version Numbering 18
  18. 18. Reliability – source code do not change during the build  Minimizes integration risk  Improves quality  Time saver  <# developers> x < build time> x <# working days> 19
  19. 19.      Nightly Build (NB) is periodic, run overnight when more time (6-8 hours) Resource-Intensive Performed by virtual user (builder) Decoupling the build process from specific IDEs Successful Build Results are used for next day development 20
  20. 20. Object Oriented Design  Multiple Build Options(Debug/Release, 32bit/64bit….)  Software Components  No checkout during build  21
  21. 21. 22

×