Files
blackroad-operating-system/.github/workflows/deploy-cloudflare-all.yml
Alexa Louise c00b6ee2a1 fix: Add Railway deployment configs and GitHub workflows
- 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>
2025-12-10 15:35:09 -06:00

144 lines
4.4 KiB
YAML

name: 🚀 Deploy All Domains to Cloudflare
on:
push:
branches: [master, main]
paths:
- 'domains/**'
- '.github/workflows/deploy-cloudflare-all.yml'
workflow_dispatch:
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
jobs:
detect-changes:
name: 🔍 Detect Changed Domains
runs-on: ubuntu-latest
outputs:
domains: ${{ steps.changes.outputs.domains }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Detect changed domains
id: changes
run: |
CHANGED=$(git diff --name-only HEAD^ HEAD | grep '^domains/' | cut -d'/' -f2 | sort -u | jq -R -s -c 'split("\n")[:-1]')
echo "domains=$CHANGED" >> $GITHUB_OUTPUT
echo "Changed domains: $CHANGED"
deploy-math:
name: 🧮 Deploy math.blackroad.io
runs-on: ubuntu-latest
needs: detect-changes
if: contains(needs.detect-changes.outputs.domains, 'math-blackroad-io')
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: domains/math-blackroad-io/package-lock.json
- name: Install dependencies
working-directory: domains/math-blackroad-io
run: npm ci
- name: Build Next.js
working-directory: domains/math-blackroad-io
run: npm run build
- name: Deploy to Cloudflare Pages
working-directory: domains/math-blackroad-io
run: npx wrangler pages deploy out --project-name=blackroad-math
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
deploy-blackroadai:
name: 🤖 Deploy blackroadai.com
runs-on: ubuntu-latest
needs: detect-changes
if: contains(needs.detect-changes.outputs.domains, 'blackroadai')
steps:
- uses: actions/checkout@v4
- name: Deploy to Cloudflare Pages
working-directory: domains/blackroadai
run: npx wrangler pages deploy . --project-name=blackroad-blackroadai
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
deploy-lucidia-earth:
name: 🌍 Deploy lucidia.earth
runs-on: ubuntu-latest
needs: detect-changes
if: contains(needs.detect-changes.outputs.domains, 'lucidia-earth')
steps:
- uses: actions/checkout@v4
- name: Deploy to Cloudflare Pages
working-directory: domains/lucidia-earth
run: npx wrangler pages deploy . --project-name=blackroad-lucidia-earth
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
deploy-blackroad-me:
name: 💜 Deploy blackroad.me
runs-on: ubuntu-latest
needs: detect-changes
if: contains(needs.detect-changes.outputs.domains, 'blackroad-me')
steps:
- uses: actions/checkout@v4
- name: Deploy to Cloudflare Pages
working-directory: domains/blackroad-me
run: npx wrangler pages deploy . --project-name=blackroad-blackroad-me
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
deploy-all-static:
name: 📦 Deploy All Static Sites
runs-on: ubuntu-latest
needs: detect-changes
strategy:
matrix:
domain:
- blackroad-systems
- blackroad-network
- blackroad-quantum
- lucidia-studio
- lucidiaqi
- aliceqi
- blackroad-inc
steps:
- uses: actions/checkout@v4
- name: Deploy ${{ matrix.domain }}
working-directory: domains/${{ matrix.domain }}
run: |
if [ -f "package.json" ]; then
npm ci && npm run build
npx wrangler pages deploy dist --project-name=blackroad-${{ matrix.domain }}
else
npx wrangler pages deploy . --project-name=blackroad-${{ matrix.domain }}
fi
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
notify-success:
name: ✅ Notify Deployment Success
runs-on: ubuntu-latest
needs: [deploy-math, deploy-blackroadai, deploy-lucidia-earth, deploy-blackroad-me, deploy-all-static]
if: always()
steps:
- name: Summary
run: |
echo "🎉 Automatic Company deployed everything!"
echo "✅ All domains live on Cloudflare"
echo "🌐 Changes propagated globally"