Skip to content

For Developers: Deployment Procedures

anaelizabethenriquez edited this page Oct 13, 2023 · 2 revisions

When you're ready to deploy a branch or commit, run use Capistrano.

Check Connection

Capistrano is basically just a big wrapper around ssh. Running a cap script is effectively the same as executing a list of ssh commands from your machine to a server. So we need to ensure that you can ssh into the server with our deploy user:

ssh -p 1855 -l deploy rmdweb1qa.vmhost.psu.edu
exit

Once you've verified that ssh is successful, exit out of the session and return to the root of the rmd repo.

Package Gems

All required gems are stored in vendor/cache. To ensure the cache is up-to-date, run:

bundle package

Commit any added gems to the repo.

Deploy

Choose which server environment:

QA

bundle exec cap qa deploy

Staging

bundle exec cap staging deploy

Production

bundle exec cap production deploy

After entering the command, it will prompt you for which tag/commit/branch you want to deploy. The relevant tag, commit, or branch is pulled down from git by the server, so make sure that the repo is up-to-date with whatever changes you made that you want deployed.

Updating Gem Cache

Deployments may fail if the x86_64 versions of certain gems are not in vendor/cache. If you see errors to the effect that a particular gem was not found, either re-run bundle package or download the platform-specific gem. For example:

gem fetch libv8-node -v '15.14.0.1' --platform x86_64-linux
mv libv8-node-15.14.0.1-x86_64-linux.gem vendor/cache

This downloads libv8-node-15.14.0.1-x86_64-linux.gem and moves it into the cache. Commit, push, and then re-run cap deploy.

Clone this wiki locally