Refactored Deployment Script Functions

* Moved Redis clear cache routine to its own function.
* Moved ORM clear cache routine to its own function.
* Set proper execution permissions for artisan command.

Change-Id: Icdb4740621d6f9c7310d1b6bb52ce1db43652882
This commit is contained in:
smarcet 2020-01-27 11:34:19 -03:00
parent 1806356c52
commit 2cd724f1aa
1 changed files with 70 additions and 57 deletions

View File

@ -8,6 +8,32 @@ function print_help {
echo ""
}
function clear_redis_cache {
echo "running redis FLUSHDB ..."
echo "FLUSHDB" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD"
echo "running redis FLUSHALL ..."
echo "FLUSHALL" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD"
}
function clear_orm_cache {
echo "clearing doctrine metadata"
php artisan doctrine:clear:metadata:cache
echo "clearing doctrine query cache"
php artisan doctrine:clear:query:cache
echo "clearing doctrine result cache"
php artisan doctrine:clear:result:cache
echo "generating doctrine proxies"
php artisan doctrine:generate:proxies
}
function clear_laravel_cache {
php artisan route:clear
php artisan route:cache
php artisan config:cache
php artisan view:clear
php artisan view:cache
}
function site_init {
if [ ! $1 ]; then
echo "ERROR: site parameter mandatory"
@ -58,17 +84,17 @@ function site_init {
mv $target_dir/storage $SITE_ROOT/
# check for new storage structure ( LV 5.x)
if [[ ! -d $SITE_ROOT/storage/framework ]]; then
mkdir -p $SITE_ROOT/storage/framework;
mkdir -p $SITE_ROOT/storage/framework/cache;
mkdir -p $SITE_ROOT/storage/framework/views;
mkdir -p $SITE_ROOT/storage/framework/sessions;
mkdir -p $SITE_ROOT/storage/framework
mkdir -p $SITE_ROOT/storage/framework/cache
mkdir -p $SITE_ROOT/storage/framework/views
mkdir -p $SITE_ROOT/storage/framework/sessions
fi
if [[ ! -d $SITE_ROOT/storage/app ]]; then
mkdir -p $SITE_ROOT/storage/app;
mkdir -p $SITE_ROOT/storage/app/public;
mkdir -p $SITE_ROOT/storage/app
mkdir -p $SITE_ROOT/storage/app/public
fi
if [[ ! -d $SITE_ROOT/storage/logs ]]; then
mkdir -p $SITE_ROOT/storage/logs;
mkdir -p $SITE_ROOT/storage/logs
fi
# set permissions
chown -R $FILE_OWNER:$FILE_GROUP $SITE_ROOT/storage
@ -80,42 +106,35 @@ function site_init {
# populate application database
cd $target_dir
chmod 0770 artisan
echo "running redis FLUSHDB ...";
echo "FLUSHDB" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD";
echo "running redis FLUSHALL ...";
echo "FLUSHALL" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD";
# set html purifier cache permission
chmod 0770 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer
clear_redis_cache
clear_orm_cache
clear_laravel_cache
echo "generating doctrine proxies";
php artisan doctrine:generate:proxies;
echo "clearing doctrine metadata";
php artisan doctrine:clear:metadata:cache;
echo "clearing doctrine query cache";
php artisan doctrine:clear:query:cache;
echo "clearing doctrine result cache";
php artisan doctrine:clear:result:cache;
echo "running db migrations";
php artisan doctrine:migrations:migrate --connection=model --force --env=$LARAVEL_ENV;
php artisan doctrine:migrations:migrate --connection=model --force --env=$LARAVEL_ENV
if [[ $USE_DB_SEEDING -eq 1 ]]; then
php artisan db:seed --env=$LARAVEL_ENV --force
fi
echo "regenerating route cache";
php artisan route:clear;
php artisan route:cache;
sudo npm install
sudo npm run build
# activate site
rm -rf $SITE_ROOT/w
ln -s $SITE_ROOT/slot0 $SITE_ROOT/w
echo "Restarting laravel queue worker ...";
php artisan queue:restart;
echo "Restarting laravel queue worker ..."
php artisan queue:restart
echo "supervisorctl reload";
supervisorctl reload;
echo "supervisorctl reload"
supervisorctl reload
}
@ -205,6 +224,7 @@ function site_update {
fi
tar -xzvf $SOURCE_TARBALL -C $target_dir --strip-components 1 --no-same-permissions
fi
chown -R $FILE_OWNER:$FILE_GROUP $target_dir
umask 0022
@ -215,17 +235,17 @@ function site_update {
ln -s $SITE_ROOT/storage $target_dir
# check for new storage structure ( LV 5.x)
if [[ ! -d $SITE_ROOT/storage/framework ]]; then
mkdir -p $SITE_ROOT/storage/framework;
mkdir -p $SITE_ROOT/storage/framework/cache;
mkdir -p $SITE_ROOT/storage/framework/views;
mkdir -p $SITE_ROOT/storage/framework/sessions;
mkdir -p $SITE_ROOT/storage/framework
mkdir -p $SITE_ROOT/storage/framework/cache
mkdir -p $SITE_ROOT/storage/framework/views
mkdir -p $SITE_ROOT/storage/framework/sessions
fi
if [[ ! -d $SITE_ROOT/storage/app ]]; then
mkdir -p $SITE_ROOT/storage/app;
mkdir -p $SITE_ROOT/storage/app/public;
mkdir -p $SITE_ROOT/storage/app
mkdir -p $SITE_ROOT/storage/app/public
fi
if [[ ! -d $SITE_ROOT/storage/logs ]]; then
mkdir -p $SITE_ROOT/storage/logs;
mkdir -p $SITE_ROOT/storage/logs
fi
# set permissions
chown -R $FILE_OWNER:$FILE_GROUP $SITE_ROOT/storage
@ -233,27 +253,20 @@ function site_update {
find $SITE_ROOT/storage/ -type d -exec chmod 0775 {} \;
find $SITE_ROOT/storage/ -type f -exec chmod 0664 {} \;
# populate application database
cd $target_dir
echo "running redis FLUSHDB ...";
echo "FLUSHDB" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD";
echo "running redis FLUSHALL ...";
echo "FLUSHALL" | redis-cli -h 127.0.0.1 -p $REDIS_PORT -a "$REDIS_PASSWORD";
chmod 0770 artisan
echo "generating doctrine proxies";
php artisan doctrine:generate:proxies;
echo "clearing doctrine metadata";
php artisan doctrine:clear:metadata:cache;
echo "clearing doctrine query cache";
php artisan doctrine:clear:query:cache;
echo "clearing doctrine result cache";
php artisan doctrine:clear:result:cache;
echo "running db migrations";
php artisan doctrine:migrations:migrate --connection=model --force --env=$LARAVEL_ENV;
# set html purifier cache permission
chmod 0770 vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer
echo "regenerating route cache";
php artisan route:clear;
php artisan route:cache;
clear_redis_cache
clear_orm_cache
clear_laravel_cache
echo "running db migrations"
php artisan doctrine:migrations:migrate --connection=model --force --env=$LARAVEL_ENV
sudo npm install
sudo npm run build
@ -264,9 +277,9 @@ function site_update {
# to reset op cache
/usr/sbin/service $PHP_SERVICE_NAME restart
echo "Restarting laravel queue worker ...";
php artisan queue:restart;
echo "Restarting laravel queue worker ..."
php artisan queue:restart
echo "supervisorctl reload";
supervisorctl reload;
echo "supervisorctl reload"
supervisorctl reload
}