Simple bash scripts to deploy a Symfony application

Published on 2019-07-08 • Modified on 2019-07-08

Here are two simple bash scripts I am using on this blog to deploy this application. This is a side project so I don't need something complicated. I am calling these scripts from my MakeFile you can find here. The first script just do a minor update (eg: you have corrected a typo or added a minor feature). The second one is a full deployment, it will install all the composer dependencies, modify your database schema for a major feature, etc... In both cases, I am using a simple git pull. The website is "down" for some seconds while deploying, but that's not a problem in this case as it's a personal project.
PS: Uncomment the mod_pagespeed line if don't use it.


#!/bin/bash
# bin/prod/update.sh
echo "##########################################################################"
echo "# Update the prod...                                                     #"
echo "##########################################################################"
git checkout public/index_dev.php
git pull
rm -rf var/cache/* var/logs/*
php bin/console cache:warmup
chmod -R 777 var/*
touch /var/cache/mod_pagespeed/cache.flush
rm public/index_dev.php
echo -e " --> DONE\n"


#!/bin/bash
# bin/prod/deploy.sh
echo "##########################################################################"
echo "# Full deploy...                                                         #"
echo "##########################################################################"

git checkout public/index_dev.php
git pull
php composer.phar install --no-interaction --optimize-autoloader
php bin/console cache:clear --no-warmup
php bin/console cache:warmup
php bin/console doctrine:cache:clear-metadata
#php bin/console doctrine:migrations:migrate --no-interaction --env=prod --no-debug
chmod -R 777 var/*
touch /var/cache/mod_pagespeed/cache.flush
rm public/index_dev.php

echo -e " --> DONE\n"

  Read the doc