Pro 和 Business 功能

钩入每个部署事件

在每次构建和部署前后运行命令。通过 Slack、Discord、Telegram 或邮件通知团队。自动化迁移、测试和清理 -- 零脚本编写。

包含什么

四个钩子阶段加五个通知渠道。完全掌控部署生命周期。

构建前命令
构建前运行脚本 -- 安装工具、设置变量
构建后命令
构建成功后运行脚本 -- 代码检查、测试、验证构件
部署前钩子
新容器上线前执行命令 -- 迁移、缓存预热
部署后钩子
部署后运行任务 -- 数据填充、健康检查、清理
通知渠道
Slack、Discord、Telegram、邮件 -- 每次部署都获取通知
Webhook URL
将部署事件 POST 到任何外部 URL 用于自定义集成

工作原理

01

向部署流水线添加钩子

在仪表盘中打开任何应用,导航到钩子标签页。为部署生命周期的每个阶段定义 Shell 命令。

02

设置构建前/后和部署前/后命令

编写所需的命令:运行数据库迁移、编译资源、填充数据、预热缓存。标准 Shell -- 容器能运行的都可以。

03

配置通知渠道

连接 Slack、Discord、Telegram、邮件或任何 webhook URL。选择要通知的事件:成功、失败或两者。

04

每次部署自动触发钩子

推送到仓库,sh0 运行完整流水线:构建前、构建、构建后、部署前、部署、部署后、通知。每次如此,无一例外。

部署钩子流水线

Git Push
构建前钩子
构建
构建后钩子
部署前钩子
部署
部署后钩子
通知

每个阶段都是可选的 -- 只配置您需要的钩子

一应俱全

4 个钩子阶段

构建前、构建后、部署前、部署后。完全掌控部署生命周期的每个阶段。

Shell 命令执行

运行容器支持的任何 shell 命令。数据库迁移、资源编译、缓存清理 -- 满足您的需求。

可配置超时

为每个钩子设置超时时间(默认 60 秒)。超过限制时,钩子优雅地失败,根据配置停止或继续部署。

5 个通知渠道

Slack、Discord、Telegram、邮件和通用 webhook。将部署状态推送到团队的日常沟通渠道。

Webhook 集成

将部署事件(开始、成功、失败)POST 到任何 URL。与问题追踪器、分析工具或自定义系统集成。

Slack/Discord 中的部署状态

丰富的通知包含应用名称、提交哈希、耗时和状态。团队无需离开聊天即可实时查看部署结果。

传统方式

  • x 编写 CI/CD 流水线 YAML
  • x 手动配置 webhook 集成
  • x 没有标准钩子节点
  • x 构建自定义通知脚本
  • x 盲目调试失败的部署
  • x 一个工作流需要多个工具

sh0 的方式

  • 4 个内置钩子阶段
  • 带超时的 Shell 命令
  • 5 个预集成渠道
  • 部署状态自动发送
  • 一个仪表盘管理一切
  • 即时失败告警

常见问题

有哪些钩子阶段? +
四个阶段:构建前(Docker 镜像构建前)、构建后(构建成功后)、部署前(新容器替换旧容器前)和部署后(新容器上线并通过健康检查后)。
可以在钩子中运行数据库迁移吗? +
可以。部署前钩子最常见的用途就是运行数据库迁移。命令在应用容器内执行,可以完全访问数据库。如果迁移失败,部署将中止,旧容器继续运行。
钩子失败会怎样? +
默认情况下,失败的钩子会中止部署流水线。构建前或构建后失败会停止构建。部署前失败会阻止新容器上线。部署后失败会触发告警但不会回滚(容器已在运行)。您可以将钩子标记为"失败继续",适用于非关键操作。
通知是如何工作的? +
在仪表盘中配置一次通知渠道(Slack webhook URL、Discord 频道、邮件地址等),然后将渠道分配给应用。每次部署,sh0 发送包含应用名称、提交、耗时和结果(成功或失败及错误详情)的状态消息。
可以使用 webhook 与外部工具集成吗? +
可以。添加任何 URL 作为 webhook 端点。sh0 发送包含部署事件类型、应用元数据、提交信息和状态的 JSON POST 请求。可用于触发 CI 任务、更新仪表盘或通知自定义系统。
钩子有超时限制吗? +
有。每个钩子有可配置的超时时间(默认 60 秒,最大 600 秒)。如果钩子超过超时时间,会被终止并视为失败。这可以防止失控脚本无限期阻塞部署流水线。

自动化部署工作流

构建前/后和部署前/后钩子,配合即时通知。自动运行迁移、填充数据、通知团队。