SlideShare a Scribd company logo
1 of 36
Drupal @ SF State 2011
                Continuous Integration
Emanuele Quinto and Supakit Kiatrungrit (Nat)
                  Identity Management/Portal
Continuous Integration

       Definition


       Tools & Technologies

      •   Phing
      •   Drush
      •   Apache Ant
      •   QuickBuild

       Quickbuild + Drupal @ SF State

      • Portal (internal site) / Web Content (public sites)
      • Testing
      • Deploying


2
What is Continous Integration?

    Wikipedia

    • Implements continuous processes of applying quality
      control — small pieces of effort, applied frequently.
      Continuous integration aims to improve the quality
      of software, and to reduce the time taken to deliver
      it, by replacing the traditional practice of applying
      quality control after completing all development.

    Practically

    • Members of a team integrate their work frequently.
    • Integration is verified by an automated build
      (including test) to detect integration errors as quickly
      as possible.
3
Drush


    drush is a command line shell scripting interface for
    Drupal, a veritable Swiss Army knife designed to
    perform Drupal tasks from the command line on your
    web server.

     What can DRUSH do for you?

     • admin tasks quicker than via the web interface;
     • scriptability of common tasks;
     • keeping up to date.

4
Drush commands

    $ drush help <command>


    $ drush dl <package>
    $ drush en <package>
                             • Works for modules
    $ drush dis <package>
                               and themes!


    $ drush sql-conf
    $ drush sqlc             • DB integration
    $ drush sql-dump


    $ drush cc


5
Drush example
                                  $ ssh server1
     $ ssh server1
                                       $ cd
                        /var/www/d7site/sites/all/modules


          $ cd                   GOTO drupal.org
    /var/www/d7site
                                     $ curl
                       http://ftp.drupal.org/files/projec
                           ts/views-7.x-3.0-rc1.tar.gz

    $ drush dl views
                       $ tar –xzf views-7.x-3.0-rc1.tar.gz


                            GOTO /admin/build/modules

    $ drush en views
                                 enable and save

6
Phing

    PHing Is Not GNU make

    • PHP project build system/tool based on Apache Ant.

    Features

    •   “GNU make” functionalities;
    •   XML build files;
    •   PHP "task" classes;
    •   SimpleTest unit tests;
    •   Shell/Drush scripts
    •   file system operations;
    •   MySQL execution;
    •   SVN operations
7
Phing example (1)

    <copy todir=“build”>
      <fileset defaultexcludes="false"
               expandsymboliclinks="true"
                                            • File System Task
               dir=".">
        <include name="**/*.php" />
      </fileset>
    </copy>



<simpletest todir="results">
   <formatter type="plain"/>
        <fileset dir="tests">
         <include name="**/*Test*.php"/>
                                            • Simple Test Task
      <exclude name="**/Abstract*.php"/>
     </fileset>
</simpletest>


8
Phing example (2)

    <if>
       <equals arg1="${foo}" arg2="bar" />
          <then>
            <echo message="The value of      • Conditional Task
    property foo is bar" />
          </then>
          <else>
            <echo message="The value of
    property foo is not bar" />
          </else>
    </if>




<exec command="ls -l"
         dir="/home"                         • Execution Task
         checkreturn="true"/>


9
Apache Ant

     Apache Ant "Another Neat Tool”

     • Java-based build tool: Java library and
       command-line;

     Features

     •   main usage is the build of Java applications;
     •   used effectively to build non Java applications;
     •   Java Class like extensions;
     •   build files in XML;
     •   Standardized and Platform Independent;
10
Apache Ant example

 <jmeter jmeterhome="${jmeter.path}”
            resultlog=“${jmeter.report.dir}
                       /JMeterResults.jtl”
            failureProperty="jmeter.failed">   • JMeter Test Task
    <testplans dir="source"
 includes=”app.jmx" />
     </jmeter>




11
Ant / Phing / Quickbuild




                    Phing


              Ant

                       JMeter




12
QUICKBUILD


13
QuickBuild

     QuickBuild

     • Object Oriented Based Continuous Integration

     Features

     • Supported SCM systems: Subversion, CVS,
       Perforce, ClearCase, StarTeam, Visual
       SourceSafe, Accurev, Git, Mercurial, Bazaar,
       Team
     • Supports Issue Traker systems: JIRA, Trac,
       Bugzilla, CollabNet TeamForge, and Redmine.
     • Advanced Build Grid
14
QuickBuild

     Features

     • Native support for mainstream code
       inspection and coverage tools, including
       checkstyle, findbugs, emma, pmd, and
       cobertura.
     • Extensible via Plugins and RESTful API
     • Proof Build
     • Support to notify through: RSS, Email,
       MSN Messenger, Google Talk, Jabber,
       and the cross-platform tray monitor.
     • Customizable User Dashboards
15
QuickBuild Dashboard




                                     Build
                                   summary




                                Build
                            configurations


16
QB Testing (1)




                      Next Muni
                       portlet
                        build




17
QB Testing (Next Muni Portlet)




18
QB Testing (2)

                       Test
                      history




19
QB Testing (3)




                      Failed
                       test     Test
                               details




20
QB Testing (4)




21
PORTAL DEPLOYMENT


22
Drupal Servers (Portal)




23
Development Cycle
     Local machine        Branching from SVN
                          Develop code
                          Run unit tests
                          Check into SVN                      Manual on
                                                                request
        Dev      Additional development
                 Interface testing
                 Merge back to trunk
                                                                      Manual on
                                                                       request
              Test  Verify automated tests           Management approval
                     User acceptance testing         Tags from SVN
                     Content is added directly here
                                                                           5am
                  Staging      Automated tests run
                               If any tests fail, there is no push
                                to production
                                                                                  Manual
                       Production       Automated tests
                                        If any tests fail, system is rolled back to
                                         previous build

24
Deployment (1)




                        Portal
                      deployment



25
Automated
                      Deployment
     Deployment (2)     Project




                                   Step 1




                                   Step 2




                                   Step 3


26
Deployment (3)

                      Step 1.3

                                 Step 1.3.1

                                    …




27
WEB CONTENT DEPLOYMENT


28
Drupal Servers (Web Content)




29
Acquia




                Server
              management




30
Acquia dashboard

                          code


                           file




                        databases



31
Acquia + QuickBuild (1)


                               Development
                                 process




32
Acquia + QuickBuild (2)




          SVN                              Drupal
                   filesystem   database
       branching                            DEV

33
Acquia + QuickBuild (3)




       Drupal     GIT
                           filesystem   database
        DEV      merging

34
Q&A

     THANK YOU
35
About us




                                 Supakit Kiatrungrit (Nat)
                                                supakitk@sfsu.edu
           http://www.linkedin.com/pub/supakit-kiatrungrit/6/174/888


                                           Emanuele Quinto
                                                 equinto@sfsu.edu
                         http://www.linkedin.com/in/emanuelequinto
                                                           @emaV

36

More Related Content

What's hot

Hudson at FISL 2009
Hudson at FISL 2009Hudson at FISL 2009
Hudson at FISL 2009Arun Gupta
 
Java build tools
Java build toolsJava build tools
Java build toolsSujit Kumar
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup PuneUmesh Kumhar
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonVladLica
 
413450-rc218-cdw-jenkins-workflow
413450-rc218-cdw-jenkins-workflow413450-rc218-cdw-jenkins-workflow
413450-rc218-cdw-jenkins-workflowAndy Pemberton
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementJames Turnbull
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Introboyw165
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Edureka!
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by ExampleHsi-Kai Wang
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDocker, Inc.
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSBamdad Dashtban
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudsonShreeniwas Iyer
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVNPHPBelgium
 

What's hot (20)

Hudson at FISL 2009
Hudson at FISL 2009Hudson at FISL 2009
Hudson at FISL 2009
 
Alm 4 Azure
Alm 4 AzureAlm 4 Azure
Alm 4 Azure
 
Maven basics
Maven basicsMaven basics
Maven basics
 
Java build tools
Java build toolsJava build tools
Java build tools
 
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Application Lifecycl...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Application Lifecycl...Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Application Lifecycl...
Deep Dive Modern Apps Lifecycle with Visual Studio 2012: Application Lifecycl...
 
Jenkins Meetup Pune
Jenkins Meetup PuneJenkins Meetup Pune
Jenkins Meetup Pune
 
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/HudsonEclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
Eclipse DemoCamp Bucharest 2014 - Continuous Integration Jenkins/Hudson
 
413450-rc218-cdw-jenkins-workflow
413450-rc218-cdw-jenkins-workflow413450-rc218-cdw-jenkins-workflow
413450-rc218-cdw-jenkins-workflow
 
Using Puppet - Real World Configuration Management
Using Puppet - Real World Configuration ManagementUsing Puppet - Real World Configuration Management
Using Puppet - Real World Configuration Management
 
Note - Apache Maven Intro
Note - Apache Maven IntroNote - Apache Maven Intro
Note - Apache Maven Intro
 
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
Jenkins Pipeline Tutorial | Continuous Delivery Pipeline Using Jenkins | DevO...
 
Maven nutshell
Maven nutshellMaven nutshell
Maven nutshell
 
Learning Maven by Example
Learning Maven by ExampleLearning Maven by Example
Learning Maven by Example
 
DCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best PracticesDCSF19 Dockerfile Best Practices
DCSF19 Dockerfile Best Practices
 
sed.pdf
sed.pdfsed.pdf
sed.pdf
 
Development Tools - Maven
Development Tools - MavenDevelopment Tools - Maven
Development Tools - Maven
 
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWSAutomated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
Automated Deployment Pipeline using Jenkins, Puppet, Mcollective and AWS
 
Let me introduce you: DOTS
Let me introduce you: DOTSLet me introduce you: DOTS
Let me introduce you: DOTS
 
2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson2013 10-28 php ug presentation - ci using phing and hudson
2013 10-28 php ug presentation - ci using phing and hudson
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 

Viewers also liked

Fieldwork presentation
Fieldwork presentationFieldwork presentation
Fieldwork presentationRafique Qien
 
Don't judge life by one season
Don't judge life by one seasonDon't judge life by one season
Don't judge life by one seasonZakaria Jusoh
 
Video tour sevilla
Video tour sevillaVideo tour sevilla
Video tour sevillathesin
 
Drupal csu-open atriumname
Drupal csu-open atriumnameDrupal csu-open atriumname
Drupal csu-open atriumnameEmanuele Quinto
 
Internet research chinese
Internet research chineseInternet research chinese
Internet research chinesepoeticmizz
 
Rainforest guatemala for Glastonbury teaser
Rainforest guatemala for Glastonbury teaserRainforest guatemala for Glastonbury teaser
Rainforest guatemala for Glastonbury teasermiguelba13
 
про питание
про питаниепро питание
про питаниеSergey Esenin
 
Behind the Blackboard-e-learning resources
Behind the Blackboard-e-learning resourcesBehind the Blackboard-e-learning resources
Behind the Blackboard-e-learning resourceseliggett01
 
Inbound Marketing for the Design + Construction Industry
Inbound Marketing for the Design + Construction IndustryInbound Marketing for the Design + Construction Industry
Inbound Marketing for the Design + Construction IndustryColosi Marketing
 
Progression Insight & Analysis: Kitesurfing Participation Survey 2009
Progression Insight & Analysis: Kitesurfing Participation Survey 2009Progression Insight & Analysis: Kitesurfing Participation Survey 2009
Progression Insight & Analysis: Kitesurfing Participation Survey 2009Fiona Claisse
 
Presentation 4 Linkend
Presentation 4 LinkendPresentation 4 Linkend
Presentation 4 Linkendjulieguiney
 
TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07TIC MAGAZINE
 
Comment pourrai-je trouver un emploi via les réseaux sociaux ?
Comment pourrai-je trouver un  emploi via les réseaux sociaux ?Comment pourrai-je trouver un  emploi via les réseaux sociaux ?
Comment pourrai-je trouver un emploi via les réseaux sociaux ?Nouha Belaid
 
openGAS - 2011 09 22 - Verona
openGAS - 2011 09 22 - VeronaopenGAS - 2011 09 22 - Verona
openGAS - 2011 09 22 - VeronaEmanuele Quinto
 

Viewers also liked (18)

Fieldwork presentation
Fieldwork presentationFieldwork presentation
Fieldwork presentation
 
Don't judge life by one season
Don't judge life by one seasonDon't judge life by one season
Don't judge life by one season
 
Video tour sevilla
Video tour sevillaVideo tour sevilla
Video tour sevilla
 
Drupal csu-open atriumname
Drupal csu-open atriumnameDrupal csu-open atriumname
Drupal csu-open atriumname
 
Internet research chinese
Internet research chineseInternet research chinese
Internet research chinese
 
Rainforest guatemala for Glastonbury teaser
Rainforest guatemala for Glastonbury teaserRainforest guatemala for Glastonbury teaser
Rainforest guatemala for Glastonbury teaser
 
Ppt
PptPpt
Ppt
 
Vermont
VermontVermont
Vermont
 
про питание
про питаниепро питание
про питание
 
Behind the Blackboard-e-learning resources
Behind the Blackboard-e-learning resourcesBehind the Blackboard-e-learning resources
Behind the Blackboard-e-learning resources
 
Hopefuls 032411
Hopefuls 032411Hopefuls 032411
Hopefuls 032411
 
Inbound Marketing for the Design + Construction Industry
Inbound Marketing for the Design + Construction IndustryInbound Marketing for the Design + Construction Industry
Inbound Marketing for the Design + Construction Industry
 
Presentacion prueba
Presentacion pruebaPresentacion prueba
Presentacion prueba
 
Progression Insight & Analysis: Kitesurfing Participation Survey 2009
Progression Insight & Analysis: Kitesurfing Participation Survey 2009Progression Insight & Analysis: Kitesurfing Participation Survey 2009
Progression Insight & Analysis: Kitesurfing Participation Survey 2009
 
Presentation 4 Linkend
Presentation 4 LinkendPresentation 4 Linkend
Presentation 4 Linkend
 
TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07TIC MAGAZINE Edition N°07
TIC MAGAZINE Edition N°07
 
Comment pourrai-je trouver un emploi via les réseaux sociaux ?
Comment pourrai-je trouver un  emploi via les réseaux sociaux ?Comment pourrai-je trouver un  emploi via les réseaux sociaux ?
Comment pourrai-je trouver un emploi via les réseaux sociaux ?
 
openGAS - 2011 09 22 - Verona
openGAS - 2011 09 22 - VeronaopenGAS - 2011 09 22 - Verona
openGAS - 2011 09 22 - Verona
 

Similar to Drupal & Continous Integration - SF State Study Case

Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayLeonard Fingerman
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevillePromet Source
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Releaseelliando dias
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery AppliedExcella
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Mike McGarr
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Mike McGarr
 
Jenkins CI for MacDevOps
Jenkins CI for MacDevOpsJenkins CI for MacDevOps
Jenkins CI for MacDevOpsTimothy Sutton
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016Patrick Chanezon
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionPatrick Chanezon
 
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...DevOps4Networks
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery OverviewWill Iverson
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Mike McGarr
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIwajrcs
 
Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Sriram Narayanan
 

Similar to Drupal & Continous Integration - SF State Study Case (20)

Agile Software Development & Tools
Agile Software Development & ToolsAgile Software Development & Tools
Agile Software Development & Tools
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 
Automated testing DrupalCamp in Asheville
Automated testing DrupalCamp in AshevilleAutomated testing DrupalCamp in Asheville
Automated testing DrupalCamp in Asheville
 
Apache Continuum Build, Test, and Release
Apache Continuum Build, Test, and ReleaseApache Continuum Build, Test, and Release
Apache Continuum Build, Test, and Release
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied
Continuous Delivery AppliedContinuous Delivery Applied
Continuous Delivery Applied
 
Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)Continuous Delivery Applied (Agile Richmond)
Continuous Delivery Applied (Agile Richmond)
 
Continuous testing
Continuous testingContinuous testing
Continuous testing
 
Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)Continuous Delivery Applied (AgileDC)
Continuous Delivery Applied (AgileDC)
 
Jenkins CI for MacDevOps
Jenkins CI for MacDevOpsJenkins CI for MacDevOps
Jenkins CI for MacDevOps
 
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir DžaferovićJavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
JavaCro'14 - Continuous deployment tool – Aleksandar Dostić and Emir Džaferović
 
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016What's new in Docker - InfraKit - Docker Meetup Berlin 2016
What's new in Docker - InfraKit - Docker Meetup Berlin 2016
 
Oscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to ProductionOscon London 2016 - Docker from Development to Production
Oscon London 2016 - Docker from Development to Production
 
DevOps tools for winning agility
DevOps tools for winning agilityDevOps tools for winning agility
DevOps tools for winning agility
 
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
Test-Driven-Development for Networking: Making CI Work for You by Colin McNam...
 
Continuous Delivery Overview
Continuous Delivery OverviewContinuous Delivery Overview
Continuous Delivery Overview
 
Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)Continuous delivery applied (RJUG)
Continuous delivery applied (RJUG)
 
Continuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CIContinuous Delivery - Automate & Build Better Software with Travis CI
Continuous Delivery - Automate & Build Better Software with Travis CI
 
Selenium Camp 2012
Selenium Camp 2012Selenium Camp 2012
Selenium Camp 2012
 
Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0Continuous integration for open source distros v 3.0
Continuous integration for open source distros v 3.0
 

Recently uploaded

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Recently uploaded (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
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
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

Drupal & Continous Integration - SF State Study Case

  • 1. Drupal @ SF State 2011 Continuous Integration Emanuele Quinto and Supakit Kiatrungrit (Nat) Identity Management/Portal
  • 2. Continuous Integration Definition Tools & Technologies • Phing • Drush • Apache Ant • QuickBuild Quickbuild + Drupal @ SF State • Portal (internal site) / Web Content (public sites) • Testing • Deploying 2
  • 3. What is Continous Integration? Wikipedia • Implements continuous processes of applying quality control — small pieces of effort, applied frequently. Continuous integration aims to improve the quality of software, and to reduce the time taken to deliver it, by replacing the traditional practice of applying quality control after completing all development. Practically • Members of a team integrate their work frequently. • Integration is verified by an automated build (including test) to detect integration errors as quickly as possible. 3
  • 4. Drush drush is a command line shell scripting interface for Drupal, a veritable Swiss Army knife designed to perform Drupal tasks from the command line on your web server. What can DRUSH do for you? • admin tasks quicker than via the web interface; • scriptability of common tasks; • keeping up to date. 4
  • 5. Drush commands $ drush help <command> $ drush dl <package> $ drush en <package> • Works for modules $ drush dis <package> and themes! $ drush sql-conf $ drush sqlc • DB integration $ drush sql-dump $ drush cc 5
  • 6. Drush example $ ssh server1 $ ssh server1 $ cd /var/www/d7site/sites/all/modules $ cd GOTO drupal.org /var/www/d7site $ curl http://ftp.drupal.org/files/projec ts/views-7.x-3.0-rc1.tar.gz $ drush dl views $ tar –xzf views-7.x-3.0-rc1.tar.gz GOTO /admin/build/modules $ drush en views enable and save 6
  • 7. Phing PHing Is Not GNU make • PHP project build system/tool based on Apache Ant. Features • “GNU make” functionalities; • XML build files; • PHP "task" classes; • SimpleTest unit tests; • Shell/Drush scripts • file system operations; • MySQL execution; • SVN operations 7
  • 8. Phing example (1) <copy todir=“build”> <fileset defaultexcludes="false" expandsymboliclinks="true" • File System Task dir="."> <include name="**/*.php" /> </fileset> </copy> <simpletest todir="results"> <formatter type="plain"/> <fileset dir="tests"> <include name="**/*Test*.php"/> • Simple Test Task <exclude name="**/Abstract*.php"/> </fileset> </simpletest> 8
  • 9. Phing example (2) <if> <equals arg1="${foo}" arg2="bar" /> <then> <echo message="The value of • Conditional Task property foo is bar" /> </then> <else> <echo message="The value of property foo is not bar" /> </else> </if> <exec command="ls -l" dir="/home" • Execution Task checkreturn="true"/> 9
  • 10. Apache Ant Apache Ant "Another Neat Tool” • Java-based build tool: Java library and command-line; Features • main usage is the build of Java applications; • used effectively to build non Java applications; • Java Class like extensions; • build files in XML; • Standardized and Platform Independent; 10
  • 11. Apache Ant example <jmeter jmeterhome="${jmeter.path}” resultlog=“${jmeter.report.dir} /JMeterResults.jtl” failureProperty="jmeter.failed"> • JMeter Test Task <testplans dir="source" includes=”app.jmx" /> </jmeter> 11
  • 12. Ant / Phing / Quickbuild Phing Ant JMeter 12
  • 14. QuickBuild QuickBuild • Object Oriented Based Continuous Integration Features • Supported SCM systems: Subversion, CVS, Perforce, ClearCase, StarTeam, Visual SourceSafe, Accurev, Git, Mercurial, Bazaar, Team • Supports Issue Traker systems: JIRA, Trac, Bugzilla, CollabNet TeamForge, and Redmine. • Advanced Build Grid 14
  • 15. QuickBuild Features • Native support for mainstream code inspection and coverage tools, including checkstyle, findbugs, emma, pmd, and cobertura. • Extensible via Plugins and RESTful API • Proof Build • Support to notify through: RSS, Email, MSN Messenger, Google Talk, Jabber, and the cross-platform tray monitor. • Customizable User Dashboards 15
  • 16. QuickBuild Dashboard Build summary Build configurations 16
  • 17. QB Testing (1) Next Muni portlet build 17
  • 18. QB Testing (Next Muni Portlet) 18
  • 19. QB Testing (2) Test history 19
  • 20. QB Testing (3) Failed test Test details 20
  • 24. Development Cycle Local machine  Branching from SVN  Develop code  Run unit tests  Check into SVN Manual on request Dev  Additional development  Interface testing  Merge back to trunk Manual on request Test  Verify automated tests  Management approval  User acceptance testing  Tags from SVN  Content is added directly here 5am Staging  Automated tests run  If any tests fail, there is no push to production Manual Production  Automated tests  If any tests fail, system is rolled back to previous build 24
  • 25. Deployment (1) Portal deployment 25
  • 26. Automated Deployment Deployment (2) Project Step 1 Step 2 Step 3 26
  • 27. Deployment (3) Step 1.3 Step 1.3.1 … 27
  • 29. Drupal Servers (Web Content) 29
  • 30. Acquia Server management 30
  • 31. Acquia dashboard code file databases 31
  • 32. Acquia + QuickBuild (1) Development process 32
  • 33. Acquia + QuickBuild (2) SVN Drupal filesystem database branching DEV 33
  • 34. Acquia + QuickBuild (3) Drupal GIT filesystem database DEV merging 34
  • 35. Q&A THANK YOU 35
  • 36. About us Supakit Kiatrungrit (Nat) supakitk@sfsu.edu http://www.linkedin.com/pub/supakit-kiatrungrit/6/174/888 Emanuele Quinto equinto@sfsu.edu http://www.linkedin.com/in/emanuelequinto @emaV 36

Editor's Notes

  1. Blue line: time to build the configurationOrange line: percentage of successful building