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.

Continuous Integration of Perl


Published on

In this presentation, I discuss the merits of continuous integration (CI), offer a brief survey of various CI frameworks, and show how to incorporate CI into your own Perl projects. For a working example, go to and click "Login As A Guest".

Published in: Technology, Business
  • Be the first to comment

Continuous Integration of Perl

  1. 1. Jeffrey Thalhammer S o f t w a r e S y s t e m s
  2. 2. Continuous Integration of Perl Code San Francisco Perlmongers June 23, 2009
  3. 3. What is Continuous Integration? Code Integrate Commit
  4. 4. During The “Integration” Phase... • Compile & link code • Manage resources • Run tests • Create deliverable Continuous integration means doing these automatically
  5. 5. How it Works • CI server watches your repository (remote or local). • When changes appear in the repository, do stuff like... • Check out the code. • Run some commands. • Report on the results.
  6. 6. Just a glorified union of cron and make
  7. 7. But Without The Suck
  8. 8. Choices, Choices • CruiseControl: ThoughWorks; Java; Free • Buildbot: From Mozilla; Python; Free • Hudson: Open source; Java • TeamCity: From JetBrains; Java; Commercial
  9. 9. Basic Features • Interface to an SCM system • Facility to run commands • Facility to publish artifacts • Reporting and statistics • Notifications and monitoring
  10. 10. Advanced Features • Report test results and track trends • Manage component dependencies • Manage version numbers and tags • Integrate with bug-tracking systems • Delegate tasks and responsibilities • Distributed integration services • Fine-grained access controls • Shiny web interface for configuration
  11. 11. But No Native Support For Perl • They don’t understand Module::Build or ExtUtils::MakeMaker • No support for TAP
  12. 12. Bridging The Gap • Ant script that wraps Module::Build actions • Custom TAP formatter
  13. 13. See It work • Demonstrate projects & builds • Show failed build • Show overview, changes, log. • Show tests (failed, ignored), searching • Show failed-in/fixed-in build. • Show responsibility
  14. 14. See It work • Show build overview, change log, statistics • Show artifacts (coverage, nytprof) • Show timed & dependent builds • Show administration
  15. 15. Lessons Learned • CI is not your mommy • You must manage your CI configuration • Perl is getting left out in the cold
  16. 16. Jeffrey Thalhammer S o f t w a r e S y s t e m s