GitHub Actions

GitHub PagesでJekyllサイトを構築する場合、セキュリティ上の理由とサイト設定の簡素化のため、標準のフローは制限されています。ビルドをより詳細に制御し、GitHub Pagesでサイトをホストするには、GitHub Actionsを使用できます。

Actionsを使用する利点

gemsetの制御

  • Jekyllバージョン3.9.3で提供される従来のGitHub Pagesバージョンを使用する代わりに、任意のバージョンのJekyllを使用できます。たとえば4.3.3、またはリポジトリを直接指定することもできます。
  • プラグインサポートされているバージョンのリストに関係なく、任意のJekyllプラグインを使用できます。*.rbファイルはサイトの_pluginsディレクトリに配置します。
  • テーマ — Actionsを使わなくてもカスタムテーマの使用は可能ですが、これでよりシンプルになります。

ワークフロー管理

  • カスタマイズ — Actionsを実行するワークフローファイルを作成することで、カスタムビルドステップを指定し、環境変数を使用できます。
  • ログ — ビルドログは表示可能で、冗長になるように調整することもできます。そのため、Actionsを使用するとエラーのデバッグがはるかに容易になります。

ワークスペースの設定

まず第一に、GitHubでホストされているJekyllプロジェクトが必要です。既存のJekyllプロジェクトを選択するか、クイックスタートに従って、まだホストされていない場合はリポジトリをGitHubにプッシュします。

このページの残りの部分で使用されるJekyllサイトは、最初は_config.ymlindex.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 Pagesで使用がホワイトリストに登録されていません。このプラグインを使用すると、今日からどれだけ前の日付であるかを記述できます。たとえば、日付を2016-03-23T10:20:00Zとして、現在の日付を2020-04-13T10:20:00Zとすると、出力は4年前と3週間前となります。

使用しているアクションは、Rubyのgemと依存関係のインストールを処理します。これによりユーザーにとって設定がシンプルになりますが、古いバージョンのBundlerで生成されたGemfile.lockもチェックインした場合、問題が発生する可能性があります。

アクションの設定

  1. リポジトリの**設定**タブに移動します。
    1. **コードと自動化**の下にある**Pages**をクリックします。
    2. **ビルドとデプロイ**の下にある**ソース**を**ブランチからのデプロイ**から**GitHub Actions**に変更します。
  2. リポジトリの**Actions**タブに移動します。
    1. **新しいワークフロー**を開始し、**Jekyll**を検索します。
    2. **Jekyll**ワークフロー(**GitHub Pages Jekyll**ワークフローではありません)の下にある**設定**をクリックします。
    3. 変更を確認し、**変更をコミット**をクリックします。

ビルドとデプロイ

デフォルトブランチにローカルの変更をプッシュすると、アクションがトリガーされ、ビルドが**開始**されます。

進捗状況を確認し、ビルドエラーを確認するには、次のいずれかの方法を使用してビルドの**ステータス**を確認します。

  • コミットによる表示
    • GitHubのリポジトリレベルビューに移動します。最新のコミット(上部付近)に、コミットメッセージの横にチェックマークまたは*X*として**ステータス記号**が表示されます。その上にカーソルを合わせ、**詳細**リンクをクリックします。
  • Actionsタブ
    • リポジトリのActionsタブに移動します。jekyllワークフロータブをクリックします。

すべてがうまくいけば、すべてのステップが緑になり、ビルドされたアセットがGitHub Pagesにアップロードされます。

**ライブサイト**を表示するには、リポジトリの**デプロイメント**タブに移動し、デプロイされたサイトのURLをクリックします。

サイトにさらに**変更**を加える必要がある場合は、デフォルトブランチにコミットしてプッシュします。ワークフローによってサイトが再度ビルドおよびデプロイされます。

  • starter-workflowsは、このガイドで使用されているワークフローテンプレートを提供する公式リポジトリです。