[CI] concourseでUnityのビルドをCIしてみる – 動作編

前回の導入編につづいて、iOSのビルド作業ができるところまでやってみます!
(今回はArchiveまでを行ってみます。IPA出力は今回は割愛します。) また、この記事では事前にUnity側でTeam IDを設定していることを想定しています。 (Developer Programに入っている必要があります)

下記のSigning Team Idにわすれず入力しておきましょう
さて、通常はUnity上でiOSビルドを行いますが、CIではそのようなことができないのでUnityをbatchmodeで起動して
ビルド実行用のメソッドを叩けるようにしておく必要があります。

下記クラスをAssets/EditorにBatchBuild.csを作成しておきましょう。
Assets/Editorでなくても良いですが、必ずEditorディレクトリ配下に作成しておきます。

あ、Unityのプロジェクトはgithubに存在している想定です。 次にパイプラインに設定するための構成をyamlファイルで作成します。
動作的には、resourcesで指定したリポジトリのmasterブランチが更新されたらjobが起動するようになっています。

ビルドしたいプロジェクト自体は別の場所でcloneしてあり、そちらを使い回すような想定にしています。
Unityのプロジェクト自体はサイズ大きくなることが多くcloneやSwitch Platformにも時間がかかると思われるためです。

そんなことない、という場合はInputを設定すればOKです。
ファイル名はbuild_unity.ymlとしておきます。 ファイルが作成できたら、導入編でいれたflyコマンドを使って登録しましょう。 Apply configuration?と聞かれるのでyを選択します。 これで、Webを見てみるとbuild_unityが追加されてるはずなので、pausedの横にある再生マークをおして動くようにしておきます。
さらにbuild_unityをクリックすると詳細が見れるので、右上にあるプラスボタンを実行するとpipelineが動き出します。
もしどこかで失敗してしまう場合はビルドしているコマンドをローカルで実行してみてください。
今回の場合は最後にARCHIVE SUCCESSEDと出ればうまく動作した状態になります。
IPA出力までやりたいんじゃ!という方はこちらなどを参照いただけると….! concourseで素敵なUnity CIライフが過ごせると良いですね…!
以上です。

■ 参考 コンテナ側を使ったテストもやってみたのでyamlを載せておきます。