Scripts bash simples pour déployer une application Symfony

Publié le 08/07/2019 • Mis à jour le 08/07/2019

English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧

Voici les deux scripts bash que j'utilise pour déployer les mises à jour de ce blog. Comme c'est un projet personnel je n'ai pas besoin de quelque chose de compliqué. J'appelle ces deux scripts de mon MakeFile que vous pouvez trouver ici. Le premier permet de faire une mise à jour mineure (ex : correction d'une typo ou ajout d'une fonctionnalité mineure). Le deuxième permet de faire un déploiement complet, les dépendances composer seront installées et les migrations de base de données seront appliquées. Dans les deux cas, j'utilise un simple git pull. Le site est indisponible pendant quelques secondes pendant le déploiement mais ce n'est pas vraiment un problème puisque c'est un projet personnel.
PS : Dé-commentez la ligne the mod_pagespeed si vous ne l'utilisez pas.


#!/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"

  Lire la doc