Scripts bash simples pour déployer une application Symfony
Publié le 08/07/2019 • Actualisé le 11/12/2019
[Maj 11/12/2019] Je n'utilise plus ces deux scripts. Merci d'utiliser une véritable procédure de déploiement automatisée, vous ne le regretterez pas. Vous pouvez trouver ma configuration EasyDeploy dans ce snippet.
Voici les deux scripts bash que j'ai utilisés il y a bien longtemps 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"
Plus sur Stackoverflow Lire la doc Snippet aléatoire