SlideShare a Scribd company logo
1 of 34
Download to read offline
Continuous Integration
                 Tools in Perl
                              Michael Peters
                              Plus Three, LP




YAPC::NA 10
Pittsburgh, PA
What is CI?

●Build and test all the time
●As soon as you can


●As loud as you can


●On as many platforms as you need


●On as many different configurations as you need
What is CI?

●Home grown (bash + email)
●CruiseControl


●Buildbot


●Tinderbox


●CABIE


●Smolder


Hudson, TeamCity, Continuum, Cerberus, ControlTier,
●

OpenMake Mojo, lots of others
Take a drink
CruiseControl

●http://cruisecontrol.sourceforge.net/
●Java based


●Very well known, "industry standard"


●Lots of plugins for lots of things


 ● SCM


 ● Notification


 ● Build management (make, Ant, Maven, rake)


 ● Lots more
CruiseControl

●Web UI
  ● View old builds/tests


  ● See what CruiseControl is doing right now


     ● Is it checking out code?


     ● Is it building?


●Build Loop Daemon


  ● Separate process to do the heavy lifting
CruiseControl
CruiseControl

Limitations and Complaints
 ● Not Perl (Java)


 ● Run loop is on a single machine


    ● They are working on distributed


 ● Format is not a standard


    ● Yes it's XML, but...


    ● Whatever JUnit spits out
CruiseControl

Limitations and Complaints
 ● Not Perl (Java)


 ● Run loop is on a single machine


    ● They are working on distributed


 ● Format is not a standard


    ● Yes it's XML, but...


    ● Whatever JUnit spits out


 ● All Java and all XML
Take a drink
Buildbot

●http://buildbot.net/trac
●Python based


●Designed to be distributed


   ● master/slave architecture


   ● nice for OSS projects and volunteers


●Tracks some metrics over time


   ● warnings


   ● link checks


   ● compile time


   ● etc
Buildbot

●Lots of notification channels
  ● Email


  ● IRC bot (real time insults)


  ● GTk app


●Lots of built-in support for CSMs


  ● CVS, svn, perforce, Bonsai, git, Mercurial,

    Bazaar,
●Web UI


●CLI
Buildbot
Buildbot

Limitations and Complaints
 ● Not Perl (Python)

 ● Sometimes too heavy

 ● Ugggggly

 ● It's complicated

 ● Configuration is all Python

 ● Format is not standard

     ● Whatever your test spits out and returns

 ● Developer's can't customize notifications for

   themselves
 ● No detailed breakdown of test failures
Take a drink
Tinderbox

●http://www.mozilla.org/projects/tinderbox
●Perl based


●Mozilla Project


   ● currently being rewritten


   ● used for Firefox, Thunderbird, etc


   ● Integrates with Bugzilla


   ● Only supports CVS


●Add comments to build runs


●Currently being rewritten


   ● Seems to use Buildbot underneath
Tinderbox
Tinderbox

Limitations and Complaints
 ● No packages, no releases (grab from CVS)

 ● Not much support

    ● from Mozilla

    ● nor the Perl community

 ● Just does CVS

 ● Developers can't customize their notifications

 ● Kind of ugly
Tinderbox

Limitations and Complaints
 ● Format is not standard

     append 3:
     object count 10 = 10 OK
     array count 13 = 13 OK
     0: 3=3 (0x84f9540) c: 4 OK
     1: 0=0 (0x84f9510) c: 1 OK
     2: 1=1 (0x84f9520) c: 1 OK
     3: 2=2 (0x84f9530) c: 1 OK
     4: 3=3 (0x84f9540) c: 4 OK
     5: 4=4 (0x84f9550) c: 1 OK
     6: 3=3 (0x84f9540) c: 4 OK
     7: 5=5 (0x84f9560) c: 1 OK
     8: 6=6 (0x84f9570) c: 1 OK
     9: 7=7 (0x84f9580) c: 1 OK
     10: 8=8 (0x84f9590) c: 1 OK
     11: 9=9 (0x84f95e8) c: 1 OK
     12: 3=3 (0x84f9540) c: 4 OK
Take a drink
CABIE

●http://cabie.tigris.org/
●Perl based


●Web UI and CLI tools


●Job daemon


   ● scheduled build jobs


   ● job priority


   ● job triggers


●Data stored in MySQL


●Email notification
CABIE
CABIE

Limitations and Complaints
 ● No installer

 ● Format is not standard

     ● Whatever text your build/test spit out and

       return
 ● It's ugly too

 ● No community support
Take a drink
Smolder

●http://github.com/mpeters/smolder/tree/master
●Perl based


●Web UI


●Some CLI tools


●CPAN installable


●Public and Private


   ● understands projects


   ● understands developers


●Being used for Parrot VM project
Smolder

●View detailed reports about exactly what failed
  ● Ajax/on-demand


  ● Much easier to find what went wrong


●All reports are submitted TAP Archives


●All data stored in SQLite


●Notification channels


  ● Email


  ● Atom


●Tags


●Trend reporting
Smolder
Smolder
Smolder

Limitations and Complaints
 ● Fair number of dependecies


    ● 44 deps


    ● 132 deps of deps of deps...


 ● HTTP::Server::Simple isn't very reliable


 ● Hard coded notification options (only email and

   Atom)
 ● No plugins for extra features


 ● No integration with other systems
Smolder

Limitations and Complaints
 ● No integrated build system


    ● simple bash script + cron


    ● SmokeRunner::Multi


    ● Module::Build::Smolder


 ● No notifications of build failures
Take a drink
My Dream Date

●Smolder and Buildbot sitting in a tree...
●Separate, but integrated build loop and reporting


●Build status and detailed test reporting


●Optionally distributed for multiple platforms and

parallel builds
●Standard formats


  ● TAP


  ● Something for the build notifications
My Dream Date

Pluggable architecture
●

 ● Notifications (email, twitter, building alarm system)

 ● SCM support

 ● Common build systems (make, Makefile.PL,

    Build.PL, Ant, Maven, rake)
●Expose the TAP metadata for plugins to use
   ● Link to bug reports

   ● Link to source code or specs

   ● visual diffs

●Installable via CPAN

●Packagable for distros
Continuous Integration
                         Tools in Perl
                                      Michael Peters
                                      Plus Three, LP




                           ¿?
       All comics borrowed from
        Toothpaste For Dinner
http://www.toothpastefordinner.com/

More Related Content

What's hot

POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youJacek Gebal
 
Introducing Ghost Inspector
Introducing Ghost InspectorIntroducing Ghost Inspector
Introducing Ghost InspectorNeil Mansilla
 
Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅Max Lai
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engineIlya Puchka
 
Javascript test frameworks
Javascript test frameworksJavascript test frameworks
Javascript test frameworkstalkitbr
 
Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Colin O'Dell
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementOrtus Solutions, Corp
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...Stefan Teixeira
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopWisely chen
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerStefan Teixeira
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the BeastRoberto Cortez
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlCoimbra JUG
 
Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)brian d foy
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automationElias Nogueira
 

What's hot (20)

Ui Testing with Ghost Inspector
Ui Testing with Ghost InspectorUi Testing with Ghost Inspector
Ui Testing with Ghost Inspector
 
Scripting robot
Scripting robotScripting robot
Scripting robot
 
Test driving-qml
Test driving-qmlTest driving-qml
Test driving-qml
 
POUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love youPOUG2019 - Test your PL/SQL - your database will love you
POUG2019 - Test your PL/SQL - your database will love you
 
Introducing Ghost Inspector
Introducing Ghost InspectorIntroducing Ghost Inspector
Introducing Ghost Inspector
 
Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅Java-Jersey 到 Python-Flask 服務不中斷重構之旅
Java-Jersey 到 Python-Flask 服務不中斷重構之旅
 
Testing sync engine
Testing sync engineTesting sync engine
Testing sync engine
 
Automatic codefixes
Automatic codefixesAutomatic codefixes
Automatic codefixes
 
Python in Test automation
Python in Test automationPython in Test automation
Python in Test automation
 
Javascript test frameworks
Javascript test frameworksJavascript test frameworks
Javascript test frameworks
 
Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021Releasing High Quality Packages - Longhorn PHP 2021
Releasing High Quality Packages - Longhorn PHP 2021
 
CommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package ManagementCommandBox & ForgeBox Package Management
CommandBox & ForgeBox Package Management
 
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
6º Encontro do Grupo de Testes Carioca - Testes em um contexto de Continuous ...
 
Automate Thyself
Automate ThyselfAutomate Thyself
Automate Thyself
 
Hadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoopHadoop Summit 2013 : Continuous Integration on top of hadoop
Hadoop Summit 2013 : Continuous Integration on top of hadoop
 
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecerTDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
TDC 2016 SP - 5 libs de teste JavaScript que você deveria conhecer
 
Maven - Taming the Beast
Maven - Taming the BeastMaven - Taming the Beast
Maven - Taming the Beast
 
KYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under ControlKYSUC - Keep Your Schema Under Control
KYSUC - Keep Your Schema Under Control
 
Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)Managing Modules Without Going Crazy (NPW 2007)
Managing Modules Without Going Crazy (NPW 2007)
 
Create an architecture for web test automation
Create an architecture for web test automationCreate an architecture for web test automation
Create an architecture for web test automation
 

Similar to Perl Continous Integration

Instant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetInstant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetPatrick Lee
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at ScaleKris Buytaert
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling MagentoCopious
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with serverEugene Yokota
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...Linaro
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLinaro
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the ContinuistPaul Blundell
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Chris Grundemann
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020OdessaJS Conf
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet systemrkhatibi
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet SystemPuppet
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersLewiz
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplateStanislav Petrov
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp AltantaPuppet
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Lorna Mitchell
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projectsIBACZ
 
Gestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactoryGestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactoryGuatemala User Group
 

Similar to Perl Continous Integration (20)

Instant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and PuppetInstant LAMP Stack with Vagrant and Puppet
Instant LAMP Stack with Vagrant and Puppet
 
Deploying software at Scale
Deploying software at ScaleDeploying software at Scale
Deploying software at Scale
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Scaling Magento
Scaling MagentoScaling Magento
Scaling Magento
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
LCE13: Test and Validation Mini-Summit: Review Current Linaro Engineering Pro...
 
LCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at LinaroLCE13: Test and Validation Summit: The future of testing at Linaro
LCE13: Test and Validation Summit: The future of testing at Linaro
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
'Effective node.js development' by Viktor Turskyi at OdessaJS'2020
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Creating a mature puppet system
Creating a mature puppet systemCreating a mature puppet system
Creating a mature puppet system
 
Creating a Mature Puppet System
Creating a Mature Puppet SystemCreating a Mature Puppet System
Creating a Mature Puppet System
 
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with CobblerCodeFest 2013. Mosesohn M. — Automating environments with Cobbler
CodeFest 2013. Mosesohn M. — Automating environments with Cobbler
 
Making sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developersMaking sense of the front-end, for PHP developers
Making sense of the front-end, for PHP developers
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff  - Mykel Alvis at Puppet Camp AltantaDon't Suck at Building Stuff  - Mykel Alvis at Puppet Camp Altanta
Don't Suck at Building Stuff - Mykel Alvis at Puppet Camp Altanta
 
Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)Passing the Joel Test in the PHP World (phpbnl10)
Passing the Joel Test in the PHP World (phpbnl10)
 
Liferay portals in real projects
Liferay portals  in real projectsLiferay portals  in real projects
Liferay portals in real projects
 
Gestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactoryGestión de infraestructura tomcat/Tom EE con tfactory
Gestión de infraestructura tomcat/Tom EE con tfactory
 

Recently uploaded

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Recently uploaded (20)

Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

Perl Continous Integration

  • 1. Continuous Integration Tools in Perl Michael Peters Plus Three, LP YAPC::NA 10 Pittsburgh, PA
  • 2. What is CI? ●Build and test all the time ●As soon as you can ●As loud as you can ●On as many platforms as you need ●On as many different configurations as you need
  • 3. What is CI? ●Home grown (bash + email) ●CruiseControl ●Buildbot ●Tinderbox ●CABIE ●Smolder Hudson, TeamCity, Continuum, Cerberus, ControlTier, ● OpenMake Mojo, lots of others
  • 5. CruiseControl ●http://cruisecontrol.sourceforge.net/ ●Java based ●Very well known, "industry standard" ●Lots of plugins for lots of things ● SCM ● Notification ● Build management (make, Ant, Maven, rake) ● Lots more
  • 6. CruiseControl ●Web UI ● View old builds/tests ● See what CruiseControl is doing right now ● Is it checking out code? ● Is it building? ●Build Loop Daemon ● Separate process to do the heavy lifting
  • 8. CruiseControl Limitations and Complaints ● Not Perl (Java) ● Run loop is on a single machine ● They are working on distributed ● Format is not a standard ● Yes it's XML, but... ● Whatever JUnit spits out
  • 9. CruiseControl Limitations and Complaints ● Not Perl (Java) ● Run loop is on a single machine ● They are working on distributed ● Format is not a standard ● Yes it's XML, but... ● Whatever JUnit spits out ● All Java and all XML
  • 11. Buildbot ●http://buildbot.net/trac ●Python based ●Designed to be distributed ● master/slave architecture ● nice for OSS projects and volunteers ●Tracks some metrics over time ● warnings ● link checks ● compile time ● etc
  • 12. Buildbot ●Lots of notification channels ● Email ● IRC bot (real time insults) ● GTk app ●Lots of built-in support for CSMs ● CVS, svn, perforce, Bonsai, git, Mercurial, Bazaar, ●Web UI ●CLI
  • 14. Buildbot Limitations and Complaints ● Not Perl (Python) ● Sometimes too heavy ● Ugggggly ● It's complicated ● Configuration is all Python ● Format is not standard ● Whatever your test spits out and returns ● Developer's can't customize notifications for themselves ● No detailed breakdown of test failures
  • 16. Tinderbox ●http://www.mozilla.org/projects/tinderbox ●Perl based ●Mozilla Project ● currently being rewritten ● used for Firefox, Thunderbird, etc ● Integrates with Bugzilla ● Only supports CVS ●Add comments to build runs ●Currently being rewritten ● Seems to use Buildbot underneath
  • 18. Tinderbox Limitations and Complaints ● No packages, no releases (grab from CVS) ● Not much support ● from Mozilla ● nor the Perl community ● Just does CVS ● Developers can't customize their notifications ● Kind of ugly
  • 19. Tinderbox Limitations and Complaints ● Format is not standard append 3: object count 10 = 10 OK array count 13 = 13 OK 0: 3=3 (0x84f9540) c: 4 OK 1: 0=0 (0x84f9510) c: 1 OK 2: 1=1 (0x84f9520) c: 1 OK 3: 2=2 (0x84f9530) c: 1 OK 4: 3=3 (0x84f9540) c: 4 OK 5: 4=4 (0x84f9550) c: 1 OK 6: 3=3 (0x84f9540) c: 4 OK 7: 5=5 (0x84f9560) c: 1 OK 8: 6=6 (0x84f9570) c: 1 OK 9: 7=7 (0x84f9580) c: 1 OK 10: 8=8 (0x84f9590) c: 1 OK 11: 9=9 (0x84f95e8) c: 1 OK 12: 3=3 (0x84f9540) c: 4 OK
  • 21. CABIE ●http://cabie.tigris.org/ ●Perl based ●Web UI and CLI tools ●Job daemon ● scheduled build jobs ● job priority ● job triggers ●Data stored in MySQL ●Email notification
  • 22. CABIE
  • 23. CABIE Limitations and Complaints ● No installer ● Format is not standard ● Whatever text your build/test spit out and return ● It's ugly too ● No community support
  • 25. Smolder ●http://github.com/mpeters/smolder/tree/master ●Perl based ●Web UI ●Some CLI tools ●CPAN installable ●Public and Private ● understands projects ● understands developers ●Being used for Parrot VM project
  • 26. Smolder ●View detailed reports about exactly what failed ● Ajax/on-demand ● Much easier to find what went wrong ●All reports are submitted TAP Archives ●All data stored in SQLite ●Notification channels ● Email ● Atom ●Tags ●Trend reporting
  • 29. Smolder Limitations and Complaints ● Fair number of dependecies ● 44 deps ● 132 deps of deps of deps... ● HTTP::Server::Simple isn't very reliable ● Hard coded notification options (only email and Atom) ● No plugins for extra features ● No integration with other systems
  • 30. Smolder Limitations and Complaints ● No integrated build system ● simple bash script + cron ● SmokeRunner::Multi ● Module::Build::Smolder ● No notifications of build failures
  • 32. My Dream Date ●Smolder and Buildbot sitting in a tree... ●Separate, but integrated build loop and reporting ●Build status and detailed test reporting ●Optionally distributed for multiple platforms and parallel builds ●Standard formats ● TAP ● Something for the build notifications
  • 33. My Dream Date Pluggable architecture ● ● Notifications (email, twitter, building alarm system) ● SCM support ● Common build systems (make, Makefile.PL, Build.PL, Ant, Maven, rake) ●Expose the TAP metadata for plugins to use ● Link to bug reports ● Link to source code or specs ● visual diffs ●Installable via CPAN ●Packagable for distros
  • 34. Continuous Integration Tools in Perl Michael Peters Plus Three, LP ¿? All comics borrowed from Toothpaste For Dinner http://www.toothpastefordinner.com/