From b3a847ca953ae19e97932462448467e17571da34 Mon Sep 17 00:00:00 2001 From: hoshimach1 Date: Wed, 21 Jan 2026 15:24:47 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=B8=D0=BF=D0=BB=D0=B0=D0=B9=D0=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/deploy.yaml | 85 ++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .gitea/workflows/deploy.yaml diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml new file mode 100644 index 0000000..e34e4a8 --- /dev/null +++ b/.gitea/workflows/deploy.yaml @@ -0,0 +1,85 @@ +name: Deploy to Server + +on: + push: + branches: + - main + - master + +jobs: + check: + name: Check Project + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.11' + cache: 'pip' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Check syntax errors + run: | + python -m py_compile main.py + python -m py_compile config.py + python -m py_compile database.py + python -m py_compile marzban.py + python -m py_compile server.py + python -m py_compile keyboards.py + python -m py_compile states.py + + # Опционально: запуск линтера + # - name: Run linter + # run: | + # pip install flake8 + # flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + + deploy: + name: Deploy to Server + runs-on: ubuntu-latest + needs: check # Деплой только после успешной проверки + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Deploy via SSH + uses: appleboy/ssh-action@v1.0.3 + with: + host: ${{ secrets.SSH_HOST }} + username: ${{ secrets.SSH_USERNAME }} + key: ${{ secrets.SSH_PRIVATE_KEY }} + port: ${{ secrets.SSH_PORT }} + script: | + cd ${{ secrets.DEPLOY_PATH }} + git pull origin main + + # Перезапуск через Docker Compose (если используется) + # docker compose down + # docker compose up -d --build + + # Или перезапуск systemd сервиса + # sudo systemctl restart marzban-bot + + # Или перезапуск через Docker + # docker stop marzban-bot || true + # docker build -t marzban-bot ./docker + # docker run -d --rm --name marzban-bot --env-file .env marzban-bot + + # Альтернативный вариант: копирование файлов через rsync + # - name: Deploy files via rsync + # uses: burnett01/rsync-deployments@6.0.0 + # with: + # switches: -avzr --delete --exclude='.git' --exclude='.env' --exclude='bot.db' + # path: ./ + # remote_path: ${{ secrets.DEPLOY_PATH }} + # remote_host: ${{ secrets.SSH_HOST }} + # remote_user: ${{ secrets.SSH_USERNAME }} + # remote_key: ${{ secrets.SSH_PRIVATE_KEY }} + # remote_port: ${{ secrets.SSH_PORT }}