Automate deployments with Envoy or GitHub Actions: pull, migrate, optimize, and restart workers.
Deploying Laravel
# Envoy.blade.php — task runner
@servers(["web" => "user@yourserver.com"])
@task("deploy")
cd /var/www/myapp
git pull origin main
composer install --no-dev --optimize-autoloader
php artisan migrate --force
php artisan optimize
php artisan queue:restart
sudo systemctl reload php8.3-fpm
@endtask
# Run
php vendor/bin/envoy run deploy
# GitHub Actions CI/CD
# .github/workflows/deploy.yml
on: push:
branches: [main]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: composer install
- run: php artisan test
- run: ssh deploy@server "cd /app && git pull && php artisan migrate --force"