网站

Preview Deploys For Pull Requests的简化中文翻译: 拉取请求的预览部署

Preview deploys give every pull request its own live URL, built from that branch's code, so reviewers can click through the actual change instead of reading a diff and guessing. Each preview updates…

预览部署为每个拉取请求提供了自己的实时 URL,该 URL 由该分支的代码构建而成,因此审阅者可以点击实际的更改,而不是阅读 diff 并猜测。每当你推送新提交时,每个预览都会更新,并在拉取请求关闭时自动清理。

预览部署的位置

打开网站,点击该网站,在网站选项卡条中打开环境菜单,然后选择预览。该页面标题为预览部署

预览与暂存分开。暂存是网站的一个长期存在的副本,你有意推送到该副本;预览是为每个拉取请求创建的短期环境,之后会被丢弃。许多团队同时使用两者。有关另一部分,请参阅暂存环境

KPanel 中的预览部署页面

首先设置 Git 部署

预览不是独立功能。它们重用生产网站的部署密钥和构建命令,因此在启用预览之前,网站需要配置正常的 Git 部署。

如果未配置 Git 部署,该页面会显示首先设置 Git 部署,并提供转到 Git 部署按钮,而不是启用表单。完成从 Git 部署网站,然后返回。

如果 Git 部署已连接但没有构建命令,预览页面会显示警告。预览将假设存储库已构建,在根目录中包含静态文件。这对于纯 HTML 网站是正确的,对于任何编译的内容都是错误的,因此如果你的项目需要,请在 Git 部署页面上设置构建命令。

启用预览

  1. 启用预览部署卡片中,在owner/repo表单中输入存储库。不是 URL,不是 SSH 地址:只需两个部分,例如acme/marketing-site
  2. 点击启用

任何不匹配owner/name的内容都会被拒绝,并显示存储库必须为 owner/name 格式

启用后,KPanel 立即在标题为立即复制你的 webhook 密钥的卡片中显示 webhook 签名密钥,并附有警告,表示你之后将看不到它。

在离开页面之前复制该密钥。它生成一次,之后无法检索。如果你丢失了它,解决办法是重新生成它,这会使旧密钥失效,意味着你需要更新存储库 webhook。

将 Webhook 添加到你的存储库

配置的卡片显示一个 Webhook URL,用于粘贴到你的存储库设置中的 Webhooks 下。使用以下配置:

  • Payload URL:页面上显示的 webhook URL。
  • Secret:你刚复制的值。
  • Content type:JSON。
  • Events:拉取请求事件,加上推送,以便在打开的拉取请求上的新提交重建预览。

配置完成后,打开拉取请求会在几分钟内构建预览。后台作业每分钟检查一次新的预览工作,因此无需在 KPanel 中按任何内容。

预览 URL

每个预览都会获得一个pr-<pull-request-number>-<site-id>.kapsulecloud.app形式的自己的主机名,该主机名由通配符证书覆盖,因此它通过 HTTPS 提供,无需你自己执行任何证书步骤。

打开一个的可靠方法是最近预览中预览行上的打开按钮,它带有为该构建配置的确切 URL。将该链接粘贴到拉取请求中,以便审阅者甚至不必查找 KPanel。

读取最近预览列表

最近预览部分列出最最近的预览,最新的在最前面。每行显示拉取请求号和标题、分支、提交和状态:

状态含义
BUILDING现在正在克隆和构建
LIVE在其预览 URL 处提供
FAILED构建出错;展开日志以查看原因
DESTROYED已清理,通常是因为拉取请求已关闭

点击行上的切换构建日志以内联展开其构建输出。该日志是预览失败时首先查看的地方,它与你的构建在本地产生的输出相同。

如果列表为空,页面会这样说:在存储库上打开拉取请求,预览将在几分钟内构建。

轮换 Webhook 密钥

点击配置卡片中的重新生成密钥。KPanel 要求你确认,并明确说明当前密钥立即停止工作,你需要在之后在存储库的 webhook 设置中更新它。

新密钥显示一次,与之前相同的一次性卡片中。复制它,然后更新存储库中的 webhook。在这两个时刻之间,传入的 webhook 传递被拒绝,因此要背靠背地执行这两个步骤。

当有存储库管理员访问权限的人离职时,或者如果密钥曾经被粘贴到不应该粘贴的地方,例如共享聊天频道或工单,请重新生成密钥。

关闭预览

点击禁用。配置被关闭,存储的密钥被清除。现有预览停止被重建。

通过删除存储库中的 webhook 进行整理。它会开始失败,而不是做任何有害的事情,但返回错误的 webhook 在存储库的传递日志中是噪音。

成本和维护

预览构建和提供真实代码,因此它们使用与网站上任何其他部署相同的资源。两个习惯保持控制:

  • 关闭你不再处理的拉取请求。已关闭的拉取请求的预览会自动清理。
  • 不要将预览指向生产凭证。通过密钥选项卡的预览环境给它们测试密钥,该环境的存在正是为了让预览和生产配置无法混淆。

预览 URL 不是私密的。它是一个真实的、可公开访问的主机名,具有有效的证书,任何有该链接的人都可以打开它。不要使用预览来审查任何包含真实客户数据的内容,也不要从生产数据库转储中为预览环境植入数据。

故障排除

打开拉取请求时没有构建任何内容。 检查存储库中 webhook 的最近传递。401 或 403 意味着密钥不匹配,因此重新生成它并更新两端。完全没有传递意味着 webhook 未订阅拉取请求事件。

预览构建但显示目录列表或 404。 Git 部署页面上的输出目录与你的构建实际写入的位置不匹配。预览从生产继承该设置。

构建仅在预览中失败。 最常见的原因是生产中存在但从未添加到预览环境中的依赖项或环境变量。检查密钥页面上的预览选项卡。

预览 URL 停止工作。 查看其行上的状态。DESTROYED 意味着拉取请求已关闭,环境已被回收,这是预期行为。

下一步去向

仍需帮助?

请发送邮件至 support@kapsulehost.com 或在 KPanel 中打开聊天。

打开 KPanel