Build automation
Prerequisites for Continuous Integration (CI) Version Control System Build automation Notification on build result sent to related team members
Basic CI Process 2. Codes committed to version control system 1. Developers write codes 3. CI System identifies change 4. Build automation triggered 5. Success or failure notifies team members
Build Not just compiling and linking Running testing script Build automation includes: Traditional build Testing Deployment and document creation (optional)
Build (Cont’d) Trigger Ideally whenever the source code is committed, software project starts to be built and tested Frequent testing helps expose problems
Build (Cont’d)
Integrate CI with ICSM
Activities Prototyping: finding risks Development: exposing bugs Transitioning: simulating real deployment environment
Defect of CI Broken build automation Testing activities so large: long time to finish
Strategy Ensure to run unit-test before committing code Encourage smaller increments of work being committed more often Build pipeline – multi-stage build (Martin Fowler) Basic functional test in the day time Large volume of testing in the night
CI tools Hudson, Jenkins, CruiseControl, etc. Building tools: maven, ant