feat: deploy para aws #18
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build & Deploy Laravel API (Sem Docker) | |
| on: | |
| push: | |
| branches: [main] | |
| jobs: | |
| deploy: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout código | |
| uses: actions/checkout@v3 | |
| - name: Setup PHP | |
| uses: shivammathur/setup-php@v2 | |
| with: | |
| php-version: 8.2 | |
| extensions: mbstring, pdo_mysql, zip, gd | |
| coverage: none | |
| - name: Deploy via rsync | |
| uses: easingthemes/ssh-deploy@main | |
| with: | |
| SSH_PRIVATE_KEY: ${{ secrets.EC2_PROD_PRIVATE_KEY }} | |
| ARGS: "-avz --delete --exclude-from=.rsync-exclude" | |
| SOURCE: "./" | |
| REMOTE_HOST: ${{ secrets.EC2_PROD_HOST }} | |
| REMOTE_USER: ubuntu | |
| REMOTE_PORT: 22 | |
| TARGET: "/var/www/cronos/backend" | |
| - name: Configurar GitHub token para Composer | |
| run: composer config --global github-oauth.github.com ${{ secrets.PAT_GLOBAL_COMPONENTS }} | |
| - name: Pós-deploy (EC2) | |
| uses: appleboy/ssh-action@v0.1.5 | |
| with: | |
| host: ${{ secrets.EC2_PROD_HOST }} | |
| username: ubuntu | |
| key: ${{ secrets.EC2_PROD_PRIVATE_KEY }} | |
| script: | | |
| cd /var/www/cronos/backend | |
| sudo composer install --no-dev --optimize-autoloader | |
| echo "Ajustando permissões..." | |
| sudo chown -R www-data:www-data storage bootstrap/cache | |
| sudo chmod -R 775 storage bootstrap/cache | |
| echo "Rodando migrations..." | |
| sudo php artisan migrate --force | |
| echo "Limpando cache..." | |
| sudo php artisan optimize:clear | |
| sudo php artisan optimize | |
| echo "Reiniciando serviços..." | |
| sudo systemctl reload php8.2-fpm | |
| sudo systemctl reload nginx | |
| echo "✅ Deploy finalizado" |