Your SlideShare is downloading. ×
0
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Continuous Integration
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Continuous Integration

2,442

Published on

Continuous Integration

Continuous Integration

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,442
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
87
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1.  
    • 2. Continuous Integration Perficient China Joseph Wang [email_address]
    • 3. Agenda
      • Warm Up
      • What’s CI
      • Benefits of CI – Why
      • When to implement CI
      • Who need to use CI
      • How to CI
      • Demo
    • 4. Warm Up
      • Do no harm
      • Pay me now or pay me more later
      • Agile: Working software vs. comprehensive documents
    • 5. Do no harm!
      • Hippocratic oath –
      • “ First, do no harm!”
    • 6. Pay me now or pay me more later
    • 7. Working software vs. comprehensive documents
    • 8. What is CI
      • A development methodology
      • Of daily developer integrations
      • Verified by automated builds
    • 9. What is CI
        • Is a software engineering practice in which isolated changes are immediately tested and reported on when they are added to a larger code base .
        • A software development practice where members of a team integrate their work frequently , usually each person integrates at least daily - leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. -- Martin Flower
    • 10. Martin Flower's Rules for CI
      • Maintain a single source repository.
      • Automate the build
      • Make your build self-testing
      • Everyone commits to the mainline every day
      • Every commit should build the mainline on an integration machine
      • Keep the build fast
      • Test in a clone of the production environment
      • Make it easy for anyone to get the latest executable
      • Everyone can see what's happening
      • Automate deployment
    • 11. Value of CI
      • To make things
      • Better
      • Faster
      • Cheaper
    • 12. Better
        • Better design
          • Make sure the software is testable
        • Better quality
          • That is tested early and often
          • Defects are detected and fixed sooner
          • Health of software is measurable
          • Always have a deployable software
          • That adheres to best practices
          • and coding standards
          • Greater software confidence
        • Better project visibility
          • “ What do you mean the tests are failing?”
          • “ What’s in version 1.2.3 of the build?”
          • “ What’s our code coverage now?
    • 13. Faster
      • Test in parallel, not at the end
      • No integration points
      • Builds become a non event
    • 14. Cheaper
      • Identify defects earlier
      • Fix when least costly
      • Easily repeatable testing
      • Reduce repetitive manual effort
    • 15. When to implement CI When??? Implement early in the project
    • 16. Who needs to use CI
      • Developer
      • Build master
      • QA
      • Project manager
      • Any others
    • 17. How to Start
      • At least, daily checkin
      • Automated build script
      • A code repository
      • A dedicated CI server
      • Some rules
    • 18. How to Start - Improve
      • Some more?
        • Code quality metric
        • Database integration
        • Document generation
        • Anything else?
    • 19. How to Start - Martin Flower's Rule for CI
      • Maintain a single source repository.
      • Automate the build
      • Make your build self-testing
      • Everyone commits to the mainline every day
      • Every commit should build the mainline on an integration machine
      • Keep the build fast
      • Test in a clone of the production environment
      • Make it easy for anyone to get the latest executable
      • Everyone can see what's happening
      • Automate deployment
    • 20. Best practices
      • Committing code frequently
        • Check in code at least daily
      • Categorizing developer tests
      • Make the build faster
      • Using a dedicated integration build machine
        • Cruise Control, Hudson
          • Ant/xUnit/Maven/etc.
      • Using continuous feedback mechanisms (Email, SMS, etc)
      • Staging builds
    • 21. Best practices - Continued
    • 22. Good practices - Attention!
      • Good process vs. Passive attitude
        • CI will be useless if developers always ignore CI reports
    • 23. Demos -- Hudson Features
      • Easy installation
        • Written in Java
      • Easy configuration
      • RSS/E-mail/IM integration
      • JUnit/TestNG test reporting
      • Distributed builds
      • File fingerprinting
      • Plug-in support
      • Trend diagram shows build results
    • 24. Demos – framework
      • Sonar for code quality
      • Hudson for CI
      • Subversion for code repository
    • 25. Demo
      • Now, Show me the Demo!
    • 26.
      • Open Discussion
      • Send email to [email_address]
      • To join the CI google wave
    • 27. References
      • http://martinfowler.com/articles/continuousIntegration.html
      • Continuous Integration: Improving Software Quality and Reducing Risk ---authored by Paul Duvall
      • http://www.integratebutton.com/index.html
      • Practices of an Agile Developer
      • https://hudson.dev.java.net/
      • Appfuse: https://appfuse.dev.java.net
      • --Other stuff
      • http://www.slideshare.net/carlo.bonamico/continuous-integration-with-hudson
      • http://hudson.gotdns.com/wiki/
      • Using proxy: 128.2.223.63, port:3128
      • JBOSS's hudson website: http://hudson.jboss.org/hudson/
      • Lucene's hudson website: http://lucene.zones.apache.org:8080/hudson/
      • http://www.selenic.com/mercurial/wiki/
    • 28. Thanks

    ×