Cpl12 continuous integration

358 views
328 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
358
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cpl12 continuous integration

  1. 1. AMIR BARYLKO CONTINUOUS INTEGRATION WITH TEAMCITY CODE PALOUSA MARCH 2012Amir Barylko - CI MavenThought Inc.
  2. 2. WHO AM I? • Quality Expert • Architect • Developer • Mentor • Great cook • The one who’s entertaining you for the next hour!Amir Barylko - CI MavenThought Inc.
  3. 3. RESOURCES • Email: amir@barylko.com • Twitter: @abarylko • Blog: http://orthocoders.com • Materials: http://bit.ly/orthoslidesAmir Barylko - CI MavenThought Inc.
  4. 4. INTRO What is CI? Who needs CI? How to startAmir Barylko - CI MavenThought Inc.
  5. 5. WHAT IS CI? • Development methodology that aims to • Automate building process • Verify sanity of each build • Automate unit, integration and acceptance testing • Placeholder for other toolsAmir Barylko - CI MavenThought Inc.
  6. 6. WHY DO YOU NEED CI? • Make sure the build is not broken • Catch failing test sooner than later • Generate nightly builds • Deploy automatically • Deploy with one click • Run extra tools (static analysis, code coverage, etc)Amir Barylko - CI MavenThought Inc.
  7. 7. HOW TO START • Automate your process/tasks with a script • Install a CI server (TeamCity, Jenkins, etc...) • Create basic build and testing • Add visible notifications • Add deployment • Add other tools like static analysis, etc...Amir Barylko - CI MavenThought Inc.
  8. 8. USING TEAM CITY In a nutshell Architecture Overview Source Control Build Agents NotificationsAmir Barylko - CI MavenThought Inc.
  9. 9. IN A NUTSHELL • Build automation and management server • Team communication • Platform agnostic • Free professional version with 20 projects and 3 agentsAmir Barylko - CI MavenThought Inc.
  10. 10. ARCHITECTURE OVERVIEWAmir Barylko - CI MavenThought Inc.
  11. 11. SOURCE CONTROL • Many providers: Git, Hg, SVN, TFS, CVS, VSS, etc.... • Build trigger rules to detect changes • LabellingAmir Barylko - CI MavenThought Inc.
  12. 12. BUILD AGENTS • Each agent can run in a different system/environment • Concurrent build • Real-time results • Dedicated agents for particular tasks (like slow tests)Amir Barylko - CI MavenThought Inc.
  13. 13. NOTIFICATIONS • Rich and friendly web interface • Notifiers using email, jabber, tray, etc... • HTML widget statusAmir Barylko - CI MavenThought Inc.
  14. 14. DEMO Commons Project Build Test Nightly build Deploy ToolsAmir Barylko - CI MavenThought Inc.
  15. 15. SUMMARY Autonomous Build Iteration 0 Success Tips Next StepsAmir Barylko - CI MavenThought Inc.
  16. 16. AUTONOMOUS BUILD • Build with the minimum amount of tools • Store necessary tools with the projects (if possible) • Avoid storing binaries libraries/assemblies in repository • Avoid storing artifacts that can be generatedAmir Barylko - CI MavenThought Inc.
  17. 17. ITERATION 0 • Flush out architecture. • Setup Testing harness for TDD and BDD. • Setup continuous integration. • Setup scripts to build, deploy, etc. • Setup visual communication tools.Amir Barylko - CI MavenThought Inc.
  18. 18. SUCCESS TIPS • Commit often (in your branch) • Make sure you run builds and tests before committing • Fix build failures immediately • Fail fast • Act on metrics • Build on every target environment • Create artifacts for every buildAmir Barylko - CI MavenThought Inc.
  19. 19. NEXT STEPS • Build automatically per branch • Let your clients deploy • Shelving commits • Discover static analysis toolsAmir Barylko - CI MavenThought Inc.
  20. 20. QUESTIONS?Amir Barylko - CI MavenThought Inc.
  21. 21. RESOURCES • Email: amir@barylko.com • Twitter: @abarylko • Materials: http://bit.ly/orthoslidesAmir Barylko - CI MavenThought Inc.
  22. 22. RESOURCES IIAmir Barylko - CI MavenThought Inc.
  23. 23. SOFTWARE QUALITY WORKSHOP • When: May 4, 10-11 & 16-17 • More info: http://www.maventhought.com • Goal: Learn Kanban, BDD & TDD to improve the quality of your day to day job.Amir Barylko - CI MavenThought Inc.

×