1. AMIR BARYLKO
CONTINUOUS
INTEGRATION
WITH TEAMCITY
CODE PALOUSA
MARCH 2012
Amir Barylko - CI MavenThought Inc.
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. RESOURCES
• Email: amir@barylko.com
• Twitter: @abarylko
• Blog: http://orthocoders.com
• Materials: http://bit.ly/orthoslides
Amir Barylko - CI MavenThought Inc.
4. INTRO
What is CI?
Who needs CI?
How to start
Amir Barylko - CI MavenThought Inc.
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 tools
Amir Barylko - CI MavenThought Inc.
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. 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. USING TEAM CITY
In a nutshell
Architecture Overview
Source Control
Build Agents
Notifications
Amir Barylko - CI MavenThought Inc.
9. IN A NUTSHELL
• Build automation and management server
• Team communication
• Platform agnostic
• Free professional version with 20 projects and 3 agents
Amir Barylko - CI MavenThought Inc.
11. SOURCE CONTROL
• Many providers: Git, Hg, SVN, TFS, CVS, VSS, etc....
• Build trigger rules to detect changes
• Labelling
Amir Barylko - CI MavenThought Inc.
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. NOTIFICATIONS
• Rich and friendly web interface
• Notifiers using email, jabber, tray, etc...
• HTML widget status
Amir Barylko - CI MavenThought Inc.
14. DEMO
Commons Project
Build
Test
Nightly build
Deploy
Tools
Amir Barylko - CI MavenThought Inc.
15. SUMMARY
Autonomous Build
Iteration 0
Success Tips
Next Steps
Amir Barylko - CI MavenThought Inc.
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 generated
Amir Barylko - CI MavenThought Inc.
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. 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 build
Amir Barylko - CI MavenThought Inc.
19. NEXT STEPS
• Build automatically per branch
• Let your clients deploy
• Shelving commits
• Discover static analysis tools
Amir Barylko - CI MavenThought Inc.
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.