@setup if (file_exists(__DIR__.'/.env.envoy')) { foreach (parse_ini_file(__DIR__.'/.env.envoy') as $key => $value) { putenv("$key=$value"); } } $path = getenv('DEPLOY_PATH') ?: '/home/CHANGE_ME/CHANGE_ME_DOMAIN'; $branch = getenv('DEPLOY_BRANCH') ?: 'master'; $compose = "docker compose"; @endsetup @servers(['web' => getenv('DEPLOY_SSH_HOST') ?: 'CHANGE_ME_SSH_HOST', 'local' => '127.0.0.1']) {{-- DEPLOY --}} @macro('deploy') pull docker_build docker_up migrate artisan_optimize restart_workers stoic_generate_thumbs done @endmacro @task('pull', ['on' => 'web']) echo ">>> Pulling latest code..." cd {{ $path }} git reset --hard git pull origin {{ $branch }} @endtask @task('docker_build', ['on' => 'web']) echo ">>> Building images..." cd {{ $path }} {{ $compose }} build @endtask @task('docker_up', ['on' => 'web']) echo ">>> Recreating containers..." cd {{ $path }} {{ $compose }} up -d --remove-orphans @endtask @task('migrate', ['on' => 'web']) echo ">>> Running migrations..." cd {{ $path }} {{ $compose }} exec -T app php artisan migrate --force < /dev/null @endtask @task('artisan_optimize', ['on' => 'web']) echo ">>> Optimizing..." cd {{ $path }} {{ $compose }} exec -T app php artisan config:cache < /dev/null {{ $compose }} exec -T app php artisan route:cache < /dev/null {{-- {{ $compose }} exec -T app php artisan view:cache --}} {{ $compose }} exec -T app php artisan event:cache < /dev/null @endtask @task('restart_workers', ['on' => 'web']) echo ">>> Restarting queue workers..." cd {{ $path }} {{ $compose }} restart queue @endtask @task('password_protect', ['on' => 'web']) echo ">>> Maintenance mode on..." cd {{ $path }} {{ $compose }} exec -T app php artisan down --secret="bobobo" < /dev/null @endtask @task('done', ['on' => 'web']) echo "" echo "✅ Deployment complete!" echo "" @endtask {{-- DOWNLOAD EXPORT --}} @macro('download') export download_export @endmacro @task('export', ['on' => 'web']) echo ">>> Dumping database and files..." cd {{ $path }} rm ./storage/app/private/exports/export* {{ $compose }} exec -T app php artisan boboko:export:cleanup < /dev/null {{ $compose }} exec -T app php artisan boboko:export < /dev/null echo ">>> Copying exports to host..." mkdir -p {{ $path }}/storage/app/private/exports/ {{ $compose }} cp app:/var/www/html/storage/app/private/exports/. {{ $path }}/storage/app/private/exports/ @endtask @task('download_export', ['on' => 'local']) echo ">>> Downloading exports..." mkdir -p ./storage/app/private/exports scp -r chico:{{ $path }}/storage/app/private/exports/* ./storage/app/private/exports/ @endtask {{-- STOIC THUMBS --}} @macro('stoic_thumbs') stoic_generate_thumbs @endmacro @task('stoic_generate_thumbs', ['on' => 'web']) echo ">>> Generating Stoic thumbnails..." cd {{ $path }} {{ $compose }} exec -T stoic /app/entrypoint.sh run generate_thumbs @endtask