【2024年12月】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