UnityProjectをビルドしたときに自動でテストしてその結果をビルドして共有できるCIツール(継続的インテグレーション)という物があると知り、試しにCIツールのJenkinsの導入をしてみました。
Jenkinsでできること
ビルドやテストの自動化
(他にもいろいろできるはずなんですが、私があまりチーム開発での経験が無くてメリットを発見できませんでした)
Jenkins本体のDL
公式サイトよりインストーラーをDLしてきます
https://www.jenkins.io/zh/
LTSの自身のOSに合ったものを選択してします
DLしたインストーラーを起動し、インストール先を指定します
今回はWindows向けの物をDLしてきました
インストール後、サーバーが起動するので、ブラウザよりlocalhost:8080にアクセスする
初回アクセス時には管理パスワードを要求されるので画面に表示されているパスを参考に自動で生成されているパスワードを探しに行ってコピペする
Install suggested pluginを選択して推奨プラグインをインストールする
管理者アカウントを作成して初期設定は完了
必要があればJenkinsの管理よりドメインの設定する
必要なプラグインを設定する
今回はUnityのビルドをするのでUnity3dを入れます
Jenkinsの管理よりプラグインの管理を選択、利用可能タブを選択してフィルターにUnityと入れればUnity3dが出てくるので、インストールを選択します
インストール後Jenkinsの管理からGrobal Tool Configurationを選択、Unity3dの項目でインストール済みのUnityを追加して名前を付けてインストールされているUnityの場所を指定してください
この際指定するのはexeファイルではなく、Editorフォルダの一つ上の階層を指定する必要があります
Gitの設定
Jenkinsの管理からGlobal Tool Configurationを選択し、インストール済みGitを選択、任意の名前を付けてgit.exeの場所を指定してください
この際指定するのは.exeファイルです
Unity側の準備
ビルドするメソッドを作成(コード貼り付け)
Jenkinsのビルドprojectの設定
ビルドの処理にUnity3Dエディタを呼び出すを追加し、projectに合ったJenkinsが参照しているUnityを選択、コマンドライン因数として
-batchmode -quit -projectPath “projectのパス” -executeMethod “ビルドするクラス.メソッド”
を指定する
-batchmode (GUIを出さずにUnityを起動する)
-quit (処理後にUnityを終了する)
-projectPath (指定したパスのprojectが起動する、ルートはJenkinsのworkspaceディレクトリ)
-executeMethod (project内のメソッドを起動する。Class.Meshodで指定する)
ビルド後の処理に成果物を保存を指定し、成果物としてDLしたいファイルのパスを指定するとビルド結果ページで該当ファイルをDLできる
結果をSlackに通知するプラグインもあり、それを用いるとチームへの共有がうまくできそうな気がする
保存してビルド実行を選択するとビルドが実行される
ソースコード管理にGitを指定してリポジトリと認証情報を指定し、ブランチを指定することでGitで管理してるprojectをビルドできる
webhookを使うことでGithubにpushしたときに自動でビルドが走るという処理も作れるらしい