feature branches vs. c Как скрестить ежа с...
TRANSCRIPT
![Page 1: Feature Branches vs. C Как скрестить ежа с ужом?)public.jugru.org/dotnext/2014/piter/koshkin.pdf · 2016-07-11 · Feature Branches vs. C (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/1.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/2.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/3.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/4.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/5.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/6.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/7.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/8.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/9.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/10.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/11.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/12.jpg)
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 (Как скрестить](https://reader033.vdocuments.mx/reader033/viewer/2022041516/5e2b329fbaf0be3f3b4d87b0/html5/thumbnails/13.jpg)
13 www.jetbrains.com
Thank you!