This commit is contained in:
@@ -124,13 +124,43 @@ jobs:
|
|||||||
git log --oneline -5
|
git log --oneline -5
|
||||||
echo "✅ Git репозиторий готов"
|
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
|
- name: Push to dokku for main branch
|
||||||
if: github.ref == 'refs/heads/main'
|
if: github.ref == 'refs/heads/main'
|
||||||
uses: dokku/github-action@master
|
run: |
|
||||||
with:
|
echo "🚀 Деплоим на v2.discours.io..."
|
||||||
branch: 'main'
|
|
||||||
git_remote_url: 'ssh://dokku@v2.discours.io:22/discoursio-api'
|
# Добавляем dokku remote
|
||||||
ssh_private_key: ${{ secrets.V2_PRIVATE_KEY }}
|
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
|
- name: Verify Git Before Deploy
|
||||||
if: github.ref == 'refs/heads/dev'
|
if: github.ref == 'refs/heads/dev'
|
||||||
@@ -140,10 +170,40 @@ jobs:
|
|||||||
git log --oneline -5
|
git log --oneline -5
|
||||||
echo "✅ Git репозиторий готов"
|
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
|
- name: Push to dokku for dev branch
|
||||||
if: github.ref == 'refs/heads/dev'
|
if: github.ref == 'refs/heads/dev'
|
||||||
uses: dokku/github-action@master
|
run: |
|
||||||
with:
|
echo "🚀 Деплоим на staging.discours.io..."
|
||||||
branch: 'dev'
|
|
||||||
git_remote_url: 'ssh://dokku@staging.discours.io:22/core'
|
# Добавляем dokku remote
|
||||||
ssh_private_key: ${{ secrets.STAGING_PRIVATE_KEY }}
|
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 завершен"
|
||||||
|
|||||||
@@ -24,6 +24,10 @@
|
|||||||
- Добавлен шаг `Restore Git Repository` для восстановления git после тестов
|
- Добавлен шаг `Restore Git Repository` для восстановления git после тестов
|
||||||
- Добавлены проверки состояния git перед деплоем на main и dev ветки
|
- Добавлены проверки состояния git перед деплоем на main и dev ветки
|
||||||
- Автоматическое восстановление git репозитория при повреждении
|
- Автоматическое восстановление git репозитория при повреждении
|
||||||
|
- **Переработан механизм деплоя**: Заменен проблемный `dokku/github-action` на прямой git push
|
||||||
|
- Настройка SSH ключей для прямого подключения к Dokku серверам
|
||||||
|
- Прямой `git push dokku` вместо использования стороннего action
|
||||||
|
- Более надежный и контролируемый процесс деплоя
|
||||||
|
|
||||||
## [0.9.13] - 2025-08-27
|
## [0.9.13] - 2025-08-27
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user