気ままなUnityエンジニアブログ

新米Unityエンジニアが送る解説アウトプットブログです。Twitter : @UjinUnity

MENU

CircleCI + Docker +Unity でクラウドビルドを試してみた(メモ書き)

スポンサーリンク

メモ書きです。
参考にしたサイト様
Unityでテストを書いてCircleCIでコミットのたびにテストをチェックする | 測度ゼロの抹茶チョコ
neue cc - CircleCIでUnityをテスト/ビルドする、或いは.unitypackageを作るまで


・DockerにUnityのコンテナデータを取得します。
gableroux/unity3d/tags

( 最終更新は2年前となっており、最も最新のバージョンはUnity2020になります。)
今回はUnity2019を使用します。

Dockerにて以下のコメントを実行します。

docker run -it gableroux/unity3d:2019.1.14f1 bash

/opt/Unity/Editor/Unity -quit -batchmode -nographics -logFile -createManualActivationFile
cat Unity_v2019.1.14f1.alf

・ライセンスファイルの元となるxmlを、catでコピー&ペーストしてUnityv2019.1.14f1.alfという名前で保存します。
その後以下のURLにアクセスして保存したalfファイルをアップロードすると、Unity_v2019.x.ulf ファイルをもらえます。
Unity - Activation

・取得したライセンスファイルをcircleCIで承認されるように対応します
CricleCIのプロジェクト環境に登録する方法もありますが、筆者が試したところライセンス取得に失敗するため、別の方法を試します。

export UNITY_KEY=任意の英数字
openssl aes-256-cbc -d -base64 -A -in DLしたUnity_v2019.x.ulfを保存してあるファイルパス

こちらを実行してライセンスファイルを変換します。
opensslでBASE64エンコードされた文字列をdecryptしようとしたら769bytes以上になるとエラーになる件 - だいたいよくわからないブログ


・CircleCIにGithubの登録などを行う
CircleCIでUnityのTest&Buildを雰囲気理解で走らせた - Qiita

・config.ymlに記載する
commands:
unity_activation:
parameters:
unity_license: { type: string }
steps:
- checkout
- run: openssl aes-256-cbc -d -base64 -A -in .circleci/Unity_v2019.x.ulf-cipher -k ${UNITY_KEY} >> .circleci/Unity_v2019.x.ulf -md md5
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -silent-crashes -logFile -manualLicenseFile .circleci/Unity_v2019.x.ulf || exit 0


・CircleCI → Project → Environment Variables で先ほど登録したUNITY_KEYを登録します。

上記を行うことで、CircleCI側でUnityライセンス認証に成功しました。