slideshare quotation-marks triangle book file-text2 file-picture file-music file-play file-video location calendar search wrench cogs stats-dots hammer2 menu download2 question cross enter google-plus facebook instagram twitter medium linkedin drupal GitHub quotes-close

Yes, but nothing too scary, and we can help you out with the setup. 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.

(Note, the 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 your 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.)