Create a Deploy Script
Published: Jan 12th, 2020
This is part of Joyful Rails, a list of recommendations to make developing your Rails app more productive and joyful.
In this article, we are talking about creating a deploy script.
As soon as you have a production environment you should create a deploy script.
Having a single command to deploy makes it easy to deploy often and ensures that you don’t forget or miss any of the deploy steps.
A deploy script should:
- Run all automated tests
- Make sure the code being tested is the code actually being deployed
- Deploy the updated code
- Run migrations if necessary
Put the following code in the file
#!/bin/bash set -e heroku whoami > /dev/null || (echo "Not logged into heroku. Run \`heroku login\`."; exit 1) test -z "$(git status --porcelain)" || (echo "Git repo not clean"; exit 1) rake git push origin git push https://git.heroku.com/heroku_app_name.git develop:main heroku run rake db:migrate --app heroku_app_name
heroku_app_name with the name of your Heroku application.
develop with name of the branch you want to deploy from.
Don’t forget to make your deploy script executable.
chmod +x bin/deploy
Now your entire deploy process can be run with a single command:
Deploy scripts should be specific to the team using them and the environment they are deploying to. If your deployment process is different, then your deploy script will need to be different.
The point is to automate as much as possible to ensure that that you can deploy quickly, easily, and correctly.