Skip to main content

功能特性

预览部署

了解 Virex 如何为每个拉取请求(Pull Request)自动创建预览部署,实现更快的反馈和更安全的发布。

预览部署是 Virex 最强大的功能之一。每当您打开一个拉取请求时,Virex 都会自动构建您的更改并将其部署到一个唯一的 URL,让您和您的团队在变更上线之前进行审查。

工作原理

当您向已打开拉取请求的分支推送代码时:

  1. Virex 通过 webhook 检测到推送事件
  2. 使用您分支的代码触发一次新的构建
  3. 构建产物被部署到一个唯一的预览 URL
  4. 系统会在您的 PR 上自动评论并附上预览链接
https://your-project-pr-123.virex.app

每个预览 URL 都对应一个特定的提交(commit),因此您可以并排比较不同的版本。

启用预览部署

对于连接到 GitHub、GitLab 或 Bitbucket 的所有项目,预览部署默认启用,无需任何配置。

要自定义行为,请在 virex.config.js 中添加:

export default {
  previews: {
    enabled: true,
    // 仅为目标分支为以下分支的 PR 创建预览
    targetBranches: ['main', 'develop'],
    // 预览在 7 天不活跃后过期
    expiration: '7d',
  },
};

预览 URL

预览 URL 遵循可预测的模式:

类型 URL 模式
PR 预览 {project}-pr-{number}.virex.app
分支预览 {project}-{branch}.virex.app
提交预览 {project}-{sha}.virex.app

您也可以配置自定义预览域名:

export default {
  previews: {
    domain: 'preview.yourcompany.com',
    // 结果示例:pr-123.preview.yourcompany.com
  },
};

GitHub 集成

Virex 与 GitHub 深度集成,提供无缝的审查体验:

状态检查

每个预览部署都会将其状态回传到 GitHub:

  • Pending(进行中) — 构建正在进行
  • Success(成功) — 预览已上线并可用
  • Failure(失败) — 构建失败(点击查看日志)

您可以通过启用分支保护规则,要求预览部署成功后才能合并。

PR 评论

Virex 会自动在您的 PR 上评论,内容包括:

  • 预览的直接链接
  • 构建时长和体积
  • Lighthouse 性能评分(如已启用)
  • 截图对比(如已启用)

部署事件

预览部署会显示在 GitHub 的 Deployments 选项卡中,为您提供该 PR 所有预览的完整历史。

密码保护

对于敏感项目,您可以使用密码保护预览部署:

export default {
  previews: {
    password: process.env.PREVIEW_PASSWORD,
  },
};

或者为企业账号启用 SSO 保护:

export default {
  previews: {
    protection: 'sso', // 需要 Virex 登录
  },
};

环境变量

预览部署使用与生产环境独立的环境变量集。可在控制台的 Settings → Environment Variables → Preview 下进行配置。

常见模式:

# 预览环境使用预发 API
API_URL=https://api-staging.yourcompany.com

# 在预览环境中禁用分析
ANALYTICS_ENABLED=false

# 使用测试支付密钥
STRIPE_KEY=pk_test_xxx

协作功能

分享预览

与没有代码仓库访问权限的利益相关者分享预览链接。他们无需 Virex 账号即可查看预览(除非启用了密码保护)。

在预览上评论

团队成员可以直接在预览部署上留下评论:

virex comment "The header looks off on mobile" --preview pr-123

评论会同步回 PR 以便查看。

视觉回归测试

启用自动截图对比,捕捉视觉回归:

export default {
  previews: {
    visualTesting: {
      enabled: true,
      pages: ['/', '/pricing', '/about'],
      viewports: ['mobile', 'desktop'],
    },
  },
};

清理与过期

预览部署会被自动清理以节省资源:

  • 已合并的 PR — 预览在合并 24 小时后删除
  • 已关闭的 PR — 预览立即删除
  • 过期的预览 — 超过配置的过期时间后删除

要延长预览的保留时间:

virex preview keep pr-123 --days 30

最佳实践

  1. 使用预览专属的环境变量 — 避免意外将测试数据发送到生产服务
  2. 为敏感项目启用密码保护 — 尤其是预览包含未发布功能时
  3. 设置视觉回归测试 — 在 CSS 问题进入生产环境前将其捕获
  4. 配置过期策略 — 保持预览环境整洁

故障排查

预览未更新

请确保您的分支已推送到远程:

git push origin your-branch

预览显示旧内容

清除该预览的 CDN 缓存:

virex cache clear --preview pr-123

仅在预览环境构建失败

检查预览环境变量是否配置正确。一个常见问题是:API 密钥在生产环境存在,但在预览环境缺失。