SlideShare a Scribd company logo
AMIR BARYLKO
                    CONTINUOUS
                    INTEGRATION
                      WITH TEAMCITY


                      CODE PALOUSA
                        MARCH 2012

Amir Barylko - CI                     MavenThought Inc.
WHO AM I?
  • Quality         Expert

  • Architect

  • Developer

  • Mentor

  • Great      cook

  • The     one who’s entertaining you for the next hour!



Amir Barylko - CI                                           MavenThought Inc.
RESOURCES
  • Email: amir@barylko.com

  • Twitter: @abarylko

  • Blog: http://orthocoders.com

  • Materials: http://bit.ly/orthoslides




Amir Barylko - CI                          MavenThought Inc.
INTRO
                     What is CI?
                    Who needs CI?
                    How to start




Amir Barylko - CI                   MavenThought Inc.
WHAT IS CI?
  • Development             methodology that aims to
  • Automate            building process
  • Verify          sanity of each build
  • Automate            unit, integration and acceptance testing
  • Placeholder           for other tools


Amir Barylko - CI                                      MavenThought Inc.
WHY DO YOU NEED CI?
  • Make      sure the build is not broken

  • Catch      failing test sooner than later

  • Generate          nightly builds

  • Deploy          automatically

  • Deploy          with one click

  • Run     extra tools (static analysis, code coverage, etc)



Amir Barylko - CI                                               MavenThought Inc.
HOW TO START
  • Automate           your process/tasks with a script

  • Install    a CI server (TeamCity, Jenkins, etc...)

  • Create          basic build and testing

  • Add      visible notifications

  • Add      deployment

  • Add      other tools like static analysis, etc...



Amir Barylko - CI                                         MavenThought Inc.
USING TEAM CITY
                           In a nutshell
                      Architecture Overview
                         Source Control
                           Build Agents
                           Notifications


Amir Barylko - CI                             MavenThought Inc.
IN A NUTSHELL
  • Build     automation and management server

  • Team       communication

  • Platform        agnostic

  • Free     professional version with 20 projects and 3 agents




Amir Barylko - CI                                           MavenThought Inc.
ARCHITECTURE OVERVIEW




Amir Barylko - CI         MavenThought Inc.
SOURCE CONTROL
  • Many      providers: Git, Hg, SVN, TFS, CVS, VSS, etc....

  • Build     trigger rules to detect changes

  • Labelling




Amir Barylko - CI                                               MavenThought Inc.
BUILD AGENTS
  • Each     agent can run in a different system/environment

  • Concurrent        build

  • Real-time       results

  • Dedicated       agents for particular tasks (like slow tests)




Amir Barylko - CI                                                   MavenThought Inc.
NOTIFICATIONS
  • Rich     and friendly web interface

  • Notifiers        using email, jabber, tray, etc...

  • HTML        widget status




Amir Barylko - CI                                       MavenThought Inc.
DEMO
                    Commons Project
                         Build
                          Test
                      Nightly build
                        Deploy
                         Tools

Amir Barylko - CI                     MavenThought Inc.
SUMMARY
                    Autonomous Build
                        Iteration 0
                       Success Tips
                       Next Steps



Amir Barylko - CI                      MavenThought Inc.
AUTONOMOUS BUILD
  • Build     with the minimum amount of tools

  • Store      necessary tools with the projects (if possible)

  • Avoid      storing binaries libraries/assemblies in repository

  • Avoid      storing artifacts that can be generated




Amir Barylko - CI                                                MavenThought Inc.
ITERATION 0
  • Flush     out architecture.

  • Setup Testing     harness for TDD and BDD.

  • Setup      continuous integration.

  • Setup      scripts to build, deploy, etc.

  • Setup      visual communication tools.




Amir Barylko - CI                                MavenThought Inc.
SUCCESS TIPS
  • Commit           often (in your branch)

  • Make      sure you run builds and tests before committing

  • Fix    build failures immediately

  • Fail   fast

  • Act     on metrics

  • Build     on every target environment

  • Create          artifacts for every build

Amir Barylko - CI                                          MavenThought Inc.
NEXT STEPS
  • Build     automatically per branch

  • Let    your clients deploy

  • Shelving        commits

  • Discover        static analysis tools




Amir Barylko - CI                           MavenThought Inc.
QUESTIONS?




Amir Barylko - CI                MavenThought Inc.
RESOURCES
  • Email: amir@barylko.com

  • Twitter: @abarylko

  • Materials: http://bit.ly/orthoslides




Amir Barylko - CI                          MavenThought Inc.
RESOURCES II




Amir Barylko - CI                  MavenThought Inc.
SOFTWARE QUALITY
                       WORKSHOP
  • When: May        4, 10-11 & 16-17

  • More       info: http://www.maventhought.com

  • Goal: Learn  Kanban, BDD & TDD to improve the quality of
     your day to day job.




Amir Barylko - CI                                     MavenThought Inc.

More Related Content

PDF
CPL12-Agile-planning
PDF
Agile requirements
PDF
Agile requirements
PDF
YEG-Agile-planning
PDF
Jvm-bdd-quality-driven
PDF
Page objects pattern
PDF
prdc10-Bdd-real-world
PDF
Open source libraries and tools
CPL12-Agile-planning
Agile requirements
Agile requirements
YEG-Agile-planning
Jvm-bdd-quality-driven
Page objects pattern
prdc10-Bdd-real-world
Open source libraries and tools

What's hot (20)

PDF
prdc10-tdd-patterns
PDF
Quality web-acceptance
PDF
every-day-automation
PDF
CodeCamp 2012-mvc-vs-ror-2
KEY
Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...
PDF
PRDC-ror-trilogy-part1
KEY
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
PPTX
Rise of the hybrids
PDF
Codemash-advanced-ioc-castle-windsor
KEY
Developing for Remote Bamboo Agents, AtlasCamp US 2012
PDF
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
PPTX
Effective Code Review (Or How To Alienate Your Coworkers)
PDF
decoupling-ea
PDF
PDF
Designing for User Experience (UX) with Atlassian Tools
PDF
2012 regina TC 102 kanban
PDF
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
PPTX
From 1 to 100
PDF
PRDC11-tdd-common-mistakes
PDF
Automated UI test on mobile - with Cucumber/Calabash
prdc10-tdd-patterns
Quality web-acceptance
every-day-automation
CodeCamp 2012-mvc-vs-ror-2
Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...
PRDC-ror-trilogy-part1
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
Rise of the hybrids
Codemash-advanced-ioc-castle-windsor
Developing for Remote Bamboo Agents, AtlasCamp US 2012
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
Effective Code Review (Or How To Alienate Your Coworkers)
decoupling-ea
Designing for User Experience (UX) with Atlassian Tools
2012 regina TC 102 kanban
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
From 1 to 100
PRDC11-tdd-common-mistakes
Automated UI test on mobile - with Cucumber/Calabash
Ad

Similar to Cpl12 continuous integration (20)

PDF
2012 regina TC - 103 quality driven
PDF
why-tdd
PDF
Page-objects-pattern
PPTX
Introduction to Continuous Integration
PDF
Rich UI with Knockout.js & Coffeescript
PDF
Agile planning
PDF
YEG-UG-Capybara
PPTX
DevOps intro
PDF
PRDCW-avent-aggregator
PDF
Continuous delivery @ iyzico
PDF
Continuous integration
PPTX
Scaling Continuous Integration Practices to Teams with Parallel Development
PDF
Unit Testing in JavaScript
PPT
Enter the Team City
PPTX
SanDiego_DevOps_Meetup_9212016-v8
PDF
SanDiego_DevOps_Meetup_9212016
PPT
Jenkins Overview
PDF
What CS Class Didn't Teach About Testing
PPTX
Managing Continuous Delivery of Mobile Apps - for the Enterprise
PPTX
Continuous delivery applied (DC CI User Group)
2012 regina TC - 103 quality driven
why-tdd
Page-objects-pattern
Introduction to Continuous Integration
Rich UI with Knockout.js & Coffeescript
Agile planning
YEG-UG-Capybara
DevOps intro
PRDCW-avent-aggregator
Continuous delivery @ iyzico
Continuous integration
Scaling Continuous Integration Practices to Teams with Parallel Development
Unit Testing in JavaScript
Enter the Team City
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016
Jenkins Overview
What CS Class Didn't Teach About Testing
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Continuous delivery applied (DC CI User Group)
Ad

More from Amir Barylko (20)

PDF
Functional converter project
PDF
Elm: delightful web development
PDF
Dot Net Core
PDF
No estimates
PDF
User stories deep dive
PDF
Coderetreat hosting training
PDF
There's no charge for (functional) awesomeness
PDF
What's new in c# 6
PDF
Productive teams
PDF
Who killed object oriented design?
PDF
From coach to owner - What I learned from the other side
PDF
Communication is the Key to Teamwork and productivity
PDF
Acceptance Test Driven Development
PDF
Refactoring
PDF
Agile teams and responsibilities
PDF
Refactoring
PDF
Beutiful javascript with coffeescript
PDF
Sass & bootstrap
PDF
SDEC12 Beautiful javascript with coffeescript
PDF
Beutiful javascript with coffeescript
Functional converter project
Elm: delightful web development
Dot Net Core
No estimates
User stories deep dive
Coderetreat hosting training
There's no charge for (functional) awesomeness
What's new in c# 6
Productive teams
Who killed object oriented design?
From coach to owner - What I learned from the other side
Communication is the Key to Teamwork and productivity
Acceptance Test Driven Development
Refactoring
Agile teams and responsibilities
Refactoring
Beutiful javascript with coffeescript
Sass & bootstrap
SDEC12 Beautiful javascript with coffeescript
Beutiful javascript with coffeescript

Cpl12 continuous integration

  • 1. AMIR BARYLKO CONTINUOUS INTEGRATION WITH TEAMCITY CODE PALOUSA MARCH 2012 Amir Barylko - CI MavenThought Inc.
  • 2. WHO AM I? • Quality Expert • Architect • Developer • Mentor • Great cook • The one who’s entertaining you for the next hour! Amir Barylko - CI MavenThought Inc.
  • 3. RESOURCES • Email: amir@barylko.com • Twitter: @abarylko • Blog: http://orthocoders.com • Materials: http://bit.ly/orthoslides Amir Barylko - CI MavenThought Inc.
  • 4. INTRO What is CI? Who needs CI? How to start Amir Barylko - CI MavenThought Inc.
  • 5. WHAT IS CI? • Development methodology that aims to • Automate building process • Verify sanity of each build • Automate unit, integration and acceptance testing • Placeholder for other tools Amir Barylko - CI MavenThought Inc.
  • 6. WHY DO YOU NEED CI? • Make sure the build is not broken • Catch failing test sooner than later • Generate nightly builds • Deploy automatically • Deploy with one click • Run extra tools (static analysis, code coverage, etc) Amir Barylko - CI MavenThought Inc.
  • 7. HOW TO START • Automate your process/tasks with a script • Install a CI server (TeamCity, Jenkins, etc...) • Create basic build and testing • Add visible notifications • Add deployment • Add other tools like static analysis, etc... Amir Barylko - CI MavenThought Inc.
  • 8. USING TEAM CITY In a nutshell Architecture Overview Source Control Build Agents Notifications Amir Barylko - CI MavenThought Inc.
  • 9. IN A NUTSHELL • Build automation and management server • Team communication • Platform agnostic • Free professional version with 20 projects and 3 agents Amir Barylko - CI MavenThought Inc.
  • 10. ARCHITECTURE OVERVIEW Amir Barylko - CI MavenThought Inc.
  • 11. SOURCE CONTROL • Many providers: Git, Hg, SVN, TFS, CVS, VSS, etc.... • Build trigger rules to detect changes • Labelling Amir Barylko - CI MavenThought Inc.
  • 12. BUILD AGENTS • Each agent can run in a different system/environment • Concurrent build • Real-time results • Dedicated agents for particular tasks (like slow tests) Amir Barylko - CI MavenThought Inc.
  • 13. NOTIFICATIONS • Rich and friendly web interface • Notifiers using email, jabber, tray, etc... • HTML widget status Amir Barylko - CI MavenThought Inc.
  • 14. DEMO Commons Project Build Test Nightly build Deploy Tools Amir Barylko - CI MavenThought Inc.
  • 15. SUMMARY Autonomous Build Iteration 0 Success Tips Next Steps Amir Barylko - CI MavenThought Inc.
  • 16. AUTONOMOUS BUILD • Build with the minimum amount of tools • Store necessary tools with the projects (if possible) • Avoid storing binaries libraries/assemblies in repository • Avoid storing artifacts that can be generated Amir Barylko - CI MavenThought Inc.
  • 17. ITERATION 0 • Flush out architecture. • Setup Testing harness for TDD and BDD. • Setup continuous integration. • Setup scripts to build, deploy, etc. • Setup visual communication tools. Amir Barylko - CI MavenThought Inc.
  • 18. SUCCESS TIPS • Commit often (in your branch) • Make sure you run builds and tests before committing • Fix build failures immediately • Fail fast • Act on metrics • Build on every target environment • Create artifacts for every build Amir Barylko - CI MavenThought Inc.
  • 19. NEXT STEPS • Build automatically per branch • Let your clients deploy • Shelving commits • Discover static analysis tools Amir Barylko - CI MavenThought Inc.
  • 20. QUESTIONS? Amir Barylko - CI MavenThought Inc.
  • 21. RESOURCES • Email: amir@barylko.com • Twitter: @abarylko • Materials: http://bit.ly/orthoslides Amir Barylko - CI MavenThought Inc.
  • 22. RESOURCES II Amir Barylko - CI MavenThought Inc.
  • 23. SOFTWARE QUALITY WORKSHOP • When: May 4, 10-11 & 16-17 • More info: http://www.maventhought.com • Goal: Learn Kanban, BDD & TDD to improve the quality of your day to day job. Amir Barylko - CI MavenThought Inc.