Files
codewhale/.github/workflows/deploy-web.yml
T
Hunter Bown 9e45780ba0 feat(web): community site for deepseek-tui.com (mobile + color refresh) (#1108)
First commit of the Next.js community site that powers
deepseek-tui.com, deployed via Cloudflare Workers / OpenNext.

This commit lands the scaffold and applies the visual + correctness
pass requested by community feedback:

- Palette: drop the cream/Anthropic-feel paper (#F4F1E8) for a
  DeepSeek-aligned cool white + soft gray (#FFFFFF / #F4F6FB), with
  indigo accents kept. Soften default hairlines so a pure-white
  background reads clean instead of harsh.
- Mobile: add a hamburger menu (mobile-menu.tsx) so phones can reach
  Install / Docs / Activity / Roadmap / Contribute — previously the
  link list was hidden on phones with no replacement. Tighter hero,
  flexible button row, viewport-safe code blocks, columnar grids
  collapse cleanly under 768px, and the printed-almanac center rule
  is desktop-only now (it sliced through narrow viewports).
- "How it works" diagram: replace the hand-rolled ASCII art (which
  misaligned under CJK monospace because Han characters take 2
  columns vs Latin's 1, per dhh's note in WeChat) with a real
  mermaid diagram rendered client-side via dynamic import. Uses the
  mermaid.live standard syntax 庄表伟 recommended.
- Issue #1104: the docs listed a `deepseek-cn` provider that the
  v0.8.16 binary doesn't accept (`ProviderArg` in crates/cli only
  has 9 variants; the 10th lives only in the legacy tui/config.rs).
  derive-facts.mjs now omits `deepseek-cn` until that variant is
  wired through the shared ProviderKind, and the install page's
  China-network recipe uses `base_url` / `DEEPSEEK_BASE_URL` (which
  actually works on v0.8.16) instead of the unsupported provider.

Auto-deploys via .github/workflows/deploy-web.yml on push to main.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 21:00:06 -05:00

77 lines
1.9 KiB
YAML

name: deploy-web
# Auto-deploys deepseek-tui.com (Cloudflare Worker) on every push to main that
# touches the web app or any source the site auto-derives facts from.
#
# Required repo secret:
# CLOUDFLARE_API_TOKEN — token with Workers Scripts:Edit + Workers KV:Edit
# + Workers Custom Domain:Edit on this account.
#
# Manual trigger via the Actions tab is also supported.
on:
push:
branches: [main]
paths:
- "web/**"
- "Cargo.toml"
- "crates/tui/src/config.rs"
- "crates/tui/src/sandbox/**"
- "crates/tui/src/main.rs"
- "npm/deepseek-tui/package.json"
- "CHANGELOG.md"
- ".github/workflows/deploy-web.yml"
workflow_dispatch:
concurrency:
group: deploy-web
cancel-in-progress: false
jobs:
deploy:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
contents: read
defaults:
run:
working-directory: web
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: web/package-lock.json
- name: Install dependencies
run: npm ci
- name: Lint
run: npm run lint
- name: Build (Next.js)
run: npm run build
- name: Build (OpenNext for Cloudflare)
run: npx opennextjs-cloudflare build
- name: Verify KV ids configured
run: npm run predeploy
- name: Deploy to Cloudflare
env:
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
run: npx wrangler deploy
- name: Refresh fact drift after deploy
if: success()
env:
CRON_SECRET: ${{ secrets.CRON_SECRET }}
run: |
if [ -n "$CRON_SECRET" ]; then
curl -fsS -H "x-cron-secret: $CRON_SECRET" \
"https://deepseek-tui.com/api/cron?task=facts-drift" || true
fi