🌏

【2025年】GameCIでGitHub PagesにUnityをデプロイする

に公開

背景

Unity 製ゲームを自動ビルドして WebGL でうまく動いているか確認したりテストをしたりしたいと思うことがあると思います。
ありがたいことにネット上に色々と文献がありましたが内容が古かったりうまく動かなかったりして苦戦したので、誰かのためになればと思い、現状私の環境で動いている物と重要なポイントを共有したいと思います。

ワークフロー

以下が現在(2024 年 12 月時点)使用している GitHub Actions のワークフローです。GameCI が提供しているアクションを使用します。

ワークフロー全文

使い方

ワークフローを動かすまでの手順を簡単に説明します。

1.Unity のライセンス設定

GameCI のビルドプロセスを使用するために、Unity のライセンス情報を Github のリポジトリに登録します。
方法は以下の GameCI のドキュメントに従って下さい。
https://game.ci/docs/github/activation#personal-license

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 のリンクにアクセスしてゲームをプレイできるはずです!🥳

詰まったポイント

1.Unity_lic.ulf ファイルの生成

GameCI のアクションを使用するには、Unity_lic.ulfファイルの内容を環境変数に設定する必要があります。
指定された場所にUnity_lic.ulfファイルが存在しない場合、Unity Hub の設定から再度ライセンスを取得すると、ファイルが生成されました。

追加ボタンから再度ライセンスを取得

2.ディスク容量の不足

ビルド前にFree up disk space 🧹というアクションを入れています。これをしないとディスク容量が不足しているというエラーが出てビルドが失敗してしまうためです。

3.Decompression Fallbackの設定

unityroom で WebGL ビルドを公開する際は、Decompression Fallbackをオフにする必要がありますが、GitHub Pages の場合はこれをオンにしなければなりません。

4.ビルドのallowDirtyBuild オプション

ビルドをする際に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 ページになってしまうため、このようなパス指定が必要になります。

GitHubで編集を提案

Discussion