Saturday, March 13, 2010

Continuous Integration - Drupal way. Part 1 - Begining.

Motivation:
   I'm going  to grow quality of products we get  in company I working in.
   I'm going to make ability to show bugs free product when client what.    (functionality that marked "done" realy 100% done)
   I'm going to make code clear and developement process managing.
   I'm going to make regressive testing cheap.
   I'm going to remove trivial round things from my live.

And you?
Are you going to do the same?
If (Yes) {
  let's share out expiriance
}
else  {
  skip this article
}

CI will help us. I think you know what is CI and what goals it allow to reach. (If no, you can read about CI here).
This is the first article about CI in drupal development practice.
Goal of that articles is to describe architecture of CI system and disscuss it's effectivity.
I'm going to create CI infrastructure that will be easy to use on practice of drupal development.

Here is the plan:
1) Ant build scenario.
2) Hudson configuration.
3) Code quality control - Copy/Paste reduce and Code style.
4) Drupal Simple Test and CI.
5) Selenium and Drupal Simple Test module.
6) Effective build configuration.

More detailed about each of this items.



Tools to use:
  • ANT: I have fast run about build tool and find out that ant is base for many of other tools. I mean Maven and Phing. So I choose Ant. In future you can extend and adapt scirpt, i going to provide, for other ANT compatible build tools.
  • Hudson: This is very human frendly CI and have a lot of plugins to integrate it with other systems.
  • Durpal Simpletest: Drupal provide us api to work with nodes, views, cck and etc. If we would not use special framework to create/update/delete such structures we have to write a lot of additional code to create this objects. So I think there is no other way then to use this cool module.
  • Selenium: Unit tests and Web tests, provided by Simple test module, is good by we work with Web, many broswers, we use htmls, js, css and flash and a lot of other technologies.
We need to test this too. Test user workflow, test how pages looks like on different broswers and diffrent OS. Selenium provide us this ability. Realy i have not check other asuriance testing frameworks. But I think that Selenium is good enought for this.

Tool for code quality control is not choosed yet.

I'm open to your minds.

Thanks.

P.S.: Also is intresting using of Cruise Control and PHP under control plugin.

1 comment:

  1. Really intresting article. Sometimes i thinking about use CI. But...

    ReplyDelete