Ci. Drupal Camp Berlin 2014

Post on 02-Jul-2015

333 views 2 download

description

In this presentation we will talk about development workflow that we use for our projects. We will talk about technologies we found extremely useful to support our processes: * vagrant and tools (puphpet.com, adminer, ssh keys, drush based scripts) * github pull requests workflow, master/stage/prod branches * CI server, static code analyzers, automated testing, builds, demo / staging sites * code based development. We will talk about how do we approach multiple problems like demo content, migration, blocks positioning, installation profile, modules names conventions * visual regression tool (compare screenshots of pages) * prototype approach in theming (make drupal to match html instead of theming drupal's output)

Transcript of Ci. Drupal Camp Berlin 2014

Development workflow with CI, github and vagrant

DrupalCamp Berlin, November 2014

About me• Yuriy Gerasimov• Developer & Drupal Architect• @ygerasimov

Problems● different people on the team jumps in & out● quality of the project● master database

People jumps in● fast environment setup is critical● same environment● same tools (adminer, drush aliases, ssh keys)

Vagrant● VirtualBox (other providers avaialble)● text file config● provisioners (puppet, chef, shell)● starting point puphpet.com, phansible.com

Quality● code review● code style checks● automated tests

Code review● comment code on pull request● test build site

Jenkins● code style checks (code sniffer, jshint, css-lint)● run tests● build site● other jobs (clear caches)

Profile● site as installation profile● demo content (partial import, custom code)

Code structure● all code in one repo● branch per environemt

Future• docker• behat

Dev process

Production• peaks• late client testing• sync dev & theme• people planning

Prototypes• clickable set of pages• frontend technologies

Prototypes dev• panels + panelizer• custom panes• view modes

Team

Team• architect (solutions, estimates)• PM (communication, budgets)• developers (implementation)• front end (prototype)• qa (testing)

Questions?