QA environments
Deployment hooks
Back up current release
bash
set -e
cd {{ project }}/current
php artisan backup:run --isolated
Clone New Release
Install Composer Dependencies
Symlink directories
bash
set -e
cd {{ release }}
php artisan storage:link
Prepare Sentry release
bash
set -e
cd {{ release }}
# Write git hash to file for Sentry
# BEFORE we cache our configuration
echo "{{ sha }}" > {{ release }}/.commit_hash
Install front-end packages
bash
set -e
cd {{ release }}
# Verify the used versions
node --version
npm --version
npm ci
Build front-end assets
bash
set -e
cd {{ release }}
# Verify the used versions
node --version
npm --version
npm run production
Pause Horizon
bash
set -e
cd {{ release }}
php artisan horizon:pause
Migrate database structure
bash
set -e
cd {{ release }}
php artisan migrate --force
Clear application cache
bash
set -e
cd {{ release }}
php artisan config:clear
php artisan route:clear
php artisan event:clear
php artisan view:clear
php artisan icons:clear
php artisan modules:clear
php artisan purifier:clear
Activate new release
Cache application
set -e
cd {{ release }}
php artisan config:cache
php artisan route:cache
php artisan event:cache
php artisan view:cache
php artisan icons:cache
php artisan modules:cache
php artisan data:cache-structures
Restart Horizon
set -e
cd {{ release }}
php artisan horizon:purge
php artisan horizon:terminate
Process pending operations
set -e
cd {{ release }}
php artisan operations:process --force --isolated
Purge Pennant cache
set -e
cd {{ release }}
php artisan pennant:purge
Sync scheduled jobs
bash
set -e
cd {{ release }}
php artisan schedule-monitor:sync
Prepare search index
set -e
cd {{ release }}
php artisan search:index
Tag Sentry release
set -e
cd {{ release }}
curl https://sentry.io/api/hooks/release/builtin/XXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/ \
--silent --show-error \
-X POST \
-H 'Content-Type: application/json' \
-d '{"version": "{{ sha }}"}'