Deploy with Capistrano

You can deploy any kind of application with Capistrano. For detailed information about Capistrano check capistranorb.com. Don’t forget to Capistrano with a custom script deployment in your projects as it’s not preinstalled on our build servers.

Capistrano with a custom script deployment

To setup a Capistrano deployment on CodeShip, first create a new custom script deployment. From there you can add any commands you need, including installing and calling your Capistrano deployment.

gem install capistrano
bundle exec cap $STAGE deploy

Common Errors

Authentication fails

Usually, Capistrano relies on an SSH connection to copy files and execute remote commands. If connecting to your server fails with an error message like asking for a password, please take a look at our documentation on authenticating via SSH public keys for more information.

Capistrano is not installed by default

If you don’t have Capistrano in your Gemfile you need to install it first. Simply add the following command to a script based deployment which runs before the Capistrano deployment.

gem install capistrano

Deployment fails because of detached checkout

Because CodeShip only fetches the last 50 commits as well as checks out your repository in detached head mode, Capistrano may fail the deployment. If this is the case for your setup, please add the following two commands to your deployment script. They will fetch the full history of the repository and switch to the branch you are currently testing.

git fetch --unshallow || true
git checkout "${CI_BRANCH}"