Jekyll 构建说明
问题描述
当在自托管运行器上构建 Jekyll 网站时,可能会遇到以下错误:
The current runner (ubuntu-24.04-x64) was detected as self-hosted because the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported).
In such a case, you should install Ruby in the $RUNNER_TOOL_CACHE yourself, for example using https://github.com/rbenv/ruby-build
解决方案
我们提供了多个工作流文件来解决这个问题:
1. jekyll.yml (已更新)
主要的工作流文件,现在支持自托管运行器。
2. jekyll-fix.yml (推荐)
专门为修复自托管运行器问题而创建的工作流。
3. jekyll-self-hosted.yml
使用 rbenv 来安装和管理 Ruby 版本。
4. jekyll-ruby-build.yml
使用 ruby-build 直接安装 Ruby 到 GitHub Actions 工具缓存目录。
使用方法
方法 1: 使用更新的主工作流 (推荐)
- 现在
jekyll.yml
已经更新,支持自托管运行器 - 直接推送代码到 master 分支即可触发构建
方法 2: 使用专门的工作流
- 在 GitHub 仓库的 Actions 页面中,选择
jekyll-fix.yml
工作流 - 点击 “Run workflow” 按钮
- 选择 “master” 分支
- 点击 “Run workflow”
方法 3: 手动触发
如果自动触发失败,可以:
- 进入 GitHub Actions 页面
- 选择任意一个工作流文件
- 点击 “Run workflow” 手动触发
工作流特点
- 自动检测: 自动识别是自托管还是 GitHub 托管的运行器
- 条件执行: 只在自托管运行器上执行 Ruby 安装步骤
- 兼容性: 同时支持 GitHub 托管和自托管运行器
- 遵循建议: 按照错误信息中的建议使用 ruby-build
文件说明
.ruby-version
: 指定 Ruby 版本为 3.1.4Gemfile
: 已更新以包含 Ruby 版本要求jekyll.yml
: 主要工作流文件(已更新)jekyll-fix.yml
: 专门修复自托管运行器问题的工作流jekyll-self-hosted.yml
: 使用 rbenv 的工作流jekyll-ruby-build.yml
: 使用 ruby-build 的工作流
注意事项
- 确保您的自托管运行器有足够的权限来安装软件包
- 首次运行可能需要较长时间来安装 Ruby
- 如果遇到权限问题,可能需要调整 sudo 权限设置
- 建议先尝试
jekyll-fix.yml
工作流,因为它专门针对这个问题进行了优化