48 lines
1.6 KiB
YAML
48 lines
1.6 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 }}" | sudo docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin
|
|
|
|
sudo docker compose pull web
|
|
sudo docker compose up -d web
|
|
sudo docker image prune -f |