Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to Continuous Integration

Introduction to Continuous Integration

Related Audiobooks

Free with a 30 day trial from Scribd

See all
  • Be the first to comment

  • Be the first to like this

Introduction to Continuous Integration

  1. 1. Continuous Integration with Jenkins
  2. 2. Goals Push code Push code Review code Build on push Daily build Test on push Nightly regression Performance testing
  3. 3. About Trainer
  4. 4. Introduce Yourself 2 minutes
  5. 5. What is your Continuous Integration ?
  6. 6. What is your CI system ? No Build Server Nightly Build Automated Build with Basic Automated Test Use Metrics More About Testing Automated Acceptance Testing Continuous Deployment Continuous Delivery
  7. 7. Stressful Releases
  8. 8. What is CI ? • Continuous Integration !!! • Automated Everything • Build as often as possible • Build early and often • e.g. On every commit/nightly build
  9. 9. What is CI ? • Not just technical • Organization and culture
  10. 10. What is CI ? • Software development practice • What people do, not about what tools • Integrate frequently • Fast feedback
  11. 11. Benefit of CI • Fewer error/Reduce risks • Fast feedback • Much less manual testing • Regression test without additional effort • Generate deployable software • Great confidence in the product
  12. 12. อะไรที่ไม่ใ๡่ CI • Nightly build • Developer branch • Scheduling integration point • Building via IDE
  13. 13. CI Practices 1. Maintain a single source repository 2. Automate the build 3. Make your build self-test 4. Everyone commit to the mainline everyday 5. Every commit should build the mainline on integration machine 6. Keep the build fact 7. Test in a clone of the production environment 8. Make it easy for everyone to get the latest executable 9. Everyone can see what is happen 10.Automate deployment
  14. 14. Single Source Repository • Single point of truth • Everyone’s code in the same place • NOT a branch per developer • Shared ownership
  15. 15. Automate Build • IDE is not automating !! • Use build tool • Compile, package and test
  16. 16. Self-testing Build • Direct from source to running build • No manual copy • No click • No edit config file
  17. 17. Self-testing Build • Test with • Unit tests • Functional tests • Performance tests
  18. 18. Self-testing Build • Responsible persons should be notified when anything fails • Test web in more browser
  19. 19. Commit More Often • At lease one per hour • Need small unit of work • To commit cleanly you need to update first
  20. 20. Every Commit Build • It’s all about fast feedback • Small changes • Less to merge or fix
  21. 21. Publish Latest Distributable • Make it easy to get final product • Should only build once • Configuration is separate
  22. 22. Test in Production Clone • Detect multi-thread, cluster, load balance issue • Test system architecture • Real database
  23. 23. Keep Build Fast • It’s all about feedback • If thing break you find out about it, fresh in your mind • Keep up with frequent commit
  24. 24. Everyone See What’s Happening • Reduce time to fix • No excuse to commit on broken build • It’s not about blame, it about feedback
  25. 25. Automate Deployment • Reduce human error • Verify can run on somewhere other than “My Machine” • Test not only on code, but deployment process too • Don’t tie up System Administrators with boring stuff • Don’t tie up Developers waiting for feedback
  26. 26. Make CI Work • Can not done in isolation • Pick the right tool for the right job • It’s not silver bullet
  27. 27. Build Pipeline
  28. 28. Traditional CI Flow
  29. 29. Build Pipeline Flow
  30. 30. One Click Deploys • Require the Build pipelines • Reduce deployment time and risk • Make go live a non-event
  31. 31. History
  32. 32. Summary • CI and Build pipeline improve • Quality • Time to market • Confidence • Continuous Deployment/Delivery is the next step • Require Developers and System Administrator to work closely together
  33. 33. 3 persons/group
  34. 34. Your Build Pipeline
 ?
  35. 35. Build/Deployment Pipeline 1. Clean 2. Checkout 3. Download Library 4. Compile 5. Package 6. Setup DB 7. Run Test 8. Deploy
  36. 36. How to Self-Testing ?
  37. 37. What is Jenkins ? • Continuous Integration Server • Opensource • A lot of useful plugin • Well document • Active community
  38. 38. Goals Push code Push code Review code Build on push Daily build Test on push Nightly regression Performance testing
  39. 39. Let’s Go !!!

    Be the first to comment

    Login to see the comments

Introduction to Continuous Integration

Views

Total views

618

On Slideshare

0

From embeds

0

Number of embeds

3

Actions

Downloads

17

Shares

0

Comments

0

Likes

0

×