Backend - KarengataSDA/Docs GitHub Wiki
#This is Deployment yml file for Backend. name: Deploy Laravel API to Contabo Server
on: push: branches: - develop
jobs: deploy: runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 8.1
- name: Install Composer Dependencies
run: composer install --ignore-platform-reqs --optimize-autoloader --no-progress --no-interaction --prefer-dist
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Install NPM Dependencies
run: npm install
- name: Build NPM Assets
run: npm run build
- name: Deploy Code to Server
uses: appleboy/[email protected]
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
source: "."
target: "/home/${{ secrets.VPS_USER }}/ksda-backend-temp"
strip_components: 1
- name: Configure and Deploy on Server
uses: appleboy/[email protected]
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S mkdir -p /var/www/html/ksda-backend
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S rsync -avz --delete /home/${{ secrets.VPS_USER }}/ksda-backend-temp/ /var/www/html/ksda-backend/
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chown -R www-data:www-data /var/www/html/ksda-backend
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chmod -R 775 /var/www/html/ksda-backend
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S mkdir -p /var/www/html/ksda-backend/storage/logs
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S touch /var/www/html/ksda-backend/storage/logs/laravel.log
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chmod -R 775 /var/www/html/ksda-backend/storage
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chmod -R 775 /var/www/html/ksda-backend/bootstrap/cache
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chmod 664 /var/www/html/ksda-backend/storage/logs/laravel.log
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chown -R www-data:www-data /var/www/html/ksda-backend/storage /var/www/html/ksda-backend/bootstrap/cache
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S rm -f /var/www/html/ksda-backend/.env
echo "${{ secrets.ENV_FILE }}" | sudo tee /var/www/html/ksda-backend/.env > /dev/null
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chmod 664 /var/www/html/ksda-backend/.env
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chown www-data:www-data /var/www/html/ksda-backend/.env
rm -rf /home/${{ secrets.VPS_USER }}/ksda-backend-temp
cd /var/www/html/ksda-backend
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S echo "${{ secrets.ENV_FILE }}" > .env
php artisan key:generate || true
php artisan config:clear
php artisan cache:clear
php artisan route:clear
php artisan view:clear
php artisan optimize
echo "${{ secrets.SUDO_PASSWORD }}" | sudo -S chown -R www-data:www-data /var/www/html/ksda-backend/storage /var/www/html/ksda-backend/bootstrap/cache
- name: Run Database Migrations
uses: appleboy/[email protected]
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
cd /var/www/html/ksda-backend
php artisan db:wipe --force && php artisan migrate
# Run migrations manually in order of their timestamps
for file in $(ls -1 database/migrations | sort); do
php artisan migrate --path=database/migrations/$file --force
done
php artisan db:seed --force
php artisan vendor:publish --tag=scribe-config