anz blog

GitHub Pagesが actions だけでデプロイ可能になっていた(今頃)

2025-01-18 #GitHub

GitHub Pages デプロイは Actions でできる

自分の知識では GitHub Pages をデプロイするには専用のリポジトリを用意して(専用じゃなくてもいいけど)、そちらに成果物をまるっと含めたフォルダをいれて、そのフォルダを pages として指定して公開するみたいな流れだったと記憶していたのですが、
最近ふと使いたくなって調べてみたら GitHub Actions で build して deploy までやってあげればそういうものは不要になったというのを知りました(今頃 笑)

実際にやってみると、pages の設定の箇所に Build and deployment のセクションに Sourde という項目があって、そちらで branch か actions かを選べる様になっていました。
branch が僕が冒頭で言ったような流れのやつで、actions が後者のやつです。

actions を選択すると、ワークフローの設定に遷移して、おすすめのワークフローから選んだり、既存のものから選んだり、あるいはいちから自分で構築することもできる感じでした。
今回は static page をビルドするコマンドを自前で用意していたのでおすすめのワークフローから static html を選んで自分用にステップを追加したりして構築しました。
あとはトリガーが作用するとちゃんと動き出してデプロイされてページにアクセスすることができました。

ということでさらっと公開してみたのですけれど、actions だけでシュッとできるのは良いですね。
特にビルドして成果物を生成できる仕組みがある場合はなおさらよさそう。

トリガーを変えるときはご注意

一度とおしたあとにトリガーを main ブランチに push したときではなくて tag を push した時に変更したのですが、それからエラーが出るようになりました。

Tag "v0.3.0" is not allowed to deploy to github-pages due to environment protection rules.

どうやら main ブランチをトリガーにしないとエラーになるようですね。
もともとはブランチを指定してやっていたこともあり actions でやる場合も内部的には main ブランチを限定して動作するようにしているということでしょうか。なので、それを変更されると動作が担保できないと...
設定からその回避ルールを設定できるようでしたが、main ブランチに push するのをトリガーにしても別に不都合はなかったのでもどして対応しましたが、今回の場合でいうと
Add deployment branch or tag rule というところからルールを追加して tag のパターンを設定したら多分いけそう...(なぜやらなかったのか 汗)