Repolode
kunchenguid

kunchenguid/runner-up

在你自己的 Linux、Mac 和 Windows 机器上自托管 GitHub Actions runner,每个任务使用全新的容器、虚拟机或账户。

可替代:GitHub Actions hosted runners

Star
284
Fork
21
未关闭 Issue
2
最近提交
前天

这是什么?

runner-up 把 GitHub Actions 任务放到你自己已有的机器上运行,替代 GitHub 托管的 runner。一个协调器通过 runner scale set 与 GitHub 通信,监听排队中的任务,并把每个任务分配给某台机器上的空闲位置。Linux 上每个任务使用全新的 Docker 容器或 KVM 虚拟机,Mac 上使用全新的 tart 克隆或 Apple container 客户机,Windows 上使用全新的系统账户或 Hyper-V 虚拟机,任务结束后即被移除。也可以选择直接在宿主机上运行任务。

协调器仅通过 SSH 连接各台机器,无需部署 Kubernetes 集群。它会记录每台机器的 CPU 核心数和内存,为机器所有者保留资源,并可按可配置的规则在多个仓库之间排序任务。默认拒绝来自 fork 仓库的 Pull Request。协调器重启时正在运行的任务不会中断;某台机器的代理无法访问时会暂停分配任务,直到它恢复响应。

项目尚处早期,并分别标明各类提供方的状态:Linux 上的 Docker 和 KVM、Mac 上的 tart 与宿主机位置已运行过真实任务;Hyper-V、Apple container 和 Windows 账户位置仍为实验性功能。项目依赖 GitHub 的 runner scale set 接口,GitHub 目前仍将其标记为预览版。

核心功能

  • 01每个任务在全新的 Docker 容器、KVM 虚拟机、tart 克隆或 Windows 账户中运行,结束后即被删除。
  • 02通过 SSH 连接机器,无需部署 Kubernetes 集群。
  • 03将每台机器的 CPU 核心和内存划分为多个运行位置,并为机器所有者保留资源。
  • 04可按可配置规则在多个仓库之间对排队任务排序。
  • 05默认拒绝来自 fork 仓库 Pull Request 的任务。
  • 06协调器重启时保持正在运行的任务继续执行。

适用场景

  • 用自有闲置的 Linux 或 Mac 机器替代付费的 GitHub 托管 runner 分钟数。
  • 在已有的 Mac 上运行 macOS 构建和签名任务。
  • 在闲置的办公室或家用 PC 上运行 CI 任务,无需管理 Kubernetes 集群。
  • 在自有硬件上为每个 CI 任务提供隔离的运行环境。

快速上手

  1. 1

    使用 Go 安装 runner-up

    go install github.com/kunchenguid/runner-up@latest
  2. 2

    选择要服务的仓库和 Linux 任务标签

    runner-up init --repo you/app --pool my-linux
  3. 3

    添加一台可通过 SSH 访问的机器

    runner-up machine add box --ssh ci@box
  4. 4

    检查配置并启动协调器

    runner-up check-config && runner-up serve

使用前须知

  • 协调器只能运行在 Linux 和 macOS 上,不支持 Windows。
  • GitHub 的运行器规模集仍处于预览阶段,其变化可能导致 runner-up 无法工作。
  • Hyper-V、Apple container、Windows 账户、借用和排空功能仍处于实验阶段,可能在版本间变化。
  • 该项目尚处早期,部分提供方尚未运行过真实任务。

收录于专题

标签

常见问题

runner-up 是什么?
在你自己的 Linux、Mac 和 Windows 机器上自托管 GitHub Actions runner,每个任务使用全新的容器、虚拟机或账户。 runner-up 把 GitHub Actions 任务放到你自己已有的机器上运行,替代 GitHub 托管的 runner。一个协调器通过 runner scale set 与 GitHub 通信,监听排队中的任务,并把每个任务分配给某台机器上的空闲位置。Linux 上每个任务使用全新的 Docker 容器或 KVM 虚拟机,Mac 上使用全新的 tart 克隆或 Apple container 客户机,Windows 上使用全新的系统账户或 Hyper-V 虚拟机,任务结束后即被移除。也可以选择直接在宿主机上运行任务。
runner-up 可以免费使用吗?用的什么许可证?
runner-up 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
runner-up 还在维护吗?
活跃维护中。runner-up 最近一次提交是在 2026年11月6日。
runner-up 适合用来做什么?
用自有闲置的 Linux 或 Mac 机器替代付费的 GitHub 托管 runner 分钟数。 在已有的 Mac 上运行 macOS 构建和签名任务。 在闲置的办公室或家用 PC 上运行 CI 任务,无需管理 Kubernetes 集群。 在自有硬件上为每个 CI 任务提供隔离的运行环境。
runner-up 怎么安装和运行?
使用 Go 安装 runner-up: go install github.com/kunchenguid/runner-up@latest 选择要服务的仓库和 Linux 任务标签: runner-up init --repo you/app --pool my-linux 添加一台可通过 SSH 访问的机器: runner-up machine add box --ssh ci@box 检查配置并启动协调器: runner-up check-config && runner-up serve
在哪里获取 runner-up?
源代码和安装说明在 GitHub 上:https://github.com/kunchenguid/runner-up

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目