Files
blackroad-operating-system/.github/workflows/health-check.yml

51 lines
1.4 KiB
YAML

name: Production Health Check
on:
schedule:
# Run every hour
- cron: '0 * * * *'
workflow_dispatch:
jobs:
health-check:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Check service health
run: |
echo "Checking health endpoints..."
# Read service URLs from environment or config
SERVICES=(
"https://api.blackroad.io/health"
"https://agents.blackroad.io/health"
"https://monitoring.blackroad.io/health"
)
FAILED=0
for url in "${SERVICES[@]}"; do
echo "Testing: $url"
if curl -f -s -o /dev/null -w "%{http_code}" "$url" | grep -q "200"; then
echo "✅ $url is healthy"
else
echo "❌ $url is unhealthy"
FAILED=$((FAILED + 1))
fi
done
if [ $FAILED -gt 0 ]; then
echo "⚠️ $FAILED service(s) failed health check (may be offline/unreachable)"
echo "::warning::$FAILED service(s) failed health check"
else
echo "✅ All services healthy"
fi
- name: Notify on failure
if: failure()
run: |
echo "Health check failed! Notification would be sent here."
# Add Slack/Discord/email notification here