Continuous Integration of Perl

2,098 views
2,000 views

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 http://perlcritic.com:8111 and click "Login As A Guest".

Published in: Technology, Business
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,098
On SlideShare
0
From Embeds
0
Number of Embeds
17
Actions
Shares
0
Downloads
34
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • Continuous Integration of Perl

    1. 1. Jeffrey Thalhammer S o f t w a r e S y s t e m s jeff@imaginative-software.com
    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 jeff@imaginative-software.com

    ×