Top Banner
www.jetbrains.com Feature Branches vs. CI (Как скрестить ежа с ужом?) Evgeniy Koshkin, TeamCity developer
13

Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

Jan 01, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

www.jetbrains.com

Feature Branches vs. CI (Как скрестить ежа с ужом?)

Evgeniy Koshkin, TeamCity developer

Page 2: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

2 www.jetbrains.com

How we test our products?

•  Integration Tests •  Eating Your Own Dog Food •  EAP •  QA

Page 3: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

3 www.jetbrains.com

Internal TeamCity installation

•  VCS changes count per day – 1000+ •  Build count per day – 1500+ •  Maximum test count per build – 41714 •  Registered build agents count – 126 •  Average build duration – 1 h (max 6 h) •  Average time spending in queue – 1 h

Page 4: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

4 www.jetbrains.com

TeamCity Team

•  Perforce, Subversion, TFS, Git, Hg •  Nightly deploy to production •  Are global changes even possible?

Page 5: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

5 www.jetbrains.com

Feature toggles

•  Branching by abstraction

•  New behavior can be easily disabled, sometimes on the fly

•  Same toggles are used in production

•  Increases code complexity

•  Requires careful planning of your commits

Page 6: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

6 www.jetbrains.com

Remote Run

Page 7: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

7 www.jetbrains.com

.NET Products Team (a long time ago)

•  Subversion (no Feature Branches) •  33000+ tests (R#) •  Build duration 3 – 4 h (R#) •  Who broke the build? •  42 •  ‘Remote Run’ pain

Page 8: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

8 www.jetbrains.com

‘Mixed Changes’ Problem Workarounds

•  Higher priority for personal builds •  Incremental builds •  Dedicated build agents pool

Page 9: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

9 www.jetbrains.com

.NET Products Team (our days)

•  Hg •  Feature Branches •  Green builds!

Page 10: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

10 www.jetbrains.com

Feature Branches Support in TeamCity

•  Status of all pushed branches •  Track test history per branch •  Track statistic per branch

Page 11: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

11 www.jetbrains.com

Shared .NET Platform

Page 12: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

12 www.jetbrains.com

‘HUUUUUGE Merge’ Story

Page 13: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить

13 www.jetbrains.com

Thank you!