Build Pipelines
with TeamCity
TeamCity @ JetBrains
2700+ projects
16000+ build configurations
~700 agents
est 2006
TeamCity @ JetBrains
Checkout sources
Compile
Run tests
Create report
Send notifications
Looks
simple!
Why do I need a
“pipeline”?
How long does it take to run
tests?
Checkout sources
Compile
Run tests
Create report
Send notifications
Checkout sources
Compile
Run fast tests
Create report
Send notifications
Run
integration,
performance,
UI
tests
Pipeline!!
Checkout sources
Compile
Run fast tests
Create report
Send notifications
Build Test
Run
integration,
performance,
UI
tests
Checkout sources
Compile
Run fast tests
Create report
Send notifications
Test
Reporting &
Notifications
Build
UI tests
Build
Integration
tests
More tests
Reporting &
Notifications
Test
Build Test
Test
Build
Reporting &
Notifications
Test
Build Test
Test
Build
Dependencies
Reporting &
Notifications
Build chains
Build 1
Build 2
Build 3
Build 4
Build 1
Build 2
Build 3
Build 4
“snapshot dependency”
rev 1
rev 2
rev 3
Build 1
Build 2
Build 3
Build 4
rev 1
rev 3
rev 3
Build 1
Build 2
Build 3
Build 4
rev 1
rev 3
rev 3
Build 1
Build 3
Build 2
Build 4
rev 1
rev 3
rev 3
Build 1
Build 3
Build 2
Build 4
Queue optimization
B
rev1
A
rev1
C
rev1
D
rev1
1 2 3 4
…
B
rev1
A
rev1
C
rev1
D
rev1
1 2 3 4
…
B
rev2
B
rev1
A
rev1
C
rev1
D
rev1
1 2 3 4
…
B
rev2
B
rev2
A
rev1
C
rev1
D
rev1
1 2 3 4
…
6500 builds
~40%
3000 hours
Daily
savings:
Demo
1. Create project
2. Enable Versioned Settings
3. Create build configurations in Kotlin DSL
…
4. Profit!
Building dependent Maven projects
https://medium.com/@antonarhipov/building-dependant-maven-projects-d2b71963827a
@antonarhipov
anton.arhipov@jetbrains.com
https://github.com/antonarhipov/pipeline

Build pipelines with TeamCity