为自动化构建而生
从个人开发者的打包脚本到企业内网的持续集成,一个软件全覆盖
并行 DAG 调度
needs 声明依赖形成有向无环图,多 Job 并行执行,依赖失败下游自动跳过,页面渲染 Blue Ocean 风格依赖图。
分布式 Agent
Agent 主动外连 Master(gRPC 双向流),拉取式领任务、心跳租约、断线重连、孤儿任务重排队——打包机无需开放入站端口。
全页面实时
每个页面独立 SignalR 连接,数据变化实时上屏;心跳看门狗指数回退重连,整个系统没有手动刷新按钮。
xterm.js 彩色日志
逐行时间戳、JSONL 断点续传、ANSI 全彩渲染、按 Step 下载日志,超时自动 kill 整个进程树。
配置即 Git 仓库
每个任务的 YAML 配置是独立 Git 仓库:Web 表单保存即提交,天然拥有历史、回滚与 git clone。
多方式触发
Web 手动、Git push webhook(HMAC 验签 + 分支通配)、PR/MR 触发、cron 定时,commit 状态自动回写 GitHub/GitLab。
五渠道通知
企业微信、钉钉、Slack、通用 Webhook、邮件 SMTP,按事件过滤,成功失败不同颜色的消息卡片。
企业级权限
超管/管理员/普通用户三级 RBAC、按项目可见性过滤、个人 API Token、LDAP 域账号登录与组映射。
三分钟上手
无需数据库、无需安装 Jenkins 插件,两个命令跑起来
:: 启动 Server(Web :5000) scripts\start-server.cmd :: 在打包机上启动 Agent scripts\start-agent.cmd \ --Agent:EnrollToken=<令牌> \ --Agent:AgentName=build-1 # 默认账号 admin / admin · 首次启动自动创建
name: UnityCIGame2 jobs: prepare: runs_on: agent steps: - name: prepare command: python CI/platform/windows/prepare.py build: needs: [prepare] steps: - name: build command: python CI/platform/windows/build.py deploy: needs: [build] steps: - name: deploy command: python CI/platform/windows/deploy.py
为 Unity 打包而生
CI 里没有一行 Unity 专属代码——构建知识留在游戏仓库,引擎只负责调度
prepare.pyAgent 自检:打印构建环境变量,确认 UNITY_PATH 与工作目录
build.py调起 Unity 6 命令行(-batchmode -executeMethod),日志逐行实时回传 Web 终端
deploy.py归档产物、推送企业微信通知,构建结果回写 commit status
工程不动,CI 来就你:任务可直接绑定本地 Unity 工程目录,无需把几个 GB 的工程塞进 Git。 从第一行脚本到产出 Windows 包,实测 1 小时跑通。