Created
April 15, 2014 13:10
-
-
Save fcarrega/9e93ae62a5db6c120e87 to your computer and use it in GitHub Desktop.
Heroku deployment script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Release script | |
# Launch script | |
clear | |
echo -n "Releasing application. Please run this script outside of virtual machine. Continue ? y/n : " | |
read ok | |
if [ "$ok" = "y" ] || [ "$ok" = "Y" ]; then | |
# Input local source branch | |
echo -n "Enter local source branch to be released : " | |
read local_branch | |
# Input GitHub remote repositoty | |
echo -n "Enter remote GitHub repository name : " | |
read github_repository | |
# Select Heroku application | |
echo -n "Enter remote Heroku repository : " | |
read heroku_repository | |
# Select Heroku application | |
echo -n "Enter Heroku application name : " | |
read application | |
# Select environment type | |
echo -n "Select environment type (staging / production) : " | |
read environment | |
# Release application | |
echo "Releasing application on "$environment" environment..." | |
pwd | |
# Push selected branch on GitHub | |
echo "Pushing "$local_branch" on GitHub "$github_repository" repository..." | |
git push $github_repository $local_branch | |
# Enable maintenance mode on Heroku application | |
echo "Enabling maintenance mode on "$application" application ("$environment" environment)..." | |
heroku maintenance:on --app $application | |
# Code release | |
echo "Deploying "$local_branch" on Heroku "$application" ("$heroku_repository" remote repository / "$environment" environment)..." | |
git push $heroku_repository $local_branch:master | |
# Migrate remote database | |
echo "Migrating remote database..." | |
heroku run rake db:migrate --app $application | |
# Clean cache | |
echo "Cleaning server cache..." | |
heroku run --app $application rails runner -e production Rails.cache.clear | |
# Restart application | |
echo "Restart server on "$environment" environment ("$application" application)..." | |
heroku restart --app $application | |
# Disable maintenance mode | |
echo "Disabling maintenance mode on "$environment" environment ("$application" application)..." | |
heroku maintenance:off --app $application | |
# Exit message | |
echo "Application "$application" released on "$environment" environment !" | |
else | |
echo "OK, goodbye !" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment