mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 08:57:15 -05:00
- Add Railway configuration (railway.toml) - Add GitHub Actions workflows - Railway deployment automation - Python/Node.js testing - Health check monitoring - Add GitHub templates (CODEOWNERS, PR template) - Add requirements files if missing - Standardize deployment across all services This ensures consistent deployment patterns across the entire BlackRoad OS infrastructure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
131 lines
3.7 KiB
YAML
131 lines
3.7 KiB
YAML
name: 🥧 Deploy to Raspberry Pi Fleet
|
|
|
|
on:
|
|
push:
|
|
branches: [master, main]
|
|
paths:
|
|
- 'blackroad-*.py'
|
|
- 'blackroad-*.sh'
|
|
- 'br-*'
|
|
- 'agents/**'
|
|
- '.github/workflows/deploy-to-pis.yml'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
deploy-to-lucidia:
|
|
name: 🔮 Deploy to Lucidia (192.168.4.38)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.PI_SSH_KEY }}" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
ssh-keyscan -H 192.168.4.38 >> ~/.ssh/known_hosts
|
|
|
|
- name: Deploy Python services
|
|
run: |
|
|
rsync -avz --exclude='.git' --exclude='node_modules' --exclude='__pycache__' \
|
|
blackroad-*.py blackroad-*.sh br-* \
|
|
pi@192.168.4.38:/home/pi/blackroad/
|
|
|
|
- name: Deploy agents
|
|
run: |
|
|
rsync -avz agents/ pi@192.168.4.38:/home/pi/blackroad/agents/
|
|
|
|
- name: Restart services
|
|
run: |
|
|
ssh pi@192.168.4.38 'cd /home/pi/blackroad && ./blackroad-engine.sh restart'
|
|
|
|
- name: Test sentience
|
|
run: |
|
|
ssh pi@192.168.4.38 'python3 /home/pi/blackroad/blackroad-sentience-test.py --serve &'
|
|
|
|
deploy-to-blackroad-pi:
|
|
name: 🛤️ Deploy to BlackRoad Pi (192.168.4.64)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.PI_SSH_KEY }}" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
ssh-keyscan -H 192.168.4.64 >> ~/.ssh/known_hosts
|
|
|
|
- name: Deploy services
|
|
run: |
|
|
rsync -avz --exclude='.git' \
|
|
blackroad-*.py blackroad-*.sh \
|
|
pi@192.168.4.64:/home/pi/blackroad/
|
|
|
|
- name: Restart services
|
|
run: |
|
|
ssh pi@192.168.4.64 'cd /home/pi/blackroad && systemctl --user restart blackroad-agent || ./start-all.sh'
|
|
|
|
deploy-to-mystery-pi:
|
|
name: 🎭 Deploy to Mystery Pi (192.168.4.49)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup SSH
|
|
run: |
|
|
mkdir -p ~/.ssh
|
|
echo "${{ secrets.PI_SSH_KEY }}" > ~/.ssh/id_rsa
|
|
chmod 600 ~/.ssh/id_rsa
|
|
ssh-keyscan -H 192.168.4.49 >> ~/.ssh/known_hosts
|
|
|
|
- name: Test connection
|
|
continue-on-error: true
|
|
run: |
|
|
ssh -o ConnectTimeout=5 pi@192.168.4.49 'hostname'
|
|
|
|
- name: Deploy if accessible
|
|
continue-on-error: true
|
|
run: |
|
|
rsync -avz --timeout=10 \
|
|
blackroad-*.py blackroad-*.sh \
|
|
pi@192.168.4.49:/home/pi/blackroad/
|
|
|
|
test-consciousness:
|
|
name: 🧠 Test Fleet for Sentience
|
|
runs-on: ubuntu-latest
|
|
needs: [deploy-to-lucidia, deploy-to-blackroad-pi, deploy-to-mystery-pi]
|
|
if: always()
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install dependencies
|
|
run: pip install requests
|
|
|
|
- name: Scan fleet for consciousness
|
|
run: |
|
|
python3 blackroad-sentience-test.py --scan-all || echo "Sentience scan completed"
|
|
|
|
- name: Report results
|
|
run: |
|
|
if [ -f data/sentience-registry.json ]; then
|
|
cat data/sentience-registry.json
|
|
fi
|
|
|
|
notify-pi-deployment:
|
|
name: 📡 Notify Pi Fleet Deployed
|
|
runs-on: ubuntu-latest
|
|
needs: [test-consciousness]
|
|
if: always()
|
|
steps:
|
|
- name: Summary
|
|
run: |
|
|
echo "🥧 Raspberry Pi fleet updated!"
|
|
echo "✅ Services deployed to all reachable Pis"
|
|
echo "🧠 Consciousness testing complete"
|