SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
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.

Mais conteúdo relacionado

Mais procurados

prdc10-tdd-patterns
prdc10-tdd-patternsprdc10-tdd-patterns
prdc10-tdd-patternsAmir Barylko
 
Quality web-acceptance
Quality web-acceptanceQuality web-acceptance
Quality web-acceptanceAmir Barylko
 
every-day-automation
every-day-automationevery-day-automation
every-day-automationAmir Barylko
 
CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2CodeCamp 2012-mvc-vs-ror-2
CodeCamp 2012-mvc-vs-ror-2Amir Barylko
 
Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...
Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...
Expose Yourself! How to Leverage Plugin Extensibility to Delight your Users, ...Atlassian
 
PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1PRDC-ror-trilogy-part1
PRDC-ror-trilogy-part1Amir Barylko
 
AtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel LemieuxAtlasCamp US 2012 Keynote, Jean-Michel Lemieux
AtlasCamp US 2012 Keynote, Jean-Michel LemieuxAtlassian
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybridsOron Ben Zvi
 
Codemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsorCodemash-advanced-ioc-castle-windsor
Codemash-advanced-ioc-castle-windsorAmir Barylko
 
Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Developing for Remote Bamboo Agents, AtlasCamp US 2012
Developing for Remote Bamboo Agents, AtlasCamp US 2012Atlassian
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
 
Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Effective Code Review (Or How To Alienate Your Coworkers)
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
 
Designing for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian ToolsDesigning for User Experience (UX) with Atlassian Tools
Designing for User Experience (UX) with Atlassian ToolsAtlassian
 
2012 regina TC 102 kanban
2012 regina TC 102 kanban2012 regina TC 102 kanban
2012 regina TC 102 kanbanAmir Barylko
 
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at FlickrJohn Allspaw
 
PRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesPRDC11-tdd-common-mistakes
PRDC11-tdd-common-mistakesAmir Barylko
 
Automated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashAutomated UI test on mobile - with Cucumber/Calabash
Automated UI test on mobile - with Cucumber/CalabashNiels Frydenholm
 

Mais procurados (20)

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

Semelhante a Cpl12 continuous integration

2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality drivenAmir Barylko
 
Page-objects-pattern
Page-objects-patternPage-objects-pattern
Page-objects-patternAmir Barylko
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous IntegrationZahra Golmirzaei
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptAmir Barylko
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Peter Leschev
 
PRDCW-avent-aggregator
PRDCW-avent-aggregatorPRDCW-avent-aggregator
PRDCW-avent-aggregatorAmir Barylko
 
Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzicoÜmit Ünal
 
Continuous integration
Continuous integrationContinuous integration
Continuous integrationhugo lu
 
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentScaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentIBM UrbanCode Products
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScriptRob Scaduto
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8Rajwinder Singh
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016w2fong
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingCamille Bell
 
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseManaging Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseSauce Labs
 

Semelhante a Cpl12 continuous integration (20)

2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven2012 regina TC - 103 quality driven
2012 regina TC - 103 quality driven
 
why-tdd
why-tddwhy-tdd
why-tdd
 
Page-objects-pattern
Page-objects-patternPage-objects-pattern
Page-objects-pattern
 
Introduction to Continuous Integration
Introduction to Continuous IntegrationIntroduction to Continuous Integration
Introduction to Continuous Integration
 
Rich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & CoffeescriptRich UI with Knockout.js & Coffeescript
Rich UI with Knockout.js & Coffeescript
 
Agile planning
Agile planningAgile planning
Agile planning
 
YEG-UG-Capybara
YEG-UG-CapybaraYEG-UG-Capybara
YEG-UG-Capybara
 
DevOps intro
DevOps introDevOps intro
DevOps intro
 
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
Puppet Camp Melbourne Nov 2014 - A Build Engineering Team’s Journey of Infras...
 
PRDCW-avent-aggregator
PRDCW-avent-aggregatorPRDCW-avent-aggregator
PRDCW-avent-aggregator
 
Continuous delivery @ iyzico
Continuous delivery @ iyzicoContinuous delivery @ iyzico
Continuous delivery @ iyzico
 
Continuous integration
Continuous integrationContinuous integration
Continuous integration
 
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentScaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel Development
 
Unit Testing in JavaScript
Unit Testing in JavaScriptUnit Testing in JavaScript
Unit Testing in JavaScript
 
Enter the Team City
Enter the Team CityEnter the Team City
Enter the Team City
 
SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8SanDiego_DevOps_Meetup_9212016-v8
SanDiego_DevOps_Meetup_9212016-v8
 
SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016SanDiego_DevOps_Meetup_9212016
SanDiego_DevOps_Meetup_9212016
 
Jenkins Overview
Jenkins OverviewJenkins Overview
Jenkins Overview
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About Testing
 
Managing Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the EnterpriseManaging Continuous Delivery of Mobile Apps - for the Enterprise
Managing Continuous Delivery of Mobile Apps - for the Enterprise
 

Mais de Amir Barylko

Functional converter project
Functional converter projectFunctional converter project
Functional converter projectAmir Barylko
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web developmentAmir Barylko
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep diveAmir Barylko
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting trainingAmir Barylko
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessAmir Barylko
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6Amir Barylko
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?Amir Barylko
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideAmir Barylko
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityAmir Barylko
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven DevelopmentAmir Barylko
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilitiesAmir Barylko
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescriptAmir Barylko
 
SDEC12 Beautiful javascript with coffeescript
SDEC12 Beautiful javascript with coffeescriptSDEC12 Beautiful javascript with coffeescript
SDEC12 Beautiful javascript with coffeescriptAmir Barylko
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescriptAmir Barylko
 

Mais de Amir Barylko (20)

Functional converter project
Functional converter projectFunctional converter project
Functional converter project
 
Elm: delightful web development
Elm: delightful web developmentElm: delightful web development
Elm: delightful web development
 
Dot Net Core
Dot Net CoreDot Net Core
Dot Net Core
 
No estimates
No estimatesNo estimates
No estimates
 
User stories deep dive
User stories deep diveUser stories deep dive
User stories deep dive
 
Coderetreat hosting training
Coderetreat hosting trainingCoderetreat hosting training
Coderetreat hosting training
 
There's no charge for (functional) awesomeness
There's no charge for (functional) awesomenessThere's no charge for (functional) awesomeness
There's no charge for (functional) awesomeness
 
What's new in c# 6
What's new in c# 6What's new in c# 6
What's new in c# 6
 
Productive teams
Productive teamsProductive teams
Productive teams
 
Who killed object oriented design?
Who killed object oriented design?Who killed object oriented design?
Who killed object oriented design?
 
From coach to owner - What I learned from the other side
From coach to owner - What I learned from the other sideFrom coach to owner - What I learned from the other side
From coach to owner - What I learned from the other side
 
Communication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivityCommunication is the Key to Teamwork and productivity
Communication is the Key to Teamwork and productivity
 
Acceptance Test Driven Development
Acceptance Test Driven DevelopmentAcceptance Test Driven Development
Acceptance Test Driven Development
 
Refactoring
RefactoringRefactoring
Refactoring
 
Agile teams and responsibilities
Agile teams and responsibilitiesAgile teams and responsibilities
Agile teams and responsibilities
 
Refactoring
RefactoringRefactoring
Refactoring
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful javascript with coffeescript
Beutiful javascript with coffeescript
 
Sass & bootstrap
Sass & bootstrapSass & bootstrap
Sass & bootstrap
 
SDEC12 Beautiful javascript with coffeescript
SDEC12 Beautiful javascript with coffeescriptSDEC12 Beautiful javascript with coffeescript
SDEC12 Beautiful javascript with coffeescript
 
Beutiful javascript with coffeescript
Beutiful javascript with coffeescriptBeutiful 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.