Deploy to DigitalOcean

2 minute read

This article is about deploying to DigitalOcean with CloudBees CodeShip Basic.

If you’d like to learn more about CloudBees CodeShip Basic, we recommend the getting started guide or the features overview page

You should also be aware of how deployment pipelines work on CloudBees CodeShip Basic.

Getting started with DigitalOcean

DigitalOcean offers virtual servers (called Droplets). If you have not yet set up a Droplet, check out DigitalOcean’s tutorial.

While not necessary, selecting the Ubuntu 14.04 image for your Droplet will provide even greater parity between your production and CI/CD environment.

For the ssh key section, include/authorize your CodeShip project’s ssh key with your Droplet.

With the exception of the Capistrano tool, all the following options would need to be configured as custom scripts in your deployment pipeline.

Option One: Instructing the Droplet to pull changes directly from Github/Bitbucket/Gitlab

Capistrano

If you have a Ruby on Rails application the most common way to deploy to DigitalOcean is with Capistrano. Check out our article on Capistrano Deployments in CodeShip for general guidance on how to run Capistrano commands from CodeShip. Please also take a look at DigitalOcean’s example project for setting up Capistrano within a Droplet.

bundle exec cap production deploy

SSH

You can also provide explicit commands on the Droplet shell via ssh.

ssh codeship_user@your.droplet.com \ 'cd ~/src/repo ; systemctl stop node-sample ; git pull ; systemctl restart node-sample'

Option Two: Copy files directly from CodeShip build to Droplet

Files can be copied directly over from your CodeShip deployment build to your Droplet via ftp, sftp, scp or rsync. Your custom deployment commands would be included in your deployment pipeline as a custom script.

SCP

scp -rp ~/clone/* codeship_user@your.droplet.com:/path/on/droplet/

Rsync

rsync -avz ~/clone/ codeship_user@your.droplet.com:/path/on/droplet/