From e6f9b877f4ad6cb6c55cd6f5cddbed3db2519a70 Mon Sep 17 00:00:00 2001 From: Untone Date: Thu, 28 Aug 2025 20:53:31 +0300 Subject: [PATCH] deploy-fix2 --- .gitea/workflows/main.yml | 80 ++++++++++++++++++++++++++++++++++----- CHANGELOG.md | 4 ++ 2 files changed, 74 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/main.yml b/.gitea/workflows/main.yml index 0955aa19..6b017c58 100644 --- a/.gitea/workflows/main.yml +++ b/.gitea/workflows/main.yml @@ -124,13 +124,43 @@ jobs: git log --oneline -5 echo "✅ Git репозиторий готов" + - name: Setup SSH for Main Deploy + if: github.ref == 'refs/heads/main' + run: | + echo "🔑 Настраиваем SSH для деплоя на v2.discours.io..." + + # Создаем SSH директорию + mkdir -p ~/.ssh + chmod 700 ~/.ssh + + # Добавляем приватный ключ + echo "${{ secrets.V2_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + + # Добавляем v2.discours.io в known_hosts + ssh-keyscan -H v2.discours.io >> ~/.ssh/known_hosts + + # Запускаем ssh-agent + eval $(ssh-agent -s) + ssh-add ~/.ssh/id_rsa + + echo "✅ SSH настроен для v2.discours.io" + - name: Push to dokku for main branch if: github.ref == 'refs/heads/main' - uses: dokku/github-action@master - with: - branch: 'main' - git_remote_url: 'ssh://dokku@v2.discours.io:22/discoursio-api' - ssh_private_key: ${{ secrets.V2_PRIVATE_KEY }} + run: | + echo "🚀 Деплоим на v2.discours.io..." + + # Добавляем dokku remote + git remote add dokku ssh://dokku@v2.discours.io:22/discoursio-api || git remote set-url dokku ssh://dokku@v2.discours.io:22/discoursio-api + + # Проверяем remote + git remote -v + + # Деплоим текущую ветку + git push dokku main:main -f + + echo "✅ Деплой на main завершен" - name: Verify Git Before Deploy if: github.ref == 'refs/heads/dev' @@ -140,10 +170,40 @@ jobs: git log --oneline -5 echo "✅ Git репозиторий готов" + - name: Setup SSH for Dev Deploy + if: github.ref == 'refs/heads/dev' + run: | + echo "🔑 Настраиваем SSH для деплоя на staging..." + + # Создаем SSH директорию + mkdir -p ~/.ssh + chmod 700 ~/.ssh + + # Добавляем приватный ключ + echo "${{ secrets.STAGING_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + + # Добавляем staging.discours.io в known_hosts + ssh-keyscan -H staging.discours.io >> ~/.ssh/known_hosts + + # Запускаем ssh-agent + eval $(ssh-agent -s) + ssh-add ~/.ssh/id_rsa + + echo "✅ SSH настроен для staging.discours.io" + - name: Push to dokku for dev branch if: github.ref == 'refs/heads/dev' - uses: dokku/github-action@master - with: - branch: 'dev' - git_remote_url: 'ssh://dokku@staging.discours.io:22/core' - ssh_private_key: ${{ secrets.STAGING_PRIVATE_KEY }} + run: | + echo "🚀 Деплоим на staging.discours.io..." + + # Добавляем dokku remote + git remote add dokku ssh://dokku@staging.discours.io:22/core || git remote set-url dokku ssh://dokku@staging.discours.io:22/core + + # Проверяем remote + git remote -v + + # Деплоим текущую ветку + git push dokku dev:main -f + + echo "✅ Деплой на dev завершен" diff --git a/CHANGELOG.md b/CHANGELOG.md index bb84106b..10235798 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,10 @@ - Добавлен шаг `Restore Git Repository` для восстановления git после тестов - Добавлены проверки состояния git перед деплоем на main и dev ветки - Автоматическое восстановление git репозитория при повреждении +- **Переработан механизм деплоя**: Заменен проблемный `dokku/github-action` на прямой git push + - Настройка SSH ключей для прямого подключения к Dokku серверам + - Прямой `git push dokku` вместо использования стороннего action + - Более надежный и контролируемый процесс деплоя ## [0.9.13] - 2025-08-27