Upload
amir-barylko
View
262
Download
1
Tags:
Embed Size (px)
Citation preview
Amir Barylko - CI MavenThought Inc.
AMIR BARYLKO
CONTINUOUS INTEGRATION
WITH TEAMCITY
CODE PALOUSAMARCH 2012
Amir Barylko - CI MavenThought Inc.
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.
RESOURCES• Email: [email protected]
• Twitter : @abarylko
• Blog: http://orthocoders.com
• Materials: http://bit.ly/orthoslides
Amir Barylko - CI MavenThought Inc.
INTROWhat is CI?
Who needs CI?How to start
Amir Barylko - CI MavenThought Inc.
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.
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.
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.
USING TEAM CITYIn a nutshell
Architecture OverviewSource Control
Build AgentsNotifications
Amir Barylko - CI MavenThought Inc.
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.
ARCHITECTURE OVERVIEW
Amir Barylko - CI MavenThought Inc.
SOURCE CONTROL• Many providers: Git, Hg, SVN, TFS, CVS, VSS, etc....
• Build trigger rules to detect changes
• Labelling
Amir Barylko - CI MavenThought Inc.
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.
NOTIFICATIONS• Rich and friendly web interface
• Notifiers using email, jabber, tray, etc...
• HTML widget status
Amir Barylko - CI MavenThought Inc.
DEMOCommons Project
BuildTest
Nightly buildDeployTools
Amir Barylko - CI MavenThought Inc.
SUMMARYAutonomous Build
Iteration 0Success TipsNext Steps
Amir Barylko - CI MavenThought Inc.
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.
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.
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.
NEXT STEPS• Build automatically per branch
• Let your clients deploy
• Shelving commits
• Discover static analysis tools
Amir Barylko - CI MavenThought Inc.
QUESTIONS?
Amir Barylko - CI MavenThought Inc.
RESOURCES• Email: [email protected]
• Twitter : @abarylko
• Materials: http://bit.ly/orthoslides
Amir Barylko - CI MavenThought Inc.
RESOURCES II
Amir Barylko - CI MavenThought Inc.
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.