如何在自托管GitHub Actions Runner中安装新Actions?
解决GitHub Enterprise自托管Runner缺失所需Actions的问题
关键前提
GitHub Actions(含官方、第三方)本质是Git仓库中的代码/脚本集合,自托管Runner执行工作流时会自动拉取对应Action到本地运行,无需手动"安装"。出现缺失问题,通常是网络、权限或配置导致Runner无法拉取Action仓库。
排查与修复步骤
- 验证网络连通性
在Amazon实例上执行命令测试Runner能否访问目标Action仓库:- 针对GHE内部Action:
curl https://<你的GHE域名>/repos/[组织名]/[Action仓库名] - 针对GitHub.com官方Action(若GHE允许外部访问):
curl https://github.com/actions/checkout
若请求失败,需配置实例的安全组、NACL或代理,确保能连通对应地址。
- 针对GHE内部Action:
- 检查GHE全局配置
在GHE管理后台确认:- 是否允许使用GitHub.com上的外部Actions(若工作流依赖此类Action)
- 是否将内部Action仓库加入了允许列表
- 指定Action完整路径
若GHE无法访问外部Actions,或使用内部托管的Action,在工作流文件中替换Action的简写(如actions/checkout@v4)为GHE完整仓库路径,例如:
前提是已将目标Action仓库镜像到GHE内部。- uses: my-org/actions/checkout@v4 - 本地缓存Action(临时方案)
若需离线使用,可将Action仓库代码克隆到Runner的_work/_actions目录对应路径,比如_work/_actions/my-org/checkout/v4。此方法需手动维护版本,仅适合临时场景。 - 确认Runner权限
确保自托管Runner的服务账号拥有对应Action仓库的读取权限(私有仓库需额外配置权限)。
常见误区
不要尝试通过包管理工具"安装"Actions,Actions依赖Git拉取机制,只要Runner能访问仓库地址,工作流会自动处理拉取与运行。
内容的提问来源于stack exchange,提问作者ryang
相关产品推荐
相关产品推荐

