Upload
ygerasimov
View
330
Download
2
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
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?