GitHub Actions × GitHub Pages
このウェブサイトの生成には、GitHub ActionsとGitHub Pagesを使っている。developブランチが更新されたら、npm run build
を実行して、peaceiris/[email protected]
でGitHub Pages用のブランチに成果物をpushする──という簡単な仕組みなはずなんだけど、作業中に幾つかはまりどころがあったので書き残しておく。
GITHUB_TOKENの権限は弱い
デフォルトで用意されているGITHUB_TOKENを利用して静的ファイルをpushすれば、GitHub Pagesに反映される……かと思いきや、そうはならない。リポジトリの設定画面からGitHub Pagesのビルドで何らかのエラーが発生したことは確認できるのだけど、それ以上のことは分からない。
Publicリポジトリ向けに用意されているアクセストークンには、GitHub Pages向けのイベントを発火する権限が足りないらしい。解決策の一つとして、適切な権限を持ったPersonal Access Tokenを発行して代わりに使う方法があるので、今回はそうすることにした。
丁度最近、GitHub Packagesの正式リリースと共にGITHUB_TOKENにread:packagesの権限が追加されていた。GitHub ActionsからGitHub Pagesを利用したいケースはよくあるだろうと思うので、今後これについても権限が追加されるかもしれないと思っている。
文字列リテラルは一重引用符
これはGitHub Pagesは関係無い話題。キャッシュ機能を使うために hashFiles("package-lock.json")
と書いていたのだけど、ここで怒られた。GitHub Actionsでの文字列リテラルは、二重引用符ではなく一重引用符で囲む必要がある。ドキュメントにもそう書いてある。