From bac19b0bb240d8e931eb72ff61b0f9a47437b3af Mon Sep 17 00:00:00 2001 From: mahan Date: Thu, 12 Feb 2026 10:56:26 +0330 Subject: [PATCH] Update deploy-dev.yml for branch-specific deployment and service update improvements --- .gitea/workflows/deploy-dev.yml | 38 +++++++++++++++++---------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/deploy-dev.yml b/.gitea/workflows/deploy-dev.yml index 2f74f599..e8a59df2 100644 --- a/.gitea/workflows/deploy-dev.yml +++ b/.gitea/workflows/deploy-dev.yml @@ -1,31 +1,23 @@ -name: Deploy Dev (Fixed) +name: Deploy Dev (Branch Trigger) + on: push: - branches: [ Feature/general/docker ] + branches: + - Feature/general/docker env: IMAGE_NAME: gozareshgir-api + # مسیری که فایل docker-compose.yml مخصوص تست در سرور قرار دارد SERVER_PATH: ~/apps/test-dev/backend-api jobs: build-and-deploy: - # ✅ self-hosted runner - runs-on: [linux_amd64, ubuntu-latest] - + runs-on: ubuntu-latest steps: - # ✅ Fix DNS - IP واقعی Gitea! - - name: Fix Gitea DNS - run: | - echo "172.21.0.4 server" | sudo tee -a /etc/hosts - echo "✅ Gitea server resolved to 172.21.0.4" - ping -c 1 server - - name: Checkout uses: actions/checkout@v4 - with: - fetch-depth: 1 - token: ${{ secrets.PAT }} # Personal Access Token + # 1. لاگین به داکر هاب/رجیستری شخصی - name: Login to Docker Registry uses: docker/login-action@v3 with: @@ -33,6 +25,7 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} + # 2. بیلد و پوش کردن ایمیج با تگ :dev - name: Build and Push uses: docker/build-push-action@v5 with: @@ -40,13 +33,14 @@ jobs: push: true tags: ${{ secrets.DOCKER_REGISTRY }}/${{ env.IMAGE_NAME }}:dev - - name: Deploy to Test Server + # 3. اتصال به سرور و آپدیت سرویس + - name: Update Service on Test Server uses: appleboy/ssh-action@v1.0.3 env: DOCKER_REGISTRY: ${{ secrets.DOCKER_REGISTRY }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - APP_VERSION: dev + APP_VERSION: dev # ورژن تست همیشه dev است with: host: ${{ secrets.SSH_HOST_TEST }} username: ${{ secrets.SSH_USERNAME_TEST }} @@ -55,8 +49,16 @@ jobs: envs: DOCKER_REGISTRY,DOCKER_USERNAME,DOCKER_PASSWORD,APP_VERSION script: | cd ${{ env.SERVER_PATH }} + + # لاگین مجدد در سرور برای اطمینان echo "$DOCKER_PASSWORD" | docker login $DOCKER_REGISTRY -u $DOCKER_USERNAME --password-stdin + + # اکسپورت کردن ورژن برای اینکه فایل داکر-کمپوز سرور آن را بشناسد export APP_VERSION=$APP_VERSION + + # دانلود ایمیج جدید و آپدیت کانتینر docker compose pull docker compose up -d --remove-orphans - docker image prune -f + + # پاک کردن ایمیج‌های قدیمی برای پر نشدن فضای سرور + docker image prune -f \ No newline at end of file