【2025年】GameCIでGitHub PagesにUnityをデプロイする
背景
Unity 製ゲームを自動ビルドして WebGL でうまく動いているか確認したりテストをしたりしたいと思うことがあると思います。
ありがたいことにネット上に色々と文献がありましたが内容が古かったりうまく動かなかったりして苦戦したので、誰かのためになればと思い、現状私の環境で動いている物と重要なポイントを共有したいと思います。
ワークフロー
以下が現在(2024 年 12 月時点)使用している GitHub Actions のワークフローです。GameCI が提供しているアクションを使用します。
ワークフロー全文
使い方
ワークフローを動かすまでの手順を簡単に説明します。
1.Unity のライセンス設定
GameCI のビルドプロセスを使用するために、Unity のライセンス情報を Github のリポジトリに登録します。
方法は以下の GameCI のドキュメントに従って下さい。
2.ワークフローファイルの配置
リポジトリ内にyour_repository/.github/workflows/build.yml
というディレクトリ構造で上記のワークフローファイルを配置します。
3.Github Pages の設定
GitHub でリポジトリのページを開き、Settings 内の Pages セクション内で、Build and deployment の Source をGitHub Actions
に変更します。
このようになっていれば ok
4.Push
ここまでで設定は完了です。何かしらの変更を Push するか、Pull Request を出すとワークフローの処理が始まり、5~10 分後くらいには GitHub Pages のリンクにアクセスしてゲームをプレイできるはずです!🥳
詰まったポイント
Unity_lic.ulf
ファイルの生成
1.GameCI のアクションを使用するには、Unity_lic.ulf
ファイルの内容を環境変数に設定する必要があります。
指定された場所にUnity_lic.ulf
ファイルが存在しない場合、Unity Hub の設定から再度ライセンスを取得すると、ファイルが生成されました。
追加ボタンから再度ライセンスを取得
2.ディスク容量の不足
ビルド前にFree up disk space 🧹
というアクションを入れています。これをしないとディスク容量が不足しているというエラーが出てビルドが失敗してしまうためです。
Decompression Fallback
の設定
3.unityroom で WebGL ビルドを公開する際は、Decompression Fallback
をオフにする必要がありますが、GitHub Pages の場合はこれをオンにしなければなりません。
allowDirtyBuild
オプション
4.ビルドのビルドをする際にallowDirtyBuild: true
というオプションをつけていますが、これを指定しないとたまにエラーが出ました。
5.成果物アップロードに用いるアクション
ネット上の文献は、成果物のアップロードにactions/upload-artifact@v3
というアクションを使っているものが多いです。しかし、私の場合はエラーが出てうまくアップロードができなかったので、actions/upload-pages-artifact@v1
というアクションを使用したところ、うまくアップロードができました。
6.成果物のパス指定
Upload Build Artifact 🚀
内で、path: CIBuilds/WebGL/build
とパスの指定をしていますが、GameCI のアクションを使用してビルドすると、ビルドパス名/ターゲットプラットフォーム名/ビルド名/index.html
という構造が生成されます。
GitHub Pages では指定したディレクトリにindex.html
ファイルがないと 404 ページになってしまうため、このようなパス指定が必要になります。
Discussion