UnityUnityメモ

【Unity + DevOps】CI/CDを活用してビルド・デプロイを自動化する方法

Unity

1. はじめに

Unityでのゲーム開発は楽しいですが、プロジェクトが大きくなるにつれてビルドやデプロイの作業が増えてきますよね。手動でビルドを行い、複数のプラットフォーム向けに設定を変更しながらデプロイするのは、時間もかかるし、ミスも起こりやすい…。

そこで役立つのが CI/CD(継続的インテグレーション/継続的デプロイ) という仕組みです。CI/CDを導入することで、コードを変更するたびに自動でビルド・デプロイが実行されるため、開発の効率が大幅にアップします。

「でも、CI/CDって難しそう…」と思っている人も多いかもしれません。でも大丈夫!実は GitHub ActionsUnity Cloud Build を使えば、比較的簡単に導入できます。

この記事では、UnityのプロジェクトにCI/CDを導入し、ビルド・デプロイを自動化する方法を詳しく解説します。導入の手順だけでなく、どのツールを使うべきか、導入することでどんなメリットがあるのかも紹介するので、ぜひ最後まで読んでみてください!



CI/CDを導入するメリット

まず、CI/CDを導入するとどんな良いことがあるのかを簡単に紹介しておきましょう。

手作業を減らし、ミスを防ぐ
手動でのビルドやデプロイは、ファイルの選択ミスや設定ミスが発生しがち。でもCI/CDを使えば、同じ手順を毎回自動で実行してくれるので、ヒューマンエラーを減らせます。

ビルド・デプロイの時間を短縮
開発のたびに手動でビルドするのは面倒ですよね。CI/CDならコードをプッシュするだけで、自動でビルドが進みます。開発スピードが向上し、すぐにテストやデバッグが可能になります。

複数のプラットフォーム向けに簡単デプロイ
Unityでは、PC(Windows, Mac)、モバイル(iOS, Android)、WebGLなど様々なプラットフォーム向けにビルドする必要があります。CI/CDを活用すれば、これらのビルドを一括で管理できるようになります。

この記事で使用するツール

UnityでCI/CDを導入するには、いくつかの方法がありますが、今回は GitHub ActionsUnity Cloud Build を中心に解説します。

🛠 GitHub Actions
GitHub上でCI/CDの自動ワークフローを設定できるツール。無料枠があり、設定次第で柔軟なビルド・デプロイが可能。

🛠 Unity Cloud Build
Unity公式のクラウドビルドツール。複数プラットフォーム向けのビルドを自動化できるため、特にモバイルアプリの開発者におすすめ。

このあと、具体的な設定方法を解説していくので、一緒に進めてみましょう!




2. CI/CDとは?

Unity開発を進める上で、手動でのビルドやデプロイ作業が負担になっていませんか?
「毎回ビルドに時間がかかる…」「エンジンのバージョン違いでエラーが出る…」「チームメンバー全員の環境を統一するのが大変…」といった問題を感じているなら、CI/CDを導入することで開発の効率が格段にアップします。

では、そもそもCI/CDとは何なのか、Unity開発にどう役立つのかを解説していきます。


CI/CDとは?

CI/CDとは、ソフトウェア開発の効率を高めるための**継続的インテグレーション(Continuous Integration, CI)継続的デプロイ(Continuous Deployment, CD)**の略語です。

  • CI(継続的インテグレーション)
    開発者が書いたコードを自動でテスト・ビルドし、問題がないかをチェックする仕組みのこと。
    → Unityプロジェクトでは、新しいスクリプトやアセットを追加したときに、エラーがないか自動で確認できます。
  • CD(継続的デプロイ / 継続的デリバリー)
    ビルドが完了したら、自動的にテスト環境や本番環境へデプロイ(配布)する仕組みのこと。
    → Unityでは、ゲームの最新バージョンをストアやサーバーにすぐにアップロードできます。

この2つを組み合わせることで、手作業を減らし、スムーズに開発を進めることができます。


ゲーム開発におけるCI/CDの活用例

では、Unityのゲーム開発でCI/CDを導入すると、具体的にどのようなメリットがあるのでしょうか?
以下のようなケースで効果を発揮します。

1. 自動ビルドでミスを防ぐ

開発中のプロジェクトで、ビルドエラーが出てしまい、急いで修正…という経験はありませんか?
CI/CDを導入すれば、新しいコードを追加するたびに自動でビルドが行われるため、問題が発生してもすぐに気づくことができます。

2. チーム開発がスムーズに

複数人で開発していると、「AさんのPCでは動くのに、BさんのPCでは動かない…」という状況が発生しがちです。
CI/CDを使えば、すべてのコードを統一された環境でビルド・テストできるため、「ローカル環境の違いによるエラー」を防ぐことができます。

3. ストアへのリリースを自動化

Unityで作ったゲームをGoogle PlayやApp Storeにアップロードするのは、意外と手間がかかりますよね。
CI/CDを活用すれば、ビルドが完了したらそのままストアに提出する仕組みも作れるため、リリース作業を大幅に効率化できます。


CI/CDの導入で開発を加速しよう!

CI/CDを導入することで、手動で行っていたビルド・テスト・デプロイの作業が自動化され、開発のスピードが飛躍的に向上します。
エラーの早期発見やチーム開発の効率化にもつながるため、「開発に専念できる環境」を作ることができます。

次のステップでは、実際にGitHub ActionsやUnity Cloud Buildを使って、UnityプロジェクトにCI/CDを導入する手順を解説していきます!




3. UnityプロジェクトでCI/CDを導入する手順

UnityのプロジェクトでCI/CDを導入すると、手動でのビルドやデプロイ作業を省略でき、開発のスピードが大幅に向上します。ここでは、GitHub ActionsUnity Cloud Buildを使った自動化の方法を紹介します。


3.1 GitHub Actionsを使ったCI/CDの設定

GitHub Actionsは、リポジトリの変更をトリガーにして自動でビルドやデプロイを行えるCI/CDツールです。無料プランでも使用可能で、小規模なUnityプロジェクトなら問題なく動作します。

① GitHubリポジトリの作成と設定

まず、GitHub上でリポジトリを作成し、Unityプロジェクトをプッシュしておきましょう。以下の手順で進めます。

  1. GitHubにログインし、新規リポジトリを作成
  2. 作成したリポジトリをローカルにクローン
  3. Unityプロジェクトのファイルをリポジトリに追加し、コミット&プッシュ
  4. .gitignoreLibrary/Temp/ などの不要なファイルを追加(Unityの標準.gitignoreを使用)

② GitHub Actionsのワークフロー設定

GitHub Actionsを使うために、プロジェクト内に .github/workflows/ ディレクトリを作成し、CI/CDのワークフローを設定します。

  1. GitHubリポジトリのルートディレクトリに移動
  2. .github/workflows/ フォルダを作成
  3. unity-ci.yml というYAMLファイルを作成し、以下の内容を入力
name: Unity CI/CD Pipeline

on:
push:
branches:
- main # mainブランチにプッシュされたときに実行
pull_request:
branches:
- main

jobs:
build:
name: Build Unity Project
runs-on: ubuntu-latest

steps:
- name: Checkout Repository
uses: actions/checkout@v3

- name: Cache Library Folder
uses: actions/cache@v3
with:
path: Library
key: Library-${{ runner.os }}-${{ github.sha }}
restore-keys: |
Library-${{ runner.os }}-

- name: Install Unity
uses: game-ci/unity-builder@v2
with:
unityVersion: 2021.3.16f1 # 使用するUnityのバージョン

- name: Build Project
uses: game-ci/unity-builder@v2
with:
targetPlatform: StandaloneWindows64 # Windows向けにビルド

- name: Upload Build Artifacts
uses: actions/upload-artifact@v3
with:
name: Build
path: build/StandaloneWindows64

③ GitHub Actionsのワークフローを実行

上記のファイルをリポジトリに追加し、コミット&プッシュすると、GitHub Actionsが自動的にUnityのビルドを実行します。

確認方法:

  1. GitHubのリポジトリページにアクセス
  2. 「Actions」タブを開く
  3. Unity CI/CD Pipeline が実行されていることを確認

成功すると、GitHubのArtifactsにビルド成果物が保存されます。
これを使えば、自動的にビルドを行い、必要に応じてデプロイできます。




3.2 Unity Cloud Buildを使った自動化

Unity Cloud Buildは、Unity公式のクラウドCI/CDサービスで、コードをプッシュすると自動でビルドが実行されます。GitHub、GitLab、Bitbucketと連携して使うことができます。

① Unity Cloud Buildのセットアップ

  1. Unity Cloud Build にログイン
  2. 新規プロジェクトを作成
  3. 「Cloud Build」タブ に移動し、「新しいターゲットを追加」

② リポジトリの接続

  1. 「ソースコントロール」 を設定(GitHub, GitLab, Bitbucket)
  2. 「認証」を行い、リポジトリへのアクセスを許可
  3. Unityプロジェクトのブランチ(例: main)を指定

③ ビルドターゲットの設定

  1. プラットフォームを選択(Windows, macOS, iOS, Android など)
  2. Unityバージョンを指定
  3. 「Buildボタン」をクリックしてテストビルドを実行

ビルドが成功すれば、次回以降はコードをプッシュするだけで自動でビルドが実行されます。

UnityプロジェクトにCI/CDを導入することで、ビルド・デプロイの自動化が可能になります。
GitHub Actionsは、カスタマイズが柔軟で無料枠もあるため、小規模なプロジェクトに最適です。一方、Unity Cloud Buildは設定が簡単で、公式サービスなので安定性があります。

どちらを選ぶかは、プロジェクトの規模やチームの運用スタイル に応じて決めるのが良いでしょう。




4. CI/CD導入のベストプラクティス

UnityプロジェクトにCI/CDを導入すると、開発プロセスが大幅に効率化されます。しかし、単にCI/CDを設定するだけでは十分ではなく、適切な運用方法を取り入れることで、より効果的なワークフローを実現できます。ここでは、CI/CD導入時に意識すべきベストプラクティスを紹介します。


4.1 Gitのブランチ戦略を最適化する

CI/CDを活用するには、適切なブランチ戦略を採用することが重要です。おすすめの戦略は以下の通りです。

① メインブランチ(main/master)

  • 安定版のコードのみを保持する
  • CI/CDを設定して、自動で本番環境(またはストア公開用のビルド)にデプロイできるようにする
  • 直接コミットはせず、Pull Request(PR)を介してマージする

② 開発ブランチ(develop)

  • 新機能や変更を統合するためのブランチ
  • 開発中のコードをマージしながら動作確認を行う
  • 自動ビルドを有効にして、変更が問題なく動くか確認する

③ フィーチャーブランチ(feature/〇〇)

  • 新機能やバグ修正を個別に作業するブランチ
  • PRを作成してレビュー後、developに統合する
  • コードの変更ごとにユニットテストとビルドが実行されるように設定する

④ リリースブランチ(release/〇〇)

  • リリース前の最終調整を行うブランチ
  • このブランチで最終的なバグ修正や微調整を行い、本番環境にデプロイする
  • 安定したらmainにマージしてリリースする

⑤ ホットフィックスブランチ(hotfix/〇〇)

  • 本番環境で発生した緊急のバグ修正用
  • 修正後はmainブランチに直接マージし、その後developにも反映する

💡 ポイント
・Pull Request(PR)を活用してコードレビューを徹底する
・CIを設定し、ブランチごとに適切なビルド・テストを実行する


4.2 ビルド時間を短縮する工夫

CI/CDの運用では、ビルド時間の短縮が開発スピードに直結します。以下の方法を活用しましょう。

① キャッシュを活用する

ビルド時にキャッシュを活用することで、処理速度を向上できます。

  • GitHub Actionsではactions/cacheを使用する
  • Unity Cloud Buildでは「Library」フォルダをキャッシュすることで、ビルド時間を短縮可能
name: Cache Library Folder
uses: actions/cache@v3
with:
path: Library
key: Library-${{ runner.os }}-${{ github.run_id }}
restore-keys: |
Library-${{ runner.os }}-

② 不要なアセットを削除

  • 使用していない3Dモデル・テクスチャ・音声データを削除し、プロジェクトのサイズを削減する
  • Addressables を活用して、必要なアセットだけをロードする

③ Incremental Build(差分ビルド)を活用

Unity Cloud BuildやGitHub Actionsを使う際、変更があった部分のみをビルドする設定を活用することで、時間短縮が可能です。

💡 ポイント
・キャッシュを活用し、無駄なビルド処理を削減
・不要なアセットを減らし、ビルドサイズを最適化
・差分ビルドを導入し、無駄な処理を省く




4.3 エラー発生時の通知設定

CI/CDの自動化では、エラーが発生した際にすぐに気づける仕組みが重要です。以下の通知設定を活用しましょう。

① GitHub Actionsの通知設定

  • CI/CDの失敗時にSlackやDiscordに通知を送る
  • GitHubのリポジトリの「Settings」→「Actions」→「Notifications」でメール通知を有効化
  • actions/checkoutactions/github-script を組み合わせて、Slackに通知を送ることも可能
name: Slack Notification
uses: rtCamp/action-slack-notify@v2
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_MESSAGE: "ビルドに失敗しました!エラーログを確認してください。"

② Unity Cloud Buildの通知設定

  • ビルド成功・失敗時にメール通知を設定
  • Slack Webhook を設定し、Slackに通知を送る
  • Webhook URL を設定すれば、カスタム通知を送ることも可能

💡 ポイント
・エラー発生時に即時通知し、素早く対応できる環境を整える
・SlackやDiscordを活用して、チーム全員が把握できるようにする


4.4 テストを自動化する

CI/CDの導入時には自動テストを組み込むことで、品質を担保できます。

① ユニットテスト

  • UnityのTest Runnerを使って、スクリプトの動作をテスト
  • NUnit を活用して、C#の単体テストを実装する
using NUnit.Framework;
using UnityEngine;

public class PlayerHealthTest
{
[Test]
public void PlayerTakesDamage()
{
Player player = new Player();
player.TakeDamage(10);
Assert.AreEqual(90, player.Health);
}
}

② UIテスト

  • Unity Test Framework を使用してUIの動作を自動テスト

③ プレイテストの自動化

  • Unity Automation を使い、シナリオテストを実施

💡 ポイント
・ユニットテストをCI/CDのワークフローに組み込む
・UIテストやプレイテストを自動化し、不具合の早期発見を狙う


まとめ

CI/CDを導入することで、Unityプロジェクトの開発がスムーズになります。ただし、ただ導入するだけでなく、ブランチ戦略の最適化・ビルド時間の短縮・エラー通知・自動テストなどを組み込むことで、より効果的な運用が可能です。

おすすめのベストプラクティスまとめ

  • Gitのブランチ戦略を明確化(main, develop, feature, release, hotfix)
  • キャッシュや差分ビルドを活用し、ビルド時間を短縮
  • CI/CDのエラー通知を設定し、問題発生時に即時対応
  • ユニットテスト・UIテストを組み込み、品質を向上

これらのポイントを活用して、より効率的なUnityのCI/CD環境を構築しましょう! 🚀




5. まとめ

ここまで、UnityプロジェクトでCI/CDを活用してビルド・デプロイを自動化する方法を解説してきました。最後に、CI/CDを導入することで得られるメリットや、次のステップについて整理しましょう。

✅ Unity開発におけるCI/CDの重要性

Unityのゲーム開発では、頻繁なビルドやデプロイ作業が必要になります。これらを手作業で行っていると、時間がかかる上にヒューマンエラーのリスクも高まります。CI/CDを導入することで、次のようなメリットが得られます。

  • 作業の自動化:ビルドやデプロイの手順を自動化することで、開発者の負担を軽減できる。
  • 安定した開発環境:継続的にテストやビルドを実行することで、不具合の早期発見につながる。
  • チーム開発の効率化:リモート環境でもスムーズにコードを統合でき、開発スピードが向上する。

特に、GitHub ActionsUnity Cloud Build を活用すれば、手軽にCI/CDを導入できるため、少人数のチームや個人開発者でも取り入れやすいのが魅力です。

✅ 効率的なワークフローの構築

CI/CDを活用することで、以下のようなワークフローを構築できます。

  1. コードのプッシュで自動ビルド開始
    → 開発者がGitにコードをプッシュすると、自動でビルドが開始される。
  2. テストの実行(必要に応じて)
    → 自動テストを組み込むことで、エラーの早期検出が可能。
  3. 成功したら自動デプロイ
    → ステージング環境や本番環境に自動デプロイされる。

これにより、開発のサイクルが高速化し、より多くの時間をゲームの品質向上に費やすことができます。

✅ 次のステップ

本記事では、UnityにCI/CDを導入する基本的な方法を解説しましたが、より高度な運用を目指すなら、次のようなステップにも挑戦してみましょう。

  • テストの自動化を組み込む(UnitテストやPlay ModeテストをCI/CDに統合)
  • 通知システムの導入(DiscordやSlackと連携して、ビルド結果をチームに通知)
  • ビルドの並列処理で時間短縮(クラウドビルド環境の最適化)
  • デプロイの拡張(モバイル向けストアやSteamへの自動アップロード)

これらを実装することで、よりスムーズで効率的なUnity開発環境を構築できます。

CI/CDを活用すれば、Unityのビルド・デプロイ作業を自動化し、開発のスピードと品質を大幅に向上させることができます。最初は設定に手間がかかるかもしれませんが、一度導入すれば、その後の開発が格段に楽になります。ぜひ今回の内容を参考に、自分のプロジェクトにもCI/CDを取り入れてみてください!




よくある質問(FAQ)

Q
UnityのCI/CDにはどのツールを使うべき?
A

GitHub ActionsやUnity Cloud Buildが代表的ですが、JenkinsやAzure DevOpsも活用できます。

Q
CI/CDを導入するのにプログラミング知識は必要?
A

基本的なYAMLの記述が必要ですが、テンプレートを活用すれば比較的簡単に導入できます。

Q
GitHub Actionsの無料枠でUnityのビルドは可能?
A

小規模なプロジェクトなら可能ですが、ビルド時間によっては有料プランが必要になることもあります。

タイトルとURLをコピーしました