Let’s start Continuous Integration with jenkins

4,458 views

Published on

This is the presentation in order to describe overview of Continuous Integration and Jenkins for members of my company.

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

No Downloads
Views
Total views
4,458
On SlideShare
0
From Embeds
0
Number of Embeds
1,457
Actions
Shares
0
Downloads
203
Comments
0
Likes
24
Embeds 0
No embeds

No notes for slide

Let’s start Continuous Integration with jenkins

  1. 1. ou u nLet’s start in io t t s n a o r withC g Inte Jenkins
  2. 2. What’s Continuous Integration?
  3. 3. OrganizeCurrent problems
  4. 4. Lots of bugs are found at the end of test phaseAs the system size increases, load of test getsbiggerFrequently degraded when mergeHard to merge manuallyUnexpected recognition differences ofrequirements
  5. 5. Lots of bugs are found at the end of test phaseAs the system size increases, load of test getsbiggerFrequently degraded when mergeHard to merge manuallyUnexpected recognition differences ofrequirements
  6. 6. Lots of bugs are found at the end of test phaseAs the system size increases, load of test getsbiggerFrequently degraded when mergeHard to merge manuallyUnexpected recognition differences ofrequirements
  7. 7. Lots of bugs are found at the end of test phaseAs the system size increases, load of test getsbiggerFrequently degraded when mergeHard to merge manuallyUnexpected recognition differences ofrequirements
  8. 8. Lots of bugs are found at the end of test phaseAs the system size increases, load of test getsbiggerFrequently degraded when mergeHard to merge manuallyUnexpected recognition differences ofrequirements
  9. 9. W e d o n’ta n y m o re !!
  10. 10. Purp ose
  11. 11. Improve quality
  12. 12. Decreasefrustration
  13. 13. Reduce thecommunication gapwith early feedback
  14. 14. Continuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integration What isContinuous integration?Continuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integrationContinuous integration Continuous integration
  15. 15. CI is the “practice” but not a “tool”.
  16. 16. Process of CIBuild server CI server Repository Monitor
  17. 17. Process of CIBuild server CI server Repository Detect Commit
  18. 18. Process of CIBuild server CI server Repository Build
  19. 19. Process of CIBuild server CI server Repository Report
  20. 20. CI is composed of:connection to repositorybuild scriptfeedback means such as mailprocess of integrating source code modification(test, inspection, deployment and feedback)
  21. 21. CI is composed of:connection to repositorybuild scriptfeedback means such as mailprocess of integrating source code modification(test, inspection, deployment and feedback)
  22. 22. CI is composed of:connection to repositorybuild scriptfeedback means such as mailprocess of integrating source code modification(test, inspection, deployment and feedback)
  23. 23. CI is composed of:connection to repositorybuild scriptfeedback means such as mailprocess of integrating source code modification(test, inspection, deployment and feedback)
  24. 24. "Build" in CI meansa series of processesrather thanthe so-called compilationthat is executedat the time of committing
  25. 25. Merit
  26. 26. Reduce risk
  27. 27. Reduce routine
  28. 28. Ensure the source code that can be deployed
  29. 29. Visualizeproject
  30. 30. To be confidentforproducts
  31. 31. Demerit
  32. 32. Load to build CI system -> initial costHardware cost for CI system -> initial + running cost
  33. 33. Maintenance of CI system -> running costFrequent build error -> running cost
  34. 34. Question
  35. 35. Do you leave the problem youre havingnow without any action?
  36. 36. How much cost have we takendue to the problems that has occurred?
  37. 37. Act
  38. 38. What’sJenkins?
  39. 39. Merit
  40. 40. 1. Easy GUI2. Easy to install3. Lots of plugins4. Leave execution logs
  41. 41. Demerit
  42. 42. 1. Frequent update2. Difficult to understandwords for Jenkins
  43. 43. First of allInstall
  44. 44. CentOShttps://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+RedHat+distributions
  45. 45. Download & install Jenkinssudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.keysudo yum install jenkins
  46. 46. Check java installationjava -version
  47. 47. Startsudo service jenkins start
  48. 48. Accesshttp://hostname:8080
  49. 49. What can we do with Jenkins?
  50. 50. Realize CI environment
  51. 51. Customizationfamiliarto our environment
  52. 52. PraInspection ctic Plugin Plugin PluginJoined test scrum scrum scrumUnit test agile agile agileDeploy e Redmine cakePHP Github git
  53. 53. Overviewof general system structure that we’ve ever developed
  54. 54. Mainlyweb application
  55. 55. cakePHP
  56. 56. Whole structure "aiming for the time being" with using Jenkins
  57. 57. Whole structure ReviewBuild Repository MergeBuild Pull request Detect
  58. 58. Whole structureBuild Repository Push Build Detect
  59. 59. Mus t
  60. 60. Check inspection when committing
  61. 61. Run all unit test script and kick operation testtool when committing
  62. 62. Coverage is reported as a result of test afterautomated test
  63. 63. Build error is sent to developers automatically
  64. 64. Run all unit test script regularly
  65. 65. Inspection
  66. 66. coverage: Clover PHP Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Clover+PHP+Plugincoding convention: Checkstyle Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/Checkstyle+Pluginduplicate code: DRY Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/DRY+Pluginconplicated: PMD Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/PMD+Plugin
  67. 67. Unit test
  68. 68. Use PHPunit
  69. 69. Use bake
  70. 70. import test result in XML format that iscompatible with jUnitxUnit Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/xUnit+Plugin
  71. 71. Register script to run AllTests./_lib/app/Console/cake test -log-junit=./reports/unittest.xml -coverage-html=./reports/coverage_html -coverage-clover=./reports/coverage.xml app AllTests
  72. 72. This prevents degradingBut “TDD” is required.
  73. 73. Operation test
  74. 74. Use SeleniumDo operation test with using Selenium manually first.
  75. 75. Use Selenium RCto write test cases using PHPunitit enables us to connect Selenium with Jenkins
  76. 76. Import test result in HTML formatseleniumhtmlreport Pluginhttps://wiki.jenkins-ci.org/display/JENKINS/seleniumhtmlreport+Plugin
  77. 77. Wan t
  78. 78. Deploy automatically on test serverafter passing unit test
  79. 79. Check differences of commit on browser
  80. 80. Synchronize commit and ticket on redmine
  81. 81. Build test server automaticallywhen dividing branches
  82. 82. Nee d?
  83. 83. Create documents automaticallyDocuments are not only for maintenance butalso one of the most important method toshare recognition between producer anddeveloper in offshore development.
  84. 84. Insummary
  85. 85. CI help us realize early feedback.
  86. 86. CI help us realize early feedback.Early feedback enable us to findbugs at the beginning of testphase and decrease communicationgap.
  87. 87. CI help us realize early feedback.Early feedback enable us to find bugs at the beginning of test phaseand decrease communication gap.Automated test enable to decreasedegrade and load for test.
  88. 88. CI help us realize early feedback.Early feedback enable us to find bugs at the beginning of test phaseand decrease communication gap.Automated test enable to decrease degrade and load for test.Jenkins provide us for comfortableCI environment.
  89. 89. Thank you!!

×