Are there any special requirements for using your continuous integration scripts?

Yes, but nothing too scary, and we can help you out with the set-up. The main requirement is the file structure in your repository - note, <directories> are denoted like HTML tags to distinguish them from files:

<root>
  .gitignore (see below)
  config.ini (see below)
  <www>
    (Drupal goes here)
    <sites>
      <default>
        settings.php.master
        settings.php.stage
        settings.php.prod
        (One settings.php.BRANCH file per branch being deployed)
        drushrc.php.master (optional)
        drushrc.php.stage (optional)
        drushrc.php.prod (optional)
        (You may add one drushrc.php file per branch too, if you wish)
  <db> (optional)
    somedbdump.sql.bz2 (if you want to seed the database on the first build)

Assuming Git, in your .gitignore file you must ignore settings.* (so no settings.php files get saved in the repository) and */files/* (so no files directories are checked in to VCS).

Note also the drushrc.php files which can be added if you so wish. They take the same format as the settings.php files, drushrc.php.BRANCH. This can be handy for doing useful stuff such as ignoring certain database tables when you execute drush sql-dump and other good things like that. Here are some good examples of usage.

(Note, latest versions of our scripts no longer required the settings.php.BRANCH files, so this may be obsolete. You should have been told by your account manager if these files are required or not for your builds.)

The config.ini file is unique to us and tells Jenkins where you build should be deployed. It also allows you to do things like enable Coder module checks to run automatically, run SimpleTest tests on selected modules, etc. Here is a sample config.ini file, but if you're uncertain about this you can ask us for assistance:

; Deployment (required)
[stage]
myrespository=mystageserver.codeenigma.com
[prod]
myrepository=myapp1.codeenigma.com

; SimpleTest (optional)
test_group_1=1
test_group_2=1 (etc.)

; Coder (optional)
this_module=1
that_module=1 (etc.)