Сontinuous Integration - step to continuous deployment

Post on 08-May-2015

675 views 2 download

description

continuous Integration

Transcript of Сontinuous Integration - step to continuous deployment

Continuous integration – step to Continuous Deploy

Drupal expert

rodionov.ig@gmail.com

Igor Rodionov

Rodionov Igor

Cooking Drupal

~ 5 years~ 14 projects~ 60 patches

~16 approved

Sponsors

Gold sponsor

Silver sponsor Silver sponsor

Bronze sponsorBronze sponsor

Organization

Drupal based project

Drupal based project

Drupal based project

Why?

Club of anonymous drupalers

Club of anonymous drupalers

Club of anonymous drupalers

Take control over your project!

Continuous integration

• Build• Inspection• Test• Deploy / Artifact

Continuous integration

• Get rid of routine• Regression testing• Fast Feedback• Confidence in the project• Frequent release

Continuous integration

Deploy

Deploy

Code Run

SVNGITCVS MercurialFTPSFTP

Bash ManualBash SSHVCS Hooks CronCapistrano Phingistrano

Inspection

Inspection – Copy - Paste

PHPCPD

pear install phpunit/phpcpd

Inspection - Mess

phplint

icosaedro.it/phplint

Inspection - Mess

PHPMDphpmd.org

______________________________

Code Size Rules

Design Rules

Naming Rules

Unused Code Rules

Inspection – Code Style

Code Sniffer

pear install PHP_CodeSniffer

Drupal Code Sniffer

drupal.org/project/drupalcs

Test

Test

Selenium + Unit testing framework

+ Functional tests

- Unit tests

+ Java Script support

- Access Drupal API

- Atomicity

- Fragile tests

- Multithreading

- Performance

Test

Simpletest/Simpletest clone

+ Functional tests

+ Unit tests

- Java Script support

+ Access Drupal API

+ Atomicity

+ Fragile tests

+ Multithreading

+ Performance

Test

Simpletest/Simpletest clone/Selenium

+ Functional tests

+ Unit tests

+ Java Script support

+ Access Drupal API

+ Atomicity

+ Fragile tests

+ Multithreading

+ Performance

Build

Build

Build

•Contribute•Custom•Forked

Build

•Contribute•Custom•Forked Patches

Build

Drush make

projects[admin_menu][version] = "3.0-rc1"

projects[admin_menu][subdir] = "contrib/dev"

projects[admin_menu][patch][] = "patches/admin_menu_font.patch"

Build

• Drush make

• Corporate repository modules

• Fork core & modules

• Contribe your patches

Build

Do not store

Build

Modules Drush migrate

ObjectsFeatures

Ctoolsdefault hooks

ConfigurationsStrongarm

CtoolsFeatures

ContentUuid

Uuid featuresFeatures

Build - phing

• $ phing make• $ phing install• $ phing update• $ phing test• $ phing inspect• $ phing create• $ phing phpcsetc ...

Summing up

• Control over the project• Reduced the time of release• Reduced the risks• The accumulation of "technical

expertise“• Flexible integration of third-party code• 75% of developers became happy

Thank you for your attention

Questions?

Drupal expert

rodionov.ig@gmail.com

Igor Rodionov

Rodionov Igor

Cooking Drupal

~ 5 years~ 14 projects~ 60 patches

~16 approved

Sponsors

Gold sponsor

Silver sponsor Silver sponsor

Bronze sponsorBronze sponsor

Organization