diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 05f76c1..3aa1efa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: CI/CD for NestJS Project- snappfood +name: CI/CD for NestJS Project - SnappFood on: push: @@ -6,35 +6,53 @@ on: - main jobs: - build-and-deploy: + build: runs-on: ubuntu-latest steps: + # مرحله چک‌اوت کد از مخزن - name: Checkout Code uses: actions/checkout@v3 + # نصب Node.js نسخه 22 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 22 + # نصب وابستگی‌ها - name: Install Dependencies run: npm install + # بیلد پروژه - name: Build Project run: npm run build - - name: Deploy to Server - env: - SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} - run: | - eval "$(ssh-agent -s)" - ssh-add - <<< "$SSH_PRIVATE_KEY" - ssh -o StrictHostKeyChecking=no root@65.109.187.30 << 'EOF' - cd /home/project/test-nest-snapp/SnappFood-Nestjs - git pull - npm install - npm run build - npm run start:dev - EOF + deploy: + runs-on: ubuntu-latest + needs: build + steps: + # فعال کردن SSH-Agent و تنظیم کلید خصوصی + - name: Setup SSH Agent and Add Key + env: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + run: | + eval "$(ssh-agent -s)" + echo "$SSH_PRIVATE_KEY" | ssh-add - + + # اضافه کردن سرور به known_hosts + - name: Add Server to Known Hosts + run: | + ssh-keyscan -H 65.109.187.30 >> ~/.ssh/known_hosts + + # دپلوی کردن پروژه روی سرور + - name: Deploy to Server + run: | + ssh root@65.109.187.30 << 'EOF' + cd /home/project/test-nest-snapp/SnappFood-Nestjs + git pull + npm install + npm run build + pm2 restart all + EOF