feat: 新增一键部署到 Cloudflare Workers
This commit is contained in:
1 parent
e6a86b2050
commit
b7fc210bd1
13 files changed
+226
-147
No files matched your search
@@ -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
|
||||
Reference in new issue
Block a user