ci: auto-deploy pipeline — webhook triggers rebuild on push
Some checks are pending
CI / 🔧 Backend Check (push) Waiting to run
CI / 🎨 Frontend Build (push) Waiting to run
Auto Deploy / ✅ Pre-Deploy Check (push) Waiting to run
Security Audit / 🔒 Backend Audit (push) Waiting to run
Security Audit / 🔒 Frontend Audit (push) Waiting to run

This commit is contained in:
clawd
2026-02-18 20:30:11 +00:00
parent c18f88d0d1
commit 8ba5eebd93
3 changed files with 61 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
name: Auto Deploy
on:
push:
branches: [master]
jobs:
check:
name: ✅ Pre-Deploy Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: TypeScript Check Backend
working-directory: backend
run: npm ci && npx tsc --noEmit
- name: Build Frontend
working-directory: frontend
run: npm ci && npm run build

9
deploy.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
# Auto-deploy: pull latest + rebuild containers
set -e
cd "$(dirname "$0")"
echo "🔄 Pulling latest..."
git pull
echo "🐳 Rebuilding containers..."
docker compose up -d --build backend frontend
echo "🚀 Deploy complete! $(date)"

32
webhook-server.js Normal file
View File

@@ -0,0 +1,32 @@
const http = require('http')
const { execSync } = require('child_process')
const SECRET = 'luna-deploy-2026'
const server = http.createServer((req, res) => {
if (req.method === 'POST' && req.url === '/deploy') {
let body = ''
req.on('data', chunk => body += chunk)
req.on('end', () => {
console.log(`[${new Date().toISOString()}] Deploy triggered`)
try {
const out = execSync('/home/clawd/.openclaw/workspace/luna-recipes/deploy.sh', {
cwd: '/home/clawd/.openclaw/workspace/luna-recipes',
timeout: 120000,
encoding: 'utf8'
})
console.log(out)
res.writeHead(200)
res.end('✅ Deployed\n')
} catch (e) {
console.error('Deploy failed:', e.message)
res.writeHead(500)
res.end('❌ Deploy failed\n')
}
})
} else {
res.writeHead(404)
res.end()
}
})
server.listen(9876, () => console.log('🚀 Deploy webhook listening on :9876'))