mirror of
https://github.com/blackboxprogramming/BlackRoad-Operating-System.git
synced 2026-03-17 03:57:13 -05:00
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>
This commit is contained in:
143
.github/workflows/deploy-cloudflare-all.yml
vendored
Normal file
143
.github/workflows/deploy-cloudflare-all.yml
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
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"
|
||||
Reference in New Issue
Block a user