GitHub Actions

使用 GitHub Pages 构建 Jekyll 网站时,出于安全原因并为了简化网站设置,标准流程受到限制。要对构建拥有更多控制权,同时仍使用 GitHub Pages 托管网站,可以使用 GitHub Actions。

使用 Actions 的优势

对 gemset 的控制

  • Jekyll 版本 — 您可以使用您想要的任何 Jekyll 版本,而不用使用 3.9.3 的经典 GitHub Pages 提供的版本。例如 4.3.3,或直接指向存储库。
  • 插件 — 您可以使用任何 Jekyll 插件,无论它们是否在 支持的版本 列表中,甚至包括放置在网站 _plugins 目录中的 *.rb 文件。
  • 主题 — 虽然不使用 Actions 也可以使用自定义主题,但现在更简单了。

工作流管理

  • 自定义 — 通过创建工作流文件来运行 Actions,您可以指定自定义构建步骤,使用环境变量。
  • 日志记录 — 构建日志是可见的,可以调整为详细模式,因此使用 Actions 调试错误要容易得多。

工作区设置

首要要求是在 GitHub 上托管一个 Jekyll 项目。选择一个现有的 Jekyll 项目,或按照 快速入门,然后将存储库推送到 GitHub(如果尚未托管在 GitHub 上)。

我们在本页其余部分中将使用的 Jekyll 网站最初仅包含一个 _config.yml、一个 index.md 页面和一个 Gemfile。内容分别为

# _config.yml

title: "Jekyll Actions Demo"
---
---

Welcome to My Home Page

{% assign date = '2020-04-13T10:20:00Z' %}

- Original date - {{ date }}
- With timeago filter - {{ date | timeago }}
# Gemfile

source 'https://rubygems.org.cn'

gem "jekyll", "~> 4.2"

group :jekyll_plugins do
  gem "jekyll-timeago", "~> 0.13.1"
end

演示网站使用 Jekyll 4 和 第三方插件,这两个插件目前均未列入 GitHub 页面允许使用的白名单中。该插件将允许我们描述某个日期距离今天有多久。例如,如果我们给出的日期为 2016-03-23T10:20:00Z,而当前日期为 2020-04-13T10:20:00Z,则输出将为 4 年 3 周前

我们正在使用的操作负责安装 Ruby gem 和依赖项。虽然这为用户简化了设置,但如果他们还签入了使用旧版 Bundler 生成的 Gemfile.lock,则可能会遇到问题。

设置操作

  1. 转到存储库中的设置选项卡。
    1. 代码和自动化下,点击页面
    2. 构建和部署下的来源从分支部署更改为GitHub Actions
  2. 转到存储库中的操作选项卡。
    1. 启动新建工作流并搜索Jekyll
    2. Jekyll工作流(而非GitHub Pages Jekyll工作流)下,点击配置
    3. 查看更改,然后点击提交更改

构建和部署

将任何本地更改推送到默认分支时,将触发操作,并且构建将开始

要查看进度并了解任何构建错误,请使用以下方法之一查看构建状态

  • 按提交查看
    • 转到 GitHub 中的存储库级别视图。在最新提交(靠近顶部)下,你会在提交消息旁边看到一个状态符号,显示为对勾或X。将鼠标悬停在其上并点击详细信息链接。
  • 操作选项卡
    • 转到存储库的操作选项卡。点击 jekyll 工作流选项卡。

如果一切顺利,所有步骤都将显示为绿色,并且构建的资产将上传到 GitHub Pages。

要查看实时网站,请转到存储库中的部署选项卡,然后点击已部署的网站 URL。

当你需要对网站进行进一步更改时,请提交到默认分支并推送。工作流将再次构建并部署你的网站。

  • starter-workflows 是提供本指南中使用的工作流模板的官方存储库。