feat: 新增一键部署到 Cloudflare Workers

This commit is contained in:
nap0o committed 2026-03-07 13:56:36 +08:00
1 parent e6a86b2050
commit b7fc210bd1
13 files changed
+226 -147

No files matched your search

+7 -20
View File
@@ -22,27 +22,17 @@ jobs:
node-version: '20'
cache: 'npm'
cache-dependency-path: |
frontend/package.json
backend/package.json
package.json
# 安装前端依赖 (Wrangler 构建需要)
- name: Install Frontend Dependencies
run: |
cd frontend
npm install
# 安装后端依赖
- name: Install Backend Dependencies
run: |
cd backend
npm install
# 安装全部依赖
- name: Install Dependencies
run: npm install
# 准备配置文件
- name: Prepare Wrangler Config
env:
CONFIG_FILE: ${{ env.WRANGLER_CONFIG || 'wrangler.toml' }}
run: |
cd backend
cp wrangler.toml wrangler.toml.bak
if [ "$CONFIG_FILE" != "wrangler.toml" ]; then
@@ -57,8 +47,8 @@ jobs:
CLOUDFLARE_D1_DATABASE_NAME: ${{ secrets.CLOUDFLARE_D1_DATABASE_NAME || '2fauth-db' }}
run: |
# 仅替换第一个匹配到的 database_id (对应生产环境配置),保留 dev 环境配置
sed -i "0,/database_id =/s/database_id = \".*\"/database_id = \"$CLOUDFLARE_D1_DATABASE_ID\"/" "backend/wrangler.toml"
sed -i "0,/database_name =/s/database_name = \".*\"/database_name = \"$CLOUDFLARE_D1_DATABASE_NAME\"/" "backend/wrangler.toml"
sed -i "0,/database_id =/s/database_id = \".*\"/database_id = \"$CLOUDFLARE_D1_DATABASE_ID\"/" "wrangler.toml"
sed -i "0,/database_name =/s/database_name = \".*\"/database_name = \"$CLOUDFLARE_D1_DATABASE_NAME\"/" "wrangler.toml"
# 更新数据库结构
- name: Update Database Schema
@@ -66,8 +56,7 @@ jobs:
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
workingDirectory: 'backend'
command: d1 execute ${{ secrets.CLOUDFLARE_D1_DATABASE_NAME || '2fauth-db' }} --remote --file=schema.sql
command: d1 execute ${{ secrets.CLOUDFLARE_D1_DATABASE_NAME || '2fauth-db' }} --remote --file=backend/schema.sql
# 动态生成 Secrets 列表 (仅包含已配置的变量)
- name: Generate Secret List
@@ -131,7 +120,6 @@ jobs:
with:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
workingDirectory: 'backend'
command: deploy --minify
secrets: ${{ steps.secret_list.outputs.secrets }}
env:
@@ -162,7 +150,6 @@ jobs:
- name: Restore Wrangler Config
if: always()
run: |
cd backend
if [ -f wrangler.toml.bak ]; then
mv wrangler.toml.bak wrangler.toml
fi