TeamCity (9.x) - Department of Distributed and Dependable Systems

TeamCity (9.x)
Michal Vavrek
14.4.2015
Basic Info
● Developed by JetBrains
● Java-based build management and
continuous integration server
● Server-based Web application
● IDE-independent
Continuous integration
● A development methodology of daily
developer integrations verified by
automated builds
● NOT CI
○
○
○
○
nightly builds
branches
build via IDEs
continuous complilation
Continuous integration
Risks during development
● Fixing bugs late
● Lack of team cohesion
● Poor quality code base
● Lack of deployable software
CI reduce the risks
CI - Better, faster, cheaper
Better
● quality, tested early and often,...
Faster
● parallel tests, no integration points,...
Cheaper
● find bugs earlier, fix when least costly,...
Build
Ingredients = build steps
● Compilation
● Test execution
● DB integration
● Code inspection
● Deployment
● Documentation generation
Build step
Build runner - ‘plugins’
● allows integration with specific build tool
● .NET Process Runner, Ant, VS, NUnit, MSBuild,
Maven, Command Line,...
Execution policy
●
●
●
●
Build status successful
Previous steps finished successfully
Always
Even, if some steps failed
Triggers
Build can be triggered
● Manually by ‘Run’ button
● Automatically with Triggers
○ ‘build trigger’ is a rule which initialize new
build (to build queue)
○ VCS, Schedule, Finish Build, Dependency
(Manen, NuGET), Branch Remote Run, Retry
Build
Build queue
● List of triggered builds waiting to be
started.
● Builds are distributed to compatible build
agents as soon as the agents are idle.
● Optimizations
○ merge similar builds (new will not be added)
○ replace latter chain build with more changes
○
Build Agent
● Piece of sw listens TC commands and starts the
actual build processes
● Can be installed separately from TC server
Typically
○ check out source code
○ download build artifacts
○ run build process
Single build at a time
Build Agent
Assign job based on compatibility
requirements
● Can execute MSBuild,...
Automatically upgrade when necessary
Agent Pools - assign projects
Agent must have unique name
TC Integrated
Code coverage
Inspections
Duplicates
Platforms supported
.NET, Java, Ruby
TC Integration
Version Control Systems
● SVN, CVS, Git, Mercurial, SourceSafe,...
IDEs
● Visual Studio, IntelliJ IDEA, Eclipse,...
Notifications
● Email, RSS, Jabber, IDE,...
TC Integration
Remote Run
● Personal build = pre-commit
Open APIs
● Runners
Scripted build runners
Licence
Freemium for open source projects
● up to 20 build and 3 build agents
Enterprise Server
● from €1999
Build Agent (1 agent + 10 build configs)
● €299
TC vs Jenkins
TC better for .NET - integrated and included
tools (code coverage, testing fw,...)
User-friendly / Developers experience
More Informations
Official website
● https://www.jetbrains.com/teamcity/
TC Blog
● http://blog.jetbrains.com/teamcity/
Documentation
● https://confluence.jetbrains.com/display/TCD9/