The document is a presentation by Amir Barylko on continuous integration using TeamCity. It introduces CI and its benefits, how to get started with CI using TeamCity, and provides an overview of key TeamCity concepts like source control, build agents, and notifications. The presentation concludes with a discussion on next steps and a question period.
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.