basaHoushanPanel/.github/workflows/deploy.yml

51 lines
1.8 KiB
YAML

name: CI/CD Pipeline
on:
push:
branches:
- main # اگر اسم برنچ اصلیت master هست، این رو بکن master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and Push Docker Image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
didvan/basa_houshan_panel:latest
didvan/basa_houshan_panel:${{ github.sha }}
- name: Deploy to Server
uses: appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.SERVER_IP_BASA_PANEL }}
username: ${{ secrets.SERVER_USERNAME }}
# اگر از کلید SSH استفاده می‌کنی این خط بمونه:
key: ${{ secrets.SERVER_SSH_KEY }}
# password: ${{ secrets.SERVER_PASSWORD }}
script: |
# !!! بسیار مهم: مسیر دقیق پوشه پروژه روی سرورت رو اینجا جایگزین کن !!!
cd /home/ubuntu/app/panel-houshan
# لاگین به داکر هاب روی سرور (برای دانلود ایمیج‌های Private)
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
# دانلود ایمیج جدید و ری‌استارت فقط همون کانتینر
docker compose pull web
docker compose up -d web
# پاکسازی ایمیج‌های قدیمی
docker image prune -f