feat(admin-ui): implement standalone admin UI with Cloudflare Pages deployment

This commit is contained in:
RainbowBird
2026-06-09 17:09:06 +08:00
parent 57ba232432
commit 11b820a77f
24 changed files with 401 additions and 108 deletions
@@ -0,0 +1,55 @@
name: Cloudflare Pages (Admin UI)
on:
push:
branches:
- 'main'
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
deploy:
name: Deploy - ui-admin
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
environment:
name: Admin Production
url: https://admin.airi.build/admin/
steps:
- uses: actions/checkout@v6
# Turborepo
- name: Cache turbo build setup
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-turbo-admin-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-admin-
${{ runner.os }}-turbo-
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
- run: pnpm i -g wrangler@4
- run: pnpm install --frozen-lockfile
- run: pnpm run build:packages
- name: Build ui-admin
run: pnpm -F @proj-airi/ui-admin run build
env:
VITE_SERVER_URL: 'https://api.airi.build'
- uses: cloudflare/wrangler-action@v3.14.1
with:
apiToken: ${{ secrets.MOERU_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.MOERU_CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy ./apps/ui-admin/dist --project-name=airi-server-admin --branch=main
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
@@ -62,7 +62,7 @@ jobs:
- uses: cloudflare/wrangler-action@v3.14.1
with:
apiToken: ${{ secrets.AUTH_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.AUTH_CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.MOERU_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.MOERU_CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy ./apps/ui-server-auth/dist --project-name=moeru-ai-airi-auth --branch=main
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
@@ -122,11 +122,58 @@ jobs:
- name: Wrangler Pages Deploy
uses: cloudflare/wrangler-action@v3.14.1
with:
apiToken: ${{ secrets.AUTH_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.AUTH_CLOUDFLARE_ACCOUNT_ID }}
apiToken: ${{ secrets.MOERU_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.MOERU_CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy ./apps/ui-server-auth/dist --project-name=moeru-ai-airi-auth --branch=server-dev
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
- name: Print preview URL
run: |
echo "Preview URL: https://server-dev.airi-server-auth.pages.dev/ui/"
deploy-admin-ui:
name: Deploy - ui-admin (server-dev)
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
environment:
name: AdminServerDev
url: https://server-dev.airi-server-admin.pages.dev/admin/
steps:
- uses: actions/checkout@v6
# Turborepo
- name: Cache turbo build setup
uses: actions/cache@v5
with:
path: .turbo
key: ${{ runner.os }}-turbo-admin-${{ github.sha }}
restore-keys: |
${{ runner.os }}-turbo-admin-
${{ runner.os }}-turbo-
- uses: pnpm/action-setup@v4
- uses: actions/setup-node@v6
with:
node-version: lts/*
cache: pnpm
- run: pnpm i -g wrangler@4
- run: pnpm install --frozen-lockfile
- run: pnpm run build:packages
- name: Build ui-admin
run: pnpm -F @proj-airi/ui-admin run build
env:
VITE_SERVER_URL: 'https://airi-server-dev.up.railway.app'
- name: Wrangler Pages Deploy
uses: cloudflare/wrangler-action@v3.14.1
with:
apiToken: ${{ secrets.MOERU_CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.MOERU_CLOUDFLARE_ACCOUNT_ID }}
command: pages deploy ./apps/ui-admin/dist --project-name=airi-server-admin --branch=server-dev
gitHubToken: ${{ secrets.GITHUB_TOKEN }}
- name: Print preview URL
run: |
echo "Preview URL: https://server-dev.airi-server-admin.pages.dev/admin/"