| Server IP : 85.155.190.233 / Your IP : 216.73.216.103 Web Server : nginx/1.24.0 System : Linux antigravity-cli 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64 User : wp-moonbloom ( 1001) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /opt/Gemini_Swarm_Core/.github/workflows/ |
Upload File : |
name: CI / Deploy to VPS
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
# ─── Job 1: проверка кода ────────────────────────────────────────────────
lint:
name: Syntax Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -r Gemini_Swarm_Core/requirements.txt
- name: Check syntax — tg_bridge.py
run: python -m py_compile Gemini_Swarm_Core/scripts/tg_bridge.py && echo "✅ Syntax OK"
# ─── Job 2: деплой на VPS (только main) ─────────────────────────────────
deploy:
name: Deploy to VPS
needs: lint
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
steps:
- name: Write SSH key
env:
SSH_KEY: ${{ secrets.VPS_SSH_KEY }}
run: |
mkdir -p ~/.ssh
printf '%s\n' "$SSH_KEY" > ~/.ssh/deploy_key
chmod 600 ~/.ssh/deploy_key
ssh-keyscan -p 50022 85.155.190.233 >> ~/.ssh/known_hosts 2>/dev/null
echo "Key fingerprint:"
ssh-keygen -lf ~/.ssh/deploy_key
- name: Deploy via SSH
run: |
ssh -i ~/.ssh/deploy_key \
-p 50022 \
-o StrictHostKeyChecking=yes \
root@85.155.190.233 bash << 'ENDSSH'
set -e
git config --global --add safe.directory /opt/Gemini_Swarm_Core
REPO="https://x-access-token:${{ secrets.DEPLOY_TOKEN }}@github.com/Azhy34/Gemini-CLI.git"
echo "📥 Pulling latest code..."
# If no valid git repo — init fresh
if [ ! -f "/opt/Gemini_Swarm_Core/.git/config" ] || ! grep -q "Gemini-CLI" /opt/Gemini_Swarm_Core/.git/config 2>/dev/null; then
rm -rf /opt/Gemini_Swarm_Core/.git
cd /opt/Gemini_Swarm_Core
git init
git remote add origin "$REPO"
else
cd /opt/Gemini_Swarm_Core
git remote set-url origin "$REPO"
fi
git fetch origin main
git reset --hard origin/main
echo "🔗 Syncing Gemini_Swarm_Core/ to service root..."
rsync -a Gemini_Swarm_Core/ .
echo "🧹 Removing nested Gemini_Swarm_Core/ to prevent CEO path confusion..."
rm -rf Gemini_Swarm_Core/
echo "🔄 Syncing MCP config to canonical location (per agy docs)..."
mkdir -p /root/.gemini/antigravity
cp .agents/plugins/antigravity-swarm/mcp_config.json \
/root/.gemini/antigravity/mcp_config.json
chmod 600 /root/.gemini/antigravity/mcp_config.json
echo "✅ MCP synced. Servers: $(python3 -c "import json; print(', '.join(json.load(open('/root/.gemini/antigravity/mcp_config.json'))['mcpServers'].keys()))")"
echo "🔄 Syncing global rules (GEMINI.md) to global path..."
cp GEMINI.md /root/.gemini/GEMINI.md
chmod 600 /root/.gemini/GEMINI.md
echo "✅ Global rules synced."
echo "🔄 Syncing staged plugin components (rules, config) to active config directory..."
mkdir -p /root/.gemini/config/plugins/antigravity-swarm
rsync -a .agents/plugins/antigravity-swarm/ /root/.gemini/config/plugins/antigravity-swarm/
chmod -R 700 /root/.gemini/config/plugins/antigravity-swarm/
echo "✅ Staged plugin synced."
echo "📦 Updating dependencies..."
# After rsync + nested cleanup, requirements.txt lives at SWARM_ROOT
venv/bin/pip install -q -r requirements.txt
echo "⚡ Restarting tg-bridge service..."
systemctl restart tg-bridge.service
echo "✅ Deploy complete. Service status:"
systemctl is-active tg-bridge.service
ENDSSH