BDSM Deployment Extension
Switch branches/tags
Nothing to show
Pull request Compare This branch is 24 commits behind sm:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Deploy BDSM Extension

This extension is used to deploy


BDSM Deployment management extension


bdsm deploy [arguments]



Deployment Steps:

  1. update_repository
  2. deploy: a. stage b. configure c. symlink d. replace_current e. cleanup f. record


For each step there are two hooks one that is run before ('before_' prefix) and one that is run after ('after_' prefix).

Each hook is the name of a step listed above prefixed with either before_ or after_. For example around steps a - f there is a 'before_deploy' and an 'after_deploy'

Hooks are only run if the hook file is executable, otherwise the file is considered disabled.

Hooks are looked for and run from two places, shared then repository. First hooks are run from the shared_path/deploy/ directory and then from the shared_path/project_name/config/deploy/ directory.

If you want to execute a task before the code is moved in place but after everything is setup in the staging area, use 'before_replace_current' hook.


If any one of the deployment steps fail, then the deploy should fail as well. If this is not the case please let me know right away and provide a gist of 'bdsm --trace deploy' so that I can inspect where the failure is occurring.


  • git / subversion / mercurial (whichever the application's repository uses).
  • curl
  • rsync