2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GameCIでUnityのビルドを自動化してみる。[Unity,GithubActions]

2
Posted at

最近共同開発でUnityを使うことが増えてきたのですが、その中でUnityのビルドを自動化できるといざビルドして動かしたい時に困らなくていいよなと感じていました。

ただ、Unityのアプリケーションをビルドするには、Unityのエディタ環境(ビルド環境)をGithubActions上で準備する必要があったりします。

今回はGithubActions上でUnityのCI環境を簡単に組めるGameCIの簡単な使い方について調べてみました。

GameCIとは

Unityにおける自動テスト、ビルド、デプロイを行ってくれるCIツールです。

CI(継続的インテグレーション)とは

自動テストや自動ビルドを行うことでコードの品質を維持しながら、開発効率を上げていく手法です。
CIを導入することで

  • チーム生産性の向上
  • 自動デプロイによる市場投入への時間短縮
  • 高品質な状態でのリリース
    というメリットを得られることができます。

GameCIが用意しているGithubActionsのActionsを使用することで、簡単に自動ビルド等を行うことができます。

実際にCIを組んでみる

下準備

下準備として以下の3つ情報が必要になります。

  • Unityのアカウントemailアドレス
  • Unityのアカウントパスワード
  • Unityライセンス

Unityのライセンスは、PersonalやProなどUnityを使用する際に選択したプランに紐づいた証明書のことです。

Unityライセンスを使用してGithub上でUnityを使うためにアクティベーションを行います。

ulfファイルを取得する

ulfファイルを使ってアクティベーションをおこないます。

ulfはUnity Licence Fileの略らしい

各OSごとにulfファイルは下のディレクトリに行われています。

Windows: C:\ProgramData\Unity\Unity_lic.ulf
Mac: /Library/Application Support/Unity/Unity_lic.ulf
Linux: ~/.local/share/unity3d/Unity/Unity_lic.ulf

しかし自分の手元ではulfファイルが存在しないため、ulfファイルを発行する必要があります。

発行するためにまずUnityHubの設定画面から下のライセンス画面が表示されます。

image.png

ライセンスリクエストによる認証を選択します

image.png

すると手順が表示されるので、以下の手順を順番に行っていきます。

image.png

まず、ライセンスリクエストをダウンロードを選択して、alfファイルを取得します。

alfは、Activation Licence Fileのこと

次に、URLを選択します。
alfファイルをuploadします。

image.png

すると、次のページが表示されます。

image.png

Proライセンス等ではシリアルナンバーがありますが、Personalライセンスはシリアルコードがありません。

学生が使うアカウントや一般使用する場合は、Personalライセンスだと思うのでこのままだと進むことができません。

本来は、Personalアカウント用に表示される部分がオフになってるのでオンにしようと思います。

2025/3/1現在の話なので表示されるように今後なってるかもしれません。

デベロッパーツールで下のoption option-personal clearクラスの部分のcssでdisplay: none;をオフにします。

  • オン
    image.png

  • オフ
    image.png

すると、下の画面が出てくるのでI don't use Unity in a professional capacityを選択します。

image.png

ここまでくるとulfファイルがダウンロードできるようになるのでダウンロードします。
image.png

Githubのsecrets変数に格納する

リポジトリのSettingsに下のようにSecrets変数を設定できます。

各情報を下の変数名に割り当てて設定します。

  • UNITY_EMAIL:Unityアカウントのメールアドレス
  • UNITY_PASSWORD:Unityアカウントのパスワード
  • UNITY_LICENSE:ulfファイルの中身

image.png

ymlを書いていく

.github/workflows内にymlファイルを書いていきます。

今回は自動ビルドを行いたいので下のように記述します。

.github/workflows/build.yml
name: build.yml
on:
  workflow_dispatch: {} //手動でビルドできるように
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4 //リポジトリをクローン

      - name: build
        uses: game-ci/unity-builder@v4 //ビルド
        env:
          UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} //secrets変数を使用する
          UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: StandaloneOSX //MacOSを選択する
          unityVersion: 6000.0.36f1

actions/checkoutは、Actions内にリポジトリをクローンします。

- name: checkout
  uses: actions/checkout@v4

そこからGameCIのActionのgame-ci/unity-builderを使ってビルドを行います。

 - name: build
   uses: game-ci/unity-builder@v4 
   env:
     UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} 
     UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
     UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
   with:
     targetPlatform: StandaloneOSX 
     unityVersion: 6000.0.36f1

secrets.<変数名>とすることでSecrets変数にアクセスすることができます。
targetPlatformはMacOSに対応しているStandaloneOSXを指定します。
unityVersionでUnityのversionを指定します。

では、このactionsを走らせたいと思います。
Github上の場面からActionsを選択して、先ほど執筆したymlファイルを選択します。
次にRun Workflowsを押すことで手動でActionを走らせることができます。

image.png

CIが通ると下のような画面が表示されます。
image.png

buildにチェックマークがついたらビルド成功です!

デプロイも自動化する

デプロイも自動化できるのでやってみようと思います。

name: build.yml
on:
  workflow_dispatch: {}
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v4

      - name: build
        uses: game-ci/unity-builder@v4
        env:
          UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
          UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: StandaloneOSX
          unityVersion: 6000.0.36f1
          
      - name: Upload Build
        uses: actions/upload-artifact@v4 //デプロイ
        with:
          name: Build //ビルドしたファイル名
          path: build //ビルドしたファイルのパス

actions/upload-artifact@v4を使用することでデプロイできます。
nameにはビルドしたファイル名、pathビルドしたファイルのパスを指定します。

uses: actions/upload-artifact@v4 
with:
    name: Build
    path: build

これで先ほどと同じようにデプロイしてみようと思います。
Artifactsにデプロイ結果が表示されます。

image.png

ビルドしたファイルをダウンロードして動かしてみます。

そのまま開くのがセキュリティ的にできないので権限を変えます。

xattr -rc <ダウンロードしたファイルのパス>

自己責任でお願いします。

こんな感じで開けました!
image.png

最後に

今回はGameCIを使った、GithubActionsでの自動ビルドとデプロイの方法を調査しました。

GameCIでは自動テストも行えるのですが、あまり自分はやったことがなかったので今回はやりませんでしたが、どこかのタイミングでやりたいと思います。

Unity関連の記事

GithubActionsの記事

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?