From ce7f81fe17d8e4d3969fea8b05f5998d2699fb2c Mon Sep 17 00:00:00 2001 From: Merrow <5x3.root@gmail.com> Date: Sun, 11 Oct 2026 23:19:46 +0500 Subject: [PATCH] =?UTF-8?q?ci:=20=D0=B4=D0=B5=D0=BF=D0=BB=D0=BE=D0=B9=20?= =?UTF-8?q?=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20git-pull=20=D0=B2=D0=BC=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=BE=20rsync=20(rsync=20=D0=BE=D1=82=D1=81=D1=83?= =?UTF-8?q?=D1=82=D1=81=D1=82=D0=B2=D1=83=D0=B5=D1=82=20=D0=BD=D0=B0=20VPS?= =?UTF-8?q?),=20=D0=B1=D1=8D=D0=BA=D0=B0=D0=BF=20=D0=91=D0=94=20=D0=BF?= =?UTF-8?q?=D0=B5=D1=80=D0=B2=D1=8B=D0=BC=20=D1=88=D0=B0=D0=B3=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci.yml | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 8405fd7..f2a2faf 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -35,24 +35,7 @@ jobs: printf '%s\n' "${{ secrets.DEPLOY_SSH_KEY }}" > ~/.ssh/deploy_key chmod 600 ~/.ssh/deploy_key ~/.ssh/known_hosts - - name: Код на сервер (rsync; .env, media, data и серверные файлы не трогаем) - run: | - command -v rsync >/dev/null || { apt-get update -qq && apt-get install -y -qq rsync; } - rsync -az --delete \ - -e "ssh -i ~/.ssh/deploy_key" \ - --exclude .git/ --exclude .env --exclude .agents/ \ - --exclude crm/media/ --exclude crm/data/ --exclude crm/tests/ \ - --exclude '*.zip' --exclude README.md --exclude SEO-REGISTRATIONS.md \ - --exclude backups/ \ - ./ ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }}:${{ secrets.DEPLOY_DIR }}/ - - # Гейт №1: сломанный compose/.env падает здесь, живые контейнеры не тронуты - - name: Pre-flight — валидация compose и env - run: | - ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ - "cd ${{ secrets.DEPLOY_DIR }} && docker compose config -q && echo 'compose+env ok'" - - # Гейт №2: дамп БД до любых изменений — деплой всегда обратим по данным + # Гейт №1: дамп БД до ЛЮБЫХ изменений — деплой всегда обратим по данным - name: Бэкап БД перед деплоем (ротация — храним 7) run: | ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ @@ -62,6 +45,23 @@ jobs: && ls -1t backups/db-pre-deploy-*.sql.gz | tail -n +8 | xargs -r rm -f \ && echo 'db backup ok'" + # Код обновляется git-pull-ом на сервере: .env, crm/media, crm/data, + # бэкапы и прочие незакоммиченные файлы защищены .gitignore + - name: Обновить код из git + run: | + ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ + "cd ${{ secrets.DEPLOY_DIR }} \ + && git fetch origin \ + && git reset --hard origin/main \ + && git clean -fdq crm site \ + && git log --oneline -1" + + # Гейт №2: сломанный compose/.env падает здесь, живые контейнеры не тронуты + - name: Pre-flight — валидация compose и env + run: | + ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \ + "cd ${{ secrets.DEPLOY_DIR }} && docker compose config -q && echo 'compose+env ok'" + - name: Сборка и перезапуск run: | ssh -i ~/.ssh/deploy_key ${{ secrets.DEPLOY_USER }}@${{ secrets.DEPLOY_HOST }} \