GitHub Actions

使用 GitHub Pages 建立 Jekyll 網站時,標準流程會受到限制,原因是出於安全考量,並讓網站設定更為簡便。若要更進一步控制建置並仍使用 GitHub Pages 來主機網站,你可以使用 GitHub Actions。

使用 Actions 的優點

控制 gemset

  • Jekyll 版本 — 除了使用 GitHub Pages 提供的傳統版本 3.9.3,你也可以使用任何你想要的 Jekyll 版本。例如 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'

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 寶石和相依性。雖然這讓使用者可以輕鬆設定,但如果使用者也檢查 Gemfile.lock(如果它是使用舊版本的 Bundler 所產生),他們可能會遇到問題。

設定動作

  1. 前往儲存庫的設定索引標籤。
    1. 程式碼和自動化下方按一下頁面
    2. 建置和部署下方,將來源從分支部署變更為GitHub Actions
  2. 前往儲存庫的動作索引標籤。
    1. 開始一個新的工作流程並搜尋Jekyll
    2. 按一下Jekyll工作流程(而非GitHub Pages Jekyll工作流程)下的設定
    3. 檢閱變更,然後按一下提交變更

建置並部署

將任何本機變更推送到預設分支時,動作會觸發,而且建置會開始

若要觀看進度並查看任何建置錯誤,請使用下列其中一種方式查看建置狀態

  • 按提交檢視
    • 前往 GitHub 中的儲存庫層級檢視。在最新提交(接近頂端)下方,您會看到提交訊息旁的狀態符號,顯示為勾號或X。將滑鼠游標懸停在上面,然後按一下詳細資料連結。
  • 動作索引標籤
    • 前往儲存庫的動作索引標籤。按一下jekyll工作流程索引標籤。

如果一切順利,所有步驟都會顯示為綠色,而且建置的資產會上傳至 GitHub Pages。

若要查看實際網站,請前往儲存庫上的部署索引標籤,然後按一下已部署的網站 URL。

當您需要對網站進行進一步變更時,請提交至預設分支並推送。工作流程會再次建置並部署您的網站。

  • starter-workflows是提供本指南中所使用的工作流程範本的官方儲存庫。