Hey guys, I'm not sure this is the best place to post this question. If not, please let me know.
We are building a new site based on Drupal 6 and want to use Continuous Integration (CI). We've used CI on other non-Drupal projects, specifically PHP and .NET, and I liked the result. But since Drupal is so database centric, I'm not sure how well it will work for us. For example, let me explain how we've done it in the past, and then maybe someone can relate this to how we'll do it with Drupal.
1. SVN was our repository. We had the typical trunk, tags and branches structure.
2. Cruise Control was used to manage the build process.
3. For unit tests we used PHPUnit and NUnit, depending on the platform.
4. All database schema was stored as scripts in the repos. Sample data was also stored as scripts. This allowed us to create databases for Test, CI, and Development instances on the fly. It also allowed us to easily build migration scripts using the repos.
5. We used selenium for our automated tests, which ran nightly. We also used QuickTest Pro.
6. Code scanners were used to check for common problems, such as sql injection.
7. When a commit is made a new build was created (CI instance). Once complete, all unit tests were run. If problems were found, the team was notified and a bug artifact was created, and assigned.
8. We had 3 instances. One was the CI instance, which was recreated every time a new commit was made to the repos. This instance had minimal data, and was used for unit testing. The second instance was Test, which was only created when a successful build was made. This instance had its own data, and we used it for nightly Selenium testing. The last build was Development, which became our stable build. It had real data, and could be used for evaluation purposes by the client.
So now we are looking at how to mimic some of this with Drupal. We've installed Hudson, and will use SimpleTest. I don't see any reason why we cannot continue to use Selenium. But what about the content changes that are being made that are typically stored in the database? How would we be committing these changes? Can someone explain in practice how CI works with Drupal, and are we very far off from what we've done in the past?
Thanks guys (and gals). Appreciate the help.
Moved by VM
Comments
How did you progress with
How did you progress with this?
I'm looking to do something very similar.
Thanks
Did you make any progress
Did you make any progress about it? I'm trying also to do a continuous integration with Drupal but I can't find anything about how to do it with database.