---
title: 构建与部署生命周期
description: "涵盖从 Git 推送到网站上线的完整构建流程，包括克隆、验证、上传至 R2、ISR 重新验证、监控和回滚策略。"
---

> **For AI agents:** the complete documentation index is at [llms.txt](https://jamdesk.com/docs/llms.txt). Append `.md` to any page URL for its markdown version.

Jamdesk 会自动处理完整的构建与部署流程。推送到 GitHub 后，文档会在几分钟内上线。

屏幕截图显示的是英文界面。

## 构建生命周期

```mermaid
flowchart TD
    A["Git Push"] -->|webhook| B["Build Triggered"]
    C["Manual Rebuild"] --> B

    B --> E{"Validation"}
    E -->|pass| F["Build & Compile"]
    E -->|fail| G["Error in Dashboard"]

    F --> H["Deploy to CDN"]
    H --> I["Cache Purge"]
    I --> J["Live on Edge"]

    G -->|"fix & retry"| A
```

## 构建触发方式

| 触发方式 | 工作原理 | 使用场景 |
|---------|--------------|----------|
| **Git Push** | 向已连接的分支推送时触发 Webhook | 常规开发 |
| **Dashboard** | 在项目设置中点击“Rebuild” | 配置更改后强制刷新 |

<Note>
构建会进行防抖处理。10 秒内的多次提交会合并为一次构建。
</Note>

## 构建期间会发生什么

Jamdesk 会克隆你的代码仓库，验证 `docs.json` 和 MDX 语法，编译为经过优化的 HTML 并建立搜索索引，然后部署到 Cloudflare R2。大多数网站可在 30–90 秒内完成构建。

如需查看完整的构建流程和架构图，请参阅[Jamdesk 的工作原理](https://jamdesk.com/docs/cn/how-jamdesk-works)。

## 部署状态

在仪表板中查看构建状态：

| 状态 | 含义 |
|--------|---------|
| **Building** | 正在构建 |
| **Deployed** | 已在你的域名上线 |
| **Failed** | 构建出错，请查看日志 |
| **Queued** | 正在等待前一个构建完成 |

“Build History”部分会显示近期部署及其状态，并可在此触发手动重新构建：

<SizedImage src="/images/dashboard/build-history.webp" alt="Build History showing recent deployments with Successful status badges, commit info, and Rebuild button" />

## 手动重新构建

无需推送更改即可触发重新构建：

1. 在仪表板中进入你的项目
2. 打开 **Settings**
3. 点击 **Rebuild**

以下情况可以使用此功能：
- 修复卡住的构建
- 平台更新后刷新

## 构建日志

查看详细的构建日志以排查问题：

1. 在项目中进入 **Deployments**
2. 点击某个部署
3. 查看完整的构建日志

日志中会显示常见问题：
- MDX 语法无效
- 缺少图片或资源
- 内部链接失效
- 配置错误

## 回滚

恢复到先前的版本：

1. 进入 **Deployments**
2. 找到要恢复的部署
3. 点击 **Rollback**

先前版本会立即上线，同时启动新的构建。

## 分支部署

<Note>
分支部署适用于 Pro 套餐。
</Note>

合并前预览更改：

1. 推送到功能分支
2. Jamdesk 会在 `branch-name.your-project.jamdesk.app` 创建预览
3. 检查无误后即可合并

## 接下来做什么？

<Columns cols={2}>
  <Card title="部署概览" icon="cloud-arrow-up" href="/cn/deploy/overview">
    可选择子域名、自定义域名或子路径托管
  </Card>
  <Card title="子路径托管" icon="route" href="/cn/deploy/subpath-hosting">
    在 example.com/docs 托管文档
  </Card>
</Columns>
