Continuous integration with drupal

14

Transcript of Continuous integration with drupal

Using Jenkins CI in Drupal projects

Psss… Need some continuous integration?

Who are you man?Hi! My name is Ilia! Nice to meet you! ;)

● 29 yo● Backend developer at Wunderkraut● 5 years experience with PHP, 3 of them with drupal● PHP certified engineer● Fan of extreme sports: snowboarding, skydiving

@elijah_ee, e-development.org

Meet Jenkins!● Jenkins was originally developed as the Hudson project● Hudson as well continuous intergation tool● Hudson's creation started in summer of 2004 at Sun

Microsystems● January 29, 2011 - creation of the Jenkins project● Continuous integration tool written in Java● Allows automated testing, building, deployment...● Best choice for agile projects

WunderFlow: branching

That’s how we manage branches…@see: http://wunderkraut.github.io/WunderFlow/

Continuous integrationContinuous Integration (CI) is a

development practice that requires developers to integrate code into a shared repository (develop branch) several times a day. Each check-in

is then verified by an automated build, allowing teams to detect

problems early.

Continuous delivery➔ Extends continuous integration➔ Deliver frequently➔ Latest changes from develop

branch are merged into master branch and tagged

➔ Changes are delivered to the staging server for QA◆ Tests can’t cover everything◆ Design issues◆ ...

➔ Changes merged to the production branch

Continuous Deployment➔ Perfect project workflow!➔ Merged changes are

automatically delivered to the production server

➔ Can’t be used in every project◆ Depends on project type◆ Client’s requirements◆ Access to production server

might not be granted at all

Usage in agile projects

Jenkins and DrupalGood stack! Works much better if using things like:❖ Features❖ Profiles❖ .make files

Building❖ Phing tasks❖ bash scripts❖ ...

Pros and consWe don’t need that weirdo guy!❖ Saves a lot of time spent on testing and delivering code❖ Once configured will work continuously ❖ Allows a lot of stuff to be done automatically❖ Agile friendly❖ Less bugs in code -> Client happy❖ Next step to be more professional company delivering

better quality to clients!