执行摘要
- 一句话:新增 experimental sgl-router 每日 Docker 构建 CI
- 推荐动作:该 PR 是基础设施增强,值得合并。建议后续考虑多架构构建和镜像版本标签策略。
功能与动机
为仍在 experimental/ 目录下孵化的 sgl-router 提供稳定的 nightly 镜像标签,方便下游用户固定版本使用,同时保持与未来正式发布流程分离。
实现拆解
- 新建
.github/workflows/nightly-experimental-sgl-router-docker.yml 工作流文件。
- 配置调度触发器:cron
0 2 * * *(每天 UTC 02:00)+ workflow_dispatch 手动触发。
- 设置 concurrency 组(按工作流名称)并启用
cancel-in-progress: true,避免重复运行。
- 添加
if: github.repository == 'sgl-project/sglang' 守卫,防止 fork 仓库误触发。
- 使用
docker/setup-buildx-action@v3 和 docker/login-action@v3 登录 Docker Hub,复用仓库已有的 DOCKERHUB_USERNAME/DOCKERHUB_TOKEN 密钥。
- 执行
docker buildx build 命令,指定 amd64 平台、复用 docker/sgl-router.Dockerfile,推送至 lmsysorg/sglang-staging:experimental-router-dev 标签。
关键文件:
.github/workflows/nightly-experimental-sgl-router-docker.yml(模块 CI 配置;类别 infra;类型 infrastructure): 新增的 nightly CI 工作流,定义了构建和推送 experimental sgl-router Docker 镜像的全部步骤。
关键符号:未识别
评论区精华
无 review 讨论。
风险与影响
- 风险:
- 若 Docker Hub 密钥失效或仓库不存在,构建推送会失败,但不会影响其他工作流。
- 仅构建 amd64,未覆盖多架构(如 arm64),可能限制部分用户。
- 镜像标签固定为
experimental-router-dev,不保留历史版本,回滚需手动重新构建。
- 影响:
- 对用户:提供可用的 nightly 镜像,方便测试和集成。
- 对系统:新增 CI 工作流,每天一次构建,资源消耗低。
- 对团队:增加 CI 维护点,但工作流简单,风险可控。
- 风险标记:仅 amd64 架构, 镜像标签固定,无版本管理, 依赖 Docker Hub 密钥
关联脉络
- PR #25851 sgl-router: experimental Rust HTTP router for SGLang worker pools: 该 PR 引入了 experimental sgl-router,本 PR 为其提供 nightly Docker 构建支持,属于同一功能线。
- PR #26279 fix(docker): generate Cargo.lock in chef stage for sgl-router build: 修复 sgl-router Docker 构建的问题,本 PR 复用了相同的 docker/sgl-router.Dockerfile。
参与讨论