Your SlideShare is downloading. ×
Continuous Integration at T3CON08
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 at T3CON08

3,204
views

Published on

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

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,204
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
149
Comments
0
Likes
9
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. Continuous Integration Sebastian Kurfürst sebastian@typo3.org
  • 2. Audience Developers Project Managers
  • 3. Continuous Integration Subversion forge.typo3.org Collaboration Platform Wiki Bugtracker
  • 4. Abstract { Version Control Requirements Test-Driven Development { What is CI? Continuous Integration with forge Integration Your own CI Server Conclusion
  • 5. - Requirements - Version Control Subversion Repository Commit Update Update
  • 6. Synchronize Often! Repository 1 2 3 4 Working 1 Copy Split your work into smaller chunks!
  • 7. Short Development Cycles
  • 8. How many of you have ever written a unit test?
  • 9. How many of you write unit tests during your daily work?
  • 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. Test-Driven Development Test Case FAIL Implementation OK Refactoring OK
  • 12. Test-Driven Development - Demonstration -
  • 13. An Academic Example • Write a Mathematical Helpers class, which has a method „square“, which multiplies a number with itself.
  • 14. 1. Write a test case!
  • 15. How to use it • Nicely integrated with forge
  • 16. The test case fails
  • 17. 2. Implement!
  • 18. The test case...
  • 19. Spot design flaws earlier!
  • 20. Unit tests are a Safety net for the future
  • 21. What is CI? Integration with forge Your own CI Server
  • 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. 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. I will do the following: Run Unit Tests ... on Linux, Windows and Mac Test your coding style Build code documentation (soon)
  • 25. Workflow 4. Show Results 3. Run tests 2. Start Build 1. Commit Subversion Repository
  • 26. Integration with forge
  • 27. Daily Use
  • 28. For Power Users
  • 29. Jabber Integration I will do the integration work for you, and report back!
  • 30. How to use jabber notifications
  • 31. Your own CI server 1 Download hudson.war
  • 32. Your own CI server 2 Run hudson.
  • 33. Your own CI server 3 Check out our build scripts: https://svn.typo3.org/Teams/forge.typo3.org/hudson-helpers/
  • 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. Your own CI server 5 Enjoy hudson!
  • 36. What about Monitor the project status and progress
  • 37. Productivity
  • 38. Conventional development Feature A Feature B Test A Test B Implementation Testing Many context switches
  • 39. TDD Workflow
  • 40. Increased productivity
  • 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. Conclusion
  • 43. Continuous Integration Test-Driven Development Practices Development for FLOW3 Unit Testing Collaboration: Project Mana- Subversion gement: SCRUM
  • 44. Test Driven Development rocks!
  • 45. Test Driven Development makes you happy!
  • 46. Increase productivity!
  • 47. Collaborate on forge.typo3.org!
  • 48. Take our knowledge into your company!
  • 49. ?????? ??? ??? ?
  • 50. Thank you for listening!
  • 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. Thank you for listening!