TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software...

22
www.jetbrains.com TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc.

Transcript of TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software...

Page 1: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

www.jetbrains.com

TeamCityDelivering Quality Software, on Time

Václav PechSoftware Developer and Product Evangelist

JetBrains, Inc.

Page 2: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

2www.jetbrains.com

Part 1: Continuous integration

ReportTrigger (by change)

Compile Test / Analyse

Page 3: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

3www.jetbrains.com

TeamCity is a …• Continuous integration tool

– Quality control– Team cooperation– IDE-independent– Java + .Net

Page 4: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

4www.jetbrains.com

Integration• CVS, SVN, ClearCase, …

• Ant, Maven 2, IntelliJ IDEA, Nant, …

• Email, RSS, Jabber, IDE, Windows Tray

• Eclipse, IntelliJ IDEA, Visual Studio

• JUnit, TestNG, EMMA, Cobertura

Page 5: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

5www.jetbrains.com

Architecture

Page 6: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

6www.jetbrains.com

Part 2:

• TeamCity solving problems

Page 7: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

7www.jetbrains.com

Problem:• Administration headaches

– Multiple projects and build configurations

– Cumbersome administration of multiple build machines

Page 8: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

8www.jetbrains.com

Solution: Distributed builds

Page 9: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

9www.jetbrains.com

Solution: Distributed builds• Multi-platform testing

• Easy administration

• Optimized task distribution

Page 10: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

10www.jetbrains.com

Problem:• Notification spam

– People stop reading notifications– People stop reading notifications– People stop reading notifications– People stop reading notifications– People stop reading notifications– People stop reading notifications– People stop reading notifications

Page 11: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

11www.jetbrains.com

Solution: Clean and fast notifications

• Relevant

• Convenient

• Early

Page 12: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

12www.jetbrains.com

Problem:• Nobody fixes the build

Page 13: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

13www.jetbrains.com

Solution: Take responsibility

• Indicate explicitly that you’re fixing it

Page 14: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

14www.jetbrains.com

Problem:• Locating failures

Page 15: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

15www.jetbrains.com

Solution: IDE integration

• Show results just as if ran locally

• Direct links to the source code

Page 16: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

16www.jetbrains.com

Problem:• Developers don’t check code quality

often enough

– Interrupts work flow

– Takes time, decreases productivity

Page 17: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

17www.jetbrains.com

Solution: Server checks for quality• Inspections

– 700+ rules for Java, JavaScript, HTML, XML, …

• Code coverage

• Code duplicates

Page 18: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

18www.jetbrains.com

Problem:

• Broken builds after commit

– 5 o’clock checkin case

Page 19: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

19www.jetbrains.com

Solution: Pre-tested commit

• The server integrates your local changes before committing to VCS

Page 20: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

20www.jetbrains.com

Page 21: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

21www.jetbrains.com

Summary

• CI is a must but has obstacles

• TeamCity makes CI smooth

• Free Professional Edition

– Contact me: [email protected]

Page 22: TeamCity CI with fun · TeamCity Delivering Quality Software, on Time Václav Pech Software Developer and Product Evangelist JetBrains, Inc. 2 Part 1: Continuous integration Trigger

22www.jetbrains.com

Questions