18
Development workflow with CI, github and vagrant DrupalCamp Berlin, November 2014

Ci. Drupal Camp Berlin 2014

Embed Size (px)

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)

Citation preview

Page 1: Ci. Drupal Camp Berlin 2014

Development workflow with CI, github and vagrant

DrupalCamp Berlin, November 2014

Page 2: Ci. Drupal Camp Berlin 2014

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

Page 3: Ci. Drupal Camp Berlin 2014

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

Page 4: Ci. Drupal Camp Berlin 2014

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

Page 5: Ci. Drupal Camp Berlin 2014

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

Page 6: Ci. Drupal Camp Berlin 2014

Quality● code review● code style checks● automated tests

Page 7: Ci. Drupal Camp Berlin 2014

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

Page 8: Ci. Drupal Camp Berlin 2014

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

Page 9: Ci. Drupal Camp Berlin 2014

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

Page 10: Ci. Drupal Camp Berlin 2014

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

Page 11: Ci. Drupal Camp Berlin 2014

Future• docker• behat

Page 12: Ci. Drupal Camp Berlin 2014

Dev process

Page 13: Ci. Drupal Camp Berlin 2014

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

Page 14: Ci. Drupal Camp Berlin 2014

Prototypes• clickable set of pages• frontend technologies

Page 15: Ci. Drupal Camp Berlin 2014

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

Page 16: Ci. Drupal Camp Berlin 2014

Team

Page 17: Ci. Drupal Camp Berlin 2014

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

Page 18: Ci. Drupal Camp Berlin 2014

Questions?