将鸿蒙 PC 注册为 GitHub Actions 自托管运行器

📅 2026/7/5 13:40:07
将鸿蒙 PC 注册为 GitHub Actions 自托管运行器
前言随着鸿蒙 PC 终端生态的持续完善越来越多的开发者开始尝试将鸿蒙 PC 作为日常开发的主力设备。作为一台开发设备除了本地工程开发之外能够承接 CI 任务同样是衡量其可用性的重要维度。本文将介绍如何将鸿蒙 PC 接入 GitHub Actions使其作为自托管运行器self-hosted runner运行 CI 工作流。方案概述GitHub Actions 采用典型的 Agent-Server 架构运行器需要运行一个称为 GitHub Actions Runner 的 Agent 程序与 GitHub 服务器保持通信接收并执行下发的 CI 任务。理论上任何能够运行该 Runner 的设备都可以注册为自托管运行器。但官方 Runner 基于 .NET 构建其跨平台支持依赖目标平台的 .NET 运行时。目前微软官方 .NET 尚未支持鸿蒙系统且生态中缺乏可靠的社区维护版这给鸿蒙 PC 的适配带来了挑战。针对这一现状有两种解决思路使用民间零散移植的 .NET 运行时进行构建和部署。这种做法虽然能完全对齐官方特性但环境配置繁琐后期维护成本高。避开 .NET 限制采用跨平台能力更强的语言重写 Runner或复用已有的第三方实现。考虑到部署与维护的便捷性本文采用第二种方案选用社区维护的 Go 语言重写版本 github-act-runner。操作流程github-act-runner 是用 Go 语言编写的而鸿蒙系统在大多数情况下都能直接复用 Linux 平台的 Go 语言制品。我们并不需要从源码构建只需下载 Linux 版本的制品对它做一次代码签名即可成功运行。因此我们的第一个步骤是将 Linux 制品下载到鸿蒙 PC 上并进行代码签名mkdirgithub-act-runnercdgithub-act-runnercurl-LOhttps://github.com/ChristopherHX/github-act-runner/releases/download/v0.13.0/binary-linux-arm64.tar.gztar-zxfbinary-linux-arm64.tar.gz binary-sign-tool sign-selfSign1-inFilegithub-act-runner-outFilegithub-act-runnerbinary-sign-tool 工具由 ohos-sdk 提供请自行下载 ohos-sdk本文不做赘述。准备好制品之后就可以注册运行器、拉起 Agent 程序# 注册运行器./github-act-runner configure--urlyour-repo--tokenyour-token# 前台拉起 Agent 程序./github-act-runner run如果一切正常的话现在你在 GitHub 上面就能看到你的运行器处于 Idle 状态了。我们可以编写一个简单的工作流来验证自托管运行器是否在正常工作name:System Infoon:workflow_dispatch:jobs:show-system-info:runs-on:self-hostedsteps:-name:Display system informationrun:uname-a当你手动触发这个工作流你将看到如下输出说明它确实能成功被派发到鸿蒙 PC 上运行注意事项运行器与 GitHub 服务器之间的网络稳定性直接影响任务可靠性。若执行过程中连接长时间中断GitHub 可能判定任务失败并取消执行。如果你的工作流中引用了别人的 Action例如 GitHub 官方提供的actions/checkout你需要在执行器上配置好 Node.js 运行环境让 github-act-runner 能通过 PATH 找到你机器上的 node 命令。如果不配置github-act-runner 会报错Cannot find: node in PATH。当前大多数 Action 依赖的 Node.js 版本是 24建议为 github-act-runner 提供 Node.js 24过高过低都可能产生兼容性问题。