I found a really nice way of packaging up drush as a debian package without having to go through all the hassle of creating all the files for a “true” debian package.

You’ll need the following:

  • Git
  • Composer
  • FPM gem

You can then run the following commands to setup your base environment for packaging:

git clone git@github.com:drush-ops/drush.git
cd drush
composer install
sudo gem install fpm

To test to make sure your latest master copy of drush is working quickly run either drush or drush —version

Now you are ready to package the contents up:

fpm -s dir -t deb -n drush -v master ./drush=/usr/bin

What this does is tell fpm you want to create a deb file from a directory with a version name of master (corresponding to the branch we checked out in git), it also configures the output directory.

Once that’s run you should see the newly created package appear. To verify it’s contents run dkpg -c drush_master_amd64.deb

Throw in a parameterised job in jenkins and you have a nice way of creating version specific debian packages for deployment.