Showdown: CI/CD tools
TeamCity
Boyan Mihaylov
MP Pension
@bmihaylov
@bmihaylov | CNUG 2017 2
Trust is the essential reason we need
continuous integration.
Matthew Setter
“
”
Continuous integration
Small & frequent integrations
Automated tests (unit, smoke, acceptance, etc.)
Code quality
Immediate feedback
@bmihaylov | CNUG 2017
First words
Continuous integration tool
• Quality control
• Team cooperation
• IDE-independent
• .NET, Java and many more
Made by JetBrains
@bmihaylov | CNUG 2017
Architecture
@bmihaylov | CNUG 2017
Version
Control
System
(VCS)
IDE integration
TeamCity agents
Web administration Notifications
Build agents
Executes commands from the server
Same or different machine (and OS)
Can be restricted for certain projects only
Can be organized in pools
@bmihaylov | CNUG 2017
Projects
Define a series of build configurations
@bmihaylov | CNUG 2017
Build configurations
Define a series of steps to execute
Attached to a certain VCS
@bmihaylov | CNUG 2017
Triggers
VCS
Schedule
Retry
Dependency (Maven, NuGet)
@bmihaylov | CNUG 2017
Automated tests
Unit and acceptance tests
Test results & statistics
@bmihaylov | CNUG 2017
Code coverage
JetBrains dotCover included
NCover and other tools supported
@bmihaylov | CNUG 2017
Code inspections
FxCop, ReSharper Inspections
Fail build on certain number of issues
@bmihaylov | CNUG 2017
Pre-tested commits
Check if your local changes will pass the build steps before
committing to the trunk
IDE extension (SVN, Peforce, TFS)
Remote branch run (git, Mercurial)
@bmihaylov | CNUG 2017
@bmihaylov | CNUG 2017 https://www.jetbrains.com/teamcity/features/delayed_commit.html
@bmihaylov | CNUG 2017 https://www.jetbrains.com/teamcity/features/delayed_commit.html
Personal builds
@bmihaylov | CNUG 2017
Deployment configuration
Reusing sources
Generating artifacts
Publishing artifacts
@bmihaylov | CNUG 2017
Snapshot & artifact dependencies
Chain build configurations
Reuse the output artifacts
from other build
configurations
@bmihaylov | CNUG 2017
Deployment artifacts
@bmihaylov | CNUG 2017
Continuous deployment
@bmihaylov | CNUG 2017
Configuration backup
@bmihaylov | CNUG 2017
Extensibility
Meta-Runners (PowerShell)
Custom report tabs
RESTful API
Plugins
• Slack notifier
• Achievements
• Create your own
@bmihaylov | CNUG 2017
Licensing
Professional Server License
• 20 build configurations
• 3 build agents
• Pay for additional agents and configurations
Enterprise Server License
• Unlimited build configurations
• 3+ build agents
• Priority support
@bmihaylov | CNUG 2017
FREE
from
€1,999.00
Summary
TeamCity makes CI/CD smooth
Good integration with other tools
Easy to extend
Free professional license
@bmihaylov | CNUG 2017

Showdown CI/CD - TeamCity