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
,则可能会遇到问题。
设置操作
- 转到存储库中的设置选项卡。
- 在代码和自动化下,点击页面。
- 将构建和部署下的来源从从分支部署更改为GitHub Actions。
- 转到存储库中的操作选项卡。
- 启动新建工作流并搜索Jekyll。
- 在Jekyll工作流(而非GitHub Pages Jekyll工作流)下,点击配置。
- 查看更改,然后点击提交更改。
构建和部署
将任何本地更改推送到默认分支时,将触发操作,并且构建将开始。
要查看进度并了解任何构建错误,请使用以下方法之一查看构建状态
- 按提交查看
- 转到 GitHub 中的存储库级别视图。在最新提交(靠近顶部)下,你会在提交消息旁边看到一个状态符号,显示为对勾或X。将鼠标悬停在其上并点击详细信息链接。
- 操作选项卡
- 转到存储库的操作选项卡。点击
jekyll
工作流选项卡。
- 转到存储库的操作选项卡。点击
如果一切顺利,所有步骤都将显示为绿色,并且构建的资产将上传到 GitHub Pages。
要查看实时网站,请转到存储库中的部署选项卡,然后点击已部署的网站 URL。
当你需要对网站进行进一步更改时,请提交到默认分支并推送。工作流将再次构建并部署你的网站。
外部链接
- starter-workflows 是提供本指南中使用的工作流模板的官方存储库。