@stakme

大丈夫になりたいブログ
2022-07-28T15:38:52+09:00[Asia/Tokyo]

GitHub ActionsによるGitHub Pages更新がベータになりました🎉

わいわい!念願の機能が(ベータですが)ついに始まりました!
GitHub Actionsでビルドした成果物を、GitHub Pagesのコンテンツとして直接アップロードできるようになります 🐣

これまで

GitHub Pagesに公開するコンテンツは、 gh-pages などの専用ブランチを経由して管理する必要がありました。
このデプロイ時の処理なんですが、これまでは「基本的に何もできないが、Jekyllのみ例外的にビルド処理を実行できる」という状態でした。なので他のフレームワーク(例えばこのサイトならNext.js)を使っている場合、①なんとかして自力でビルドする、②なんとかして成果物をgit commit & push する、③更新を待つ、というアプローチが必要でした。
これはちょっと面倒です。Jekyll以外もビルドしてほしいですね。GitHub側も2021年に「来年なんとかする」と表明していて、関連するactionはすでに公開されていましたが、今回ついにそれがベータ版として提供開始になりました!
先行して遊んでいた過去の時点では「罠がいっぱいあるので正直まだ微妙」でしたが、今回はスムーズにいけるんではないかと思います。

具体的にどうやるの

ドキュメントはこちら
リポジトリの設定画面から、Source > GitHub Actionsを選びましょう。これでEnvironmentsも自動で作ってくれます。
GitHub Pages設定画面
SourceのひとつとしてGitHub Actionsを選択できるようになっている
この設定を行うと、叩き台になるテンプレートが選択できるようになります。ここからConfigureをポチって書いていけば終了です。簡単だ…
テンプレート群
Source選択後、テンプレートから作成するためのショートカットが出現する
結果画面
設定が済めばpushするたびデプロイされます。めでたしめでたし
ちなみに、テンプレートに含まれる actions/upload-pages-artifact は今回初めて見ましたが、これは「対象ディレクトリを.tarで固めて actions/upload-artifact でぶん投げてくれる」人でした。なんでそんな処理が必要なのかはさておき、利用する側としてはシンプルに「アップロードしたいディレクトリ」をpathとして指定すれば大丈夫です。
このサイトの.github/workflows/gh-pages.ymlも参考になるかもしれません。

ありがとうGitHub

全人類でGitHub Pagesを使い倒していきましょう🌞