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ライセンス認証に成功しました。