Skip to content

Update develop.yml

Update develop.yml #23

Workflow file for this run

name: Deploy Laravel to Develop
on:
push:
branches:
- develop
jobs:
deploy-artifact:
name: Deploy artifact
runs-on: ubuntu-latest
steps:
- name: Get last repository version
uses: actions/checkout@v2
- name: Compile CSS and Javascript
run: |
npm install
npm run build
- name: Configure PHP 8.2
uses: shivammathur/setup-php@master
with:
php-version: 8.2
extensions: mbstring, ctype, fileinfo, openssl, PDO, bcmath, json, tokenizer, xml
- name: Composer install
run: composer install --no-interaction --prefer-dist --ignore-platform-reqs
- name: Create deployment artifact
env:
GITHUB_SHA: ${{ github.sha }}
run: tar -czf "${GITHUB_SHA}".tar.gz --exclude=*.git --exclude=node_modules *
- name: Upload to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
source: ${{ github.sha }}.tar.gz
target: /tmp/artifacts
- name: copy file via ssh password
uses: appleboy/[email protected]
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
source: "phpdocxconfig.ini"
target: /var/www/html/vendor/phpdocx/config/
- name: Extract files and create directories
uses: appleboy/ssh-action@master
env:
GITHUB_SHA: ${{ github.sha }}
SERVER_PASSWORD: ${{ secrets.SERVER_PASSWORD }}
LARAVEL_ENV: ${{ vars.LARAVEL_ENV_DEV }}
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
#source: "phpdocxconfig.ini"
#target: /var/www/html/vendor/phpdocx/config/
envs: GITHUB_SHA, SERVER_PASSWORD, LARAVEL_ENV
script: |
# Create a new directory
echo ${SERVER_PASSWORD} | sudo -S mkdir -p "${{ secrets.DEPLOY_PATH }}/dev/backend"
# Extract the tar file into the release directory
echo ${SERVER_PASSWORD} | sudo -S tar xzf /tmp/artifacts/${GITHUB_SHA}.tar.gz -C "${{ secrets.DEPLOY_PATH }}/dev/backend"
echo ${SERVER_PASSWORD} | sudo -S touch ${{ secrets.DEPLOY_PATH }}/dev/backend/.env
echo ${SERVER_PASSWORD} | sudo -S chown root.www-data ${{ secrets.DEPLOY_PATH }}/dev/backend/.env
echo ${SERVER_PASSWORD} | sudo -S chmod 0777 ${{ secrets.DEPLOY_PATH }}/dev/backend/.env
echo ${SERVER_PASSWORD} | sudo -S echo "${LARAVEL_ENV}" > "${{ secrets.DEPLOY_PATH }}/dev/backend/.env"
# Create Laravel storage directories and set permissions
echo ${SERVER_PASSWORD} | sudo -S mkdir -p ${{ secrets.DEPLOY_PATH }}/dev/backend/storage/{app,public,framework,logs,clockwork}
echo ${SERVER_PASSWORD} | sudo -S mkdir -p ${{ secrets.DEPLOY_PATH }}/dev/backend/storage/framework/{cache,sessions,testing,views}
echo ${SERVER_PASSWORD} | sudo -S mkdir -p ${{ secrets.DEPLOY_PATH }}/dev/backend/storage/framework/cache/data
echo ${SERVER_PASSWORD} | sudo -S mkdir -p ${{ secrets.DEPLOY_PATH }}/dev/backend/storage/app/public
echo ${SERVER_PASSWORD} | sudo -S mkdir -p ${{ secrets.DEPLOY_PATH }}/dev/backend/storage/app/public/uploads
# Set permissions to folder
echo ${SERVER_PASSWORD} | sudo -S chown -R root.www-data "${{ secrets.DEPLOY_PATH }}/dev/backend/"
echo ${SERVER_PASSWORD} | sudo -S chmod -R 0777 ${{ secrets.DEPLOY_PATH }}/dev/backend/storage
- name: Run migrations and clean cache
uses: appleboy/ssh-action@master
env:
GITHUB_SHA: ${{ github.sha }}
SERVER_PASSWORD: ${{ secrets.SERVER_PASSWORD }}
with:
host: ${{ secrets.SERVER_IP }}
username: ${{ secrets.SERVER_USERNAME }}
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
envs: GITHUB_SHA, SERVER_PASSWORD
script: |
# Run migrations and clean cache
cd "${{ secrets.DEPLOY_PATH }}/dev/backend"
echo ${SERVER_PASSWORD} | sudo -S php artisan passport:keys
echo ${SERVER_PASSWORD} | sudo -S php artisan storage:link
echo ${SERVER_PASSWORD} | sudo -S php artisan vendor:publish --tag=laravel-assets --ansi --force
echo ${SERVER_PASSWORD} | sudo -S php artisan config:clear
echo ${SERVER_PASSWORD} | sudo -S php artisan optimize
echo ${SERVER_PASSWORD} | sudo -S php artisan migrate
echo ${SERVER_PASSWORD} | sudo -S supervisorctl restart all
#Run clean up
rm -rf /tmp/artifacts