Files
configure_nginx_manager/.github/workflows/sync-from-gitea.yml
Dmitriy Fofanov 073288f09e Дополнение: Добавлен скрипт управления DNS-сервером Let's Encrypt RegRu и связанные с ним службы systemd
- Реализован скрипт letsencrypt_regru_dns.sh для автоматического управления SSL-сертификатами с использованием проверки DNS-01 через API reg.ru.

- Создан скрипт nginxproxymanager.sh для управления установкой и обновлениями Nginx Proxy Manager.

- Добавлен файл requirements.txt с необходимыми зависимостями Python.

- Внедрена служба systemd и таймер для автоматического обновления сертификатов Let's Encrypt.

- Разработан скрипт test_certificate.sh для генерации самоподписанных SSL-сертификатов в целях тестирования.
2026-02-24 21:25:36 +03:00

101 lines
3.6 KiB
YAML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
name: Sync from Gitea
# Запускается вручную или по webhook от Gitea
on:
workflow_dispatch:
repository_dispatch:
types: [gitea-push]
schedule:
# Проверка каждый час
- cron: '0 * * * *'
jobs:
sync:
runs-on: ubuntu-latest
steps:
- name: Checkout GitHub repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Configure Git
run: |
git config --global user.name "Sync Bot"
git config --global user.email "bot@example.com"
- name: Add Gitea remote
env:
GITEA_URL: ${{ secrets.GITEA_URL }}
GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: |
if [ -z "$GITEA_URL" ]; then
echo "⚠️ GITEA_URL не настроен, пропускаем синхронизацию"
exit 0
fi
# Добавляем Gitea remote с токеном
git remote add gitea "https://oauth2:${GITEA_TOKEN}@${GITEA_URL#https://}"
git remote -v
- name: Fetch from Gitea
run: |
if git remote | grep -q gitea; then
echo "🔄 Получение изменений из Gitea..."
git fetch gitea --tags
else
echo "⚠️ Gitea remote не настроен"
exit 0
fi
- name: Check for new commits
id: check
run: |
# Проверяем есть ли новые коммиты в Gitea
LOCAL=$(git rev-parse HEAD)
REMOTE=$(git rev-parse gitea/main 2>/dev/null || git rev-parse gitea/master 2>/dev/null || echo $LOCAL)
if [ "$LOCAL" != "$REMOTE" ]; then
echo "new_commits=true" >> $GITHUB_OUTPUT
echo "✅ Обнаружены новые изменения в Gitea"
else
echo "new_commits=false" >> $GITHUB_OUTPUT
echo " Нет новых изменений"
fi
- name: Merge changes from Gitea
if: steps.check.outputs.new_commits == 'true'
run: |
# Определяем главную ветку
if git show-ref --verify --quiet refs/remotes/gitea/main; then
BRANCH="main"
else
BRANCH="master"
fi
echo "🔀 Слияние изменений из gitea/${BRANCH}..."
git merge "gitea/${BRANCH}" --allow-unrelated-histories -m "Sync from Gitea: $(date)"
- name: Push to GitHub
if: steps.check.outputs.new_commits == 'true'
run: |
echo "⬆️ Отправка изменений в GitHub..."
git push origin HEAD:main --force-with-lease
git push origin --tags
echo "✅ Синхронизация завершена"
- name: Summary
if: always()
run: |
echo "## 🔄 Отчет о синхронизации" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
if [ "${{ steps.check.outputs.new_commits }}" == "true" ]; then
echo "✅ **Статус**: Синхронизировано успешно" >> $GITHUB_STEP_SUMMARY
echo "📦 **Коммиты**: Новые изменения получены и объединены" >> $GITHUB_STEP_SUMMARY
else
echo " **Статус**: Нет новых изменений" >> $GITHUB_STEP_SUMMARY
fi
echo "" >> $GITHUB_STEP_SUMMARY
echo "🕐 **Время**: $(date)" >> $GITHUB_STEP_SUMMARY