Skip to content

Instantly share code, notes, and snippets.

@tjventurini
Forked from vool/laravel_post_receive hook
Last active November 11, 2018 00:05
Show Gist options
  • Save tjventurini/7bfa0306bb7f78b69355a11d006f127a to your computer and use it in GitHub Desktop.
Save tjventurini/7bfa0306bb7f78b69355a11d006f127a to your computer and use it in GitHub Desktop.
Post receive hook for Laravel website deploy
#!/bin/bash
echo "********************"
echo "Post receive hook: Updating website"
echo "********************"
#set the git repo dir
GIT_REPO_DIR=~/git/<repo>.git
echo "The git repo dir is $GIT_REPO_DIR"
WEBROOT=/var/www/<website>
GIT_WORK_TREE=$WEBROOT git checkout -f
#change directory to the project dir
cd $WEBROOT
rm -f storage/cache/*
echo 'cache cleared'
rm -f storage/views/*
echo 'views cleared'
php artisan migrate --no-interaction --force
# switch to webroot
cd $GIT_REPO_DIR
# geting a 'fatal: ambiguous argument' from this ?
#changedfiles=( `git diff-tree --no-commit-id --name-only HEAD@{1} HEAD` )
changedfiles=( `git diff-tree --no-commit-id --name-only HEAD^ HEAD` )
#switch back
cd $WEBROOT
# check if bower has been updated, if so install
if [[ "${changedfiles[*]}" =~ "bower.json" ]]; then
echo "bower has been updated - installing"
bower install
echo "bower pruning"
bower prune
fi
# check if composer has been updated, if so install
# Check if the composer.lock file is present
if [[ "${changedfiles[*]}" =~ "composer.lock" ]]; then
# Install or update packages specified in the lock file
echo "composer.lock has been updated - do install"
composer install --no-dev
fi
php artisan cache:clear
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment