Skip to content

QA environments

Manual deployments

Deployment is done manually via the Envoyer deploy button.

Users

Local and test environments have several easy-to-use example users you can log in with:

The password of each is secretsecret.

Envoyer deployment hooks

Clone New Release

Install Composer Dependencies

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 and seed

bash
set -e

cd {{ release }}

php artisan snapshot:load seeded --force --no-interaction
php artisan migrate --force --no-interaction
php artisan db:seed --class=MediaSeeder --force --no-interaction

Activate new release

Prepare application cache

set -e

cd {{ release }}

php artisan cache:clear
php artisan config:clear
php artisan route:clear
php artisan event:clear
php artisan view:clear
php artisan modules:clear
php artisan purifier:clear

# Additional steps to ensure we start with a fresh environment
php artisan cache:clear redis:session

php artisan config:cache
php artisan route:cache
php artisan event:cache
php artisan view:cache
php artisan modules:cache

Restart Horizon

set -e

cd {{ release }}

# Don't purge rogue Horizon process on a shared test server
# as it will try to terminate all Horizon processes

php artisan horizon:terminate

Process pending operations

set -e

cd {{ release }}

php artisan operations:process --force --isolated

Purge Laravel Pennant cache

set -e

cd {{ release }}

php artisan pennant:purge

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 }}"}'

Purge old releases