diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..60e82fd --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,43 @@ +name: 生产环境部署 - BlogFlare 至 Cloudflare Pages + +# 触发规则:当代码推送到 main 主分支,或在 Gitea 后台手动触发(workflow_dispatch)时运行 +on: + push: + branches: + - main + workflow_dispatch: + +jobs: + deploy: + name: 构建与自动化上线 + runs-on: ubuntu-latest + + steps: + # 1. 检出仓库最新代码 + - name: 1. 检出源代码 + uses: actions/checkout@v4 + + # 2. 初始化 Node.js 运行环境 (使用 Node 22) + - name: 2. 初始化 Node.js 环境 + uses: actions/setup-node@v4 + with: + node-version: '22' + + # 3. 安装 pnpm 包管理器 (直接复用镜像层或官方 npm,避免 Gitea 自建 Runner 拉取 github-release 超时) + - name: 3. 全局安装并准备 pnpm + run: npm install -g pnpm@9 + + # 4. 严格按照项目公约,通过 pnpm install 安装工程依赖 + - name: 4. 安装工程依赖包 + run: pnpm install + + # 5. 执行类型自检并打包输出静态产物及适配器运行脚本 (产出在 .svelte-kit/cloudflare) + - name: 5. 构建生产环境打包产物 + run: pnpm run build + + # 6. 使用 pnpm dlx 驱动官方 wrangler 发布静态构建至 Cloudflare + - name: 6. 自动化推送到 Cloudflare Pages (主分支为生产发布) + env: + CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} + CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }} + run: pnpm dlx wrangler pages deploy .svelte-kit/cloudflare --project-name=blogflare --branch=main diff --git a/wrangler.jsonc b/wrangler.jsonc index b4cf849..16f41a7 100644 --- a/wrangler.jsonc +++ b/wrangler.jsonc @@ -10,7 +10,7 @@ { "binding": "DB", "database_name": "blogflare-db", - "database_id": "local" + "database_id": "8d03662c-fb92-43f7-82cf-4a8efbb96617" } ], "r2_buckets": [ @@ -19,4 +19,4 @@ "bucket_name": "blogflare-assets" } ] -} +} \ No newline at end of file