Skip to content

Update main.yml

Update main.yml #48

Workflow file for this run

name: SSH Server Deployment
on:
push:
branches:
- server
jobs:
ssh-folder-management:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Set up SSH client
run: |
sudo apt-get update
sudo apt-get install -y sshpass
- name: Connect to SSH and perform operations
env:
SERVER_IP: ${{ secrets.SERVER_IP }}
SERVER_USER: ${{ secrets.SERVER_USER }}
SERVER_PASSWORD: ${{ secrets.SERVER_PASSWORD }}
run: |
sshpass -p "$SERVER_PASSWORD" ssh -o StrictHostKeyChecking=no "$SERVER_USER@$SERVER_IP" << 'EOF'
# Navigate to the target directory
cd /home/infovit-api/htdocs
# Find and delete all files and directories within api.infovit.us except for ecosystem.config.js
find api.infovit.us -mindepth 1 ! -name 'ecosystem.config.cjs' -exec rm -rf {} +
# If you need to ensure the directory is empty, but leave ecosystem.config.js
cd /home/infovit-api/htdocs/api.infovit.us
# Clone the specific branch of the GitHub repository into the Pharma directory
git clone -b server https://github.com/danial117/Pharma.git /home/infovit-api/htdocs/api.infovit.us
# Change to the directory and install dependencies
cd /home/infovit-api/htdocs/api.infovit.us
npm install
# Start the application with pm2
pm2 start ecosystem.config.cjs --env production
# Create the 'public' directory with 'brands', 'products', and 'news' subdirectories
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/brands
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/products
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/products/large
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/products/medium
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/products/small
mkdir -p /home/infovit-api/htdocs/api.infovit.us/public/news
EOF