Created
May 7, 2020 07:11
-
-
Save SpiZeak/f9384560397131e6ff38eaa598eda7ee to your computer and use it in GitHub Desktop.
A bash deploy script for safe Wordpress deployments
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
# | |
# Author: Max Trewhitt - Osolo | |
# Description: A safe deployment routine script | |
# | |
ROOT_FOLDER=example.com | |
THEME=example_theme | |
# Stop script on error signal | |
set -e | |
# Go to web root directory | |
cd /home/forge | |
# Remove old deployment folders | |
if [ -d "${ROOT_FOLDER}_deploy" ]; then | |
rm -R "${ROOT_FOLDER}_deploy" | |
fi | |
# Create separate deployment folder | |
cp -R $ROOT_FOLDER "${ROOT_FOLDER}_deploy" | |
# Go to deployment folder | |
cd "${ROOT_FOLDER}_deploy" | |
# | |
# Initiate build sequence | |
# | |
# Reset workspace and pull latest commit | |
git fetch --all | |
git reset --hard origin/develop | |
git clean -fd | |
# Build vendor assets | |
composer install --no-interaction --prefer-dist --optimize-autoloader | |
# Go to theme folder | |
cd /home/forge/${ROOT_FOLDER}_deploy/web/app/themes/$THEME | |
# Build vendor assets | |
composer install --no-interaction --prefer-dist --optimize-autoloader | |
npm install | |
npm run build:production | |
# Go to web root directory | |
cd /home/forge | |
# Remove backup | |
if [ -d "${ROOT_FOLDER}_backup" ]; then | |
rm -R "${ROOT_FOLDER}_backup" | |
fi | |
# Switch (downtime in microseconds) | |
mv $ROOT_FOLDER "${ROOT_FOLDER}_backup" | |
mv "${ROOT_FOLDER}_deploy" $ROOT_FOLDER | |
# Restart PHP to clear cache | |
( flock -w 10 9 || exit 1 | |
echo 'Restarting FPM...'; sudo -S service php7.4-fpm reload ) 9>/tmp/fpmlock | |
if [ -f artisan ]; then | |
php artisan migrate --force | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment