Continuous Integration at T3CON08

3,469 views
3,391 views

Published on

Introducing Continuous Integration based on Hudson integrated into our main development platform: forge.typo3.org

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

No Downloads
Views
Total views
3,469
On SlideShare
0
From Embeds
0
Number of Embeds
459
Actions
Shares
0
Downloads
150
Comments
0
Likes
9
Embeds 0
No embeds

No notes for slide

Continuous Integration at T3CON08

  1. 1. Continuous Integration Sebastian Kurfürst sebastian@typo3.org
  2. 2. Audience Developers Project Managers
  3. 3. Continuous Integration Subversion forge.typo3.org Collaboration Platform Wiki Bugtracker
  4. 4. Abstract { Version Control Requirements Test-Driven Development { What is CI? Continuous Integration with forge Integration Your own CI Server Conclusion
  5. 5. - Requirements - Version Control Subversion Repository Commit Update Update
  6. 6. Synchronize Often! Repository 1 2 3 4 Working 1 Copy Split your work into smaller chunks!
  7. 7. Short Development Cycles
  8. 8. How many of you have ever written a unit test?
  9. 9. How many of you write unit tests during your daily work?
  10. 10. Test-Driven Development » ... means that you write an automated test, then you write just enough code to make that one test pass, then you « refactor the code primarily to improve readability and remove duplication. Henrik Kniberg SCRUM and XP from the Trenches
  11. 11. Test-Driven Development Test Case FAIL Implementation OK Refactoring OK
  12. 12. Test-Driven Development - Demonstration -
  13. 13. An Academic Example • Write a Mathematical Helpers class, which has a method „square“, which multiplies a number with itself.
  14. 14. 1. Write a test case!
  15. 15. How to use it • Nicely integrated with forge
  16. 16. The test case fails
  17. 17. 2. Implement!
  18. 18. The test case...
  19. 19. Spot design flaws earlier!
  20. 20. Unit tests are a Safety net for the future
  21. 21. What is CI? Integration with forge Your own CI Server
  22. 22. Continuous Integration » ... is a software development practice where members of a team integrate their work frequently. Each integration is verified by an automated build (including test) to detect integration errors as quickly as possible. Many teams find that this approach leads to « significantly reduced integration problems and allows a team to develop cohesive software more rapidly. Martin Fowler http://martinfowler.com/articles/continuousIntegration.html
  23. 23. Integrate frequently! Integrate every few hours, at least daily! Hi! I am Mr. Hudson and I will do the integration work for you, and report back!
  24. 24. I will do the following: Run Unit Tests ... on Linux, Windows and Mac Test your coding style Build code documentation (soon)
  25. 25. Workflow 4. Show Results 3. Run tests 2. Start Build 1. Commit Subversion Repository
  26. 26. Integration with forge
  27. 27. Daily Use
  28. 28. For Power Users
  29. 29. Jabber Integration I will do the integration work for you, and report back!
  30. 30. How to use jabber notifications
  31. 31. Your own CI server 1 Download hudson.war
  32. 32. Your own CI server 2 Run hudson.
  33. 33. Your own CI server 3 Check out our build scripts: https://svn.typo3.org/Teams/forge.typo3.org/hudson-helpers/
  34. 34. Your own CI server 4 Use the following „execute shell“ build target: cd /path/to/hudson-helpers phing/phing/phing -f build.xml all -Dpackage=PACKAGE_KEY
  35. 35. Your own CI server 5 Enjoy hudson!
  36. 36. What about Monitor the project status and progress
  37. 37. Productivity
  38. 38. Conventional development Feature A Feature B Test A Test B Implementation Testing Many context switches
  39. 39. TDD Workflow
  40. 40. Increased productivity
  41. 41. Survey about agile methods improved significantly improved Project visibility Team morale Productivity Software quality Reduced risk Time to market 0 25 50 75 100 %
  42. 42. Conclusion
  43. 43. Continuous Integration Test-Driven Development Practices Development for FLOW3 Unit Testing Collaboration: Project Mana- Subversion gement: SCRUM
  44. 44. Test Driven Development rocks!
  45. 45. Test Driven Development makes you happy!
  46. 46. Increase productivity!
  47. 47. Collaborate on forge.typo3.org!
  48. 48. Take our knowledge into your company!
  49. 49. ?????? ??? ??? ?
  50. 50. Thank you for listening!
  51. 51. Photo Sources • BOXES? • NASA • http://www.flickr.com/photos/52005963@N00/245744537/ • http://commons.wikimedia.org/wiki/ Image:TulipStair_QueensHouse_Greenwich.jpg • http://www.flickr.com/photos/55474909@N00/525206678/ • http://flickr.com/photos/castlephotos/490394807/
  52. 52. Thank you for listening!

×