これは ドリコム Advent Calendar 2021 の9日目です。

自己紹介

こんにちは。AROW エンジニアの広井です。
わたしは「AROW」というプロジェクトで活動しています。AROW は、「誰でも秒で位置ゲーが作れる」をコンセプトに ドラクエウ◯ークやポケモンG◯が秒で作れるプロダクトを目指しています。

今回の記事について

以前、Android/iOSのビルドが必要なプロジェクトについて別々のクラウドビルドを利用していました。記事は以下です。
現在、GitHubで開発中のUnityプロジェクトについて、GitHub Actionsを利用してAndroid/iOSビルドをしているものがあります。
今回は、このGitHub Actionsの利用についてまとめてみます。

この記事では主にクラウドビルドの差についてまとめます。GitHub Actionsの導入についてはこの記事ではまとめてません。

記事の流れについて

  • GitHub Actionsでのビルド
  • 別のクラウドビルドとの比較

GitHub Actionsでのビルド

UnityプロジェクトをAndroid/iOSビルドをするようにしました。Unityプロジェクトはクラウドのランナーだと環境の用意が大変だったことがあるので、今回はリポジトリにセルフホストランナーを登録し利用するようにしました。

セルフホストランナーとは

GitHub Actionsは通常、用意されたランナー=ビルド機を利用できます。 セルフホストランナーとは、自分で用意したマシンをランナーとして設定し利用することです。 自分で用意したマシンとは実PCのため、リモートデスクトップでUnityのインストールをしてビルド環境の用意ができました。

別のクラウドビルドとの比較

以前利用していたAWS CodeBuildやCircleCIとの差を以下の表にまとめました。
項目AWS CodeBuildCircleCIGitHub ActionsGitHub Actions + セルフホストランナー
ビルド機のメンテナンス
不要不要不要必要
macOSの利用(iOSビルド)不可可能不可可能
Unityの利用不明可能不明可能
ランナーの稼働コスト有料有料有料なし
  • ビルド機のメンテナンスとは、自分でマシンやビルド環境の用意の必要有無のことです。
    • クラウドのランナーはマシンのメンテナンスが必要なく、ビルド環境は Docker イメージを利用して定義的に用意することができるため、メンテナンスが不要です。
    • セルフホストランナーはマシンのメンテナンスが必要で、ビルド環境を変化するには直接マシンを変更する必要があるため、メンテナンスが必要です。
  • macOSの利用とは、iOSビルド環境の用意のことです。
    • CircleCIはmacOSをランナーとして指定、利用することができます。
    • GitHub は任意のマシンをセルフホストランナーとすることができるため、macOSをセルフホストランナーとすることができます。
  • Unityの利用とは、Unity のインストールとライセンス認証のことです。
    • クラウドのランナーだとUnity3d docker image (現在 https://hub.docker.com/r/unityci/editorで配信されている様子)を利用することでビルドが可能です。コマンドラインでUnityライセンス認証を通すなどの操作が必要です。以前 CircleCI で確認できましたが他のクラウドのランナーでも可能だと考えています。
    • セルフホストランナーだとGUIでの操作なので、Unityのインストールとライセンス認証が容易にできました。
  • ランナーの稼働コストとは、ランナーを利用する際にかかる料金です。
    • クラウドのランナーは、それぞれ一部無料ですが稼働時間に応じて課金されます。
    • セルフホストランナーは、(もちろんPCの電気代などはありますが)無料でいくらでも利用できます。

まとめ

セルフホストランナーを利用することで普段使っている環境と同じ方法でビルド環境の用意ができました。Jenkins Agentの用意などですでにビルド環境がドキュメント化されている状況であればGitHub Actionsへの移行は気軽に進められそうです。
別のクラウドビルドと比較すると、主にメンテナンスが必要になった代わりに稼働コストを気にする必要がなくなりました。
今回は触れていないですが GitLabCIにもセルフホストランナーの仕組みがあり同じように利用できています。こちらはボットを長時間走らせるのにセルフホストランナーを使っているので稼働コスト面で大きなメリットを得ていました。

さいごに

10日目はおがわななさんです。
ドリコムでは一緒に働くメンバーを募集しています!募集一覧はコチラを御覧ください!