跳到主要内容
⚡ Open Source · MIT Licensed

Infinity CI

类 Jenkins / GitHub Actions 的自托管持续集成服务器

单二进制 + SQLite 即可起步,YAML 定义工作流,Agent 拉取式分发任务到任意打包机, 全页面实时刷新,零手动刷新按钮。把 GitHub Actions 的体验搬进你自己的机器。

.NET 10Server / AgentReact 19Web UIgRPC分布式 Agentxterm.js实时日志
Infinity CI · runs/UnityCIGame2/1
$ infinity run UnityCIGame2
─ DAG ─────────────────────────────
  ● start → prepare → build → deploy → ● 

09:01:02  ✔ prepare  python CI/platform/windows/prepare.py
09:01:08  ▶ build    python CI/platform/windows/build.py
         Unity 6000.0.23f1 -batchmode -nographics …
09:14:55  ✔ build    StandaloneWindows64
09:15:03  ✔ deploy   Builds/Windows/UnityCIGame.exe (95 MB)

✔ Run succeeded · 通知已推送企业微信

为自动化构建而生

从个人开发者的打包脚本到企业内网的持续集成,一个软件全覆盖

🔀

并行 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 域账号登录与组映射。

MIT

完全开源,MIT 许可证

自由使用、修改、分发,商用无限制——你的 CI,你说了算。

查看许可证

三分钟上手

无需数据库、无需安装 Jenkins 插件,两个命令跑起来

cmd.exe
:: 启动 Server(Web :5000)
scripts\start-server.cmd

:: 在打包机上启动 Agent
scripts\start-agent.cmd \
  --Agent:EnrollToken=<令牌> \
  --Agent:AgentName=build-1

# 默认账号 admin / admin · 首次启动自动创建
workflow.yml
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.py

Agent 自检:打印构建环境变量,确认 UNITY_PATH 与工作目录

build.py

调起 Unity 6 命令行(-batchmode -executeMethod),日志逐行实时回传 Web 终端

deploy.py

归档产物、推送企业微信通知,构建结果回写 commit status

工程不动,CI 来就你:任务可直接绑定本地 Unity 工程目录,无需把几个 GB 的工程塞进 Git。 从第一行脚本到产出 Windows 包,实测 1 小时跑通。

把打包交给 Infinity CI

单 EXE 或 Docker 部署,SQLite 单文件存储,备份就是拷一个目录