こんにちは、開発の半沢 匠です。
今回は、CI(継続的インテグレーション)ツール「Jenkins」を使ってUnity開発をもっと楽にしよう!(WebPlayer版 導入編)になります。※Macへの導入方法を解説いたします。
■Jenkins導入のメリット
・いつでも実行可能な最新版のモジュールが、定期的に自動で作成される
・ボタンをポチっと押すだけで、いつでも実行可能な最新版のモジュールが作成できる
・モジュール履歴を残せる→バグ早期発見に繋がる(どのバージョンでバグが出たのか確認できる)
■今回行うこと
1.SVNからの最新版取得
2.UnityでのビルドでWebPlayer作成
3.Webへのアップロード
4.1~3を15分毎に自動で行う
■準備
- 以下を用意・構築しておく
- Mac
- SVN環境
- Unity
■導入
▼Unity側の準備
- UnityプロジェクトをSVNにコミット
- そのプロジェクト内にビルドスクリプトを作成し、Editorフォルダ内に配置する
using UnityEngine; using UnityEditor; using System.Collections; public class MyBuilder { [UnityEditor.MenuItem("Tools/Build Project AllScene")] public static void BuildProjectAllScene() { EditorUserBuildSettings.SwitchActiveBuildTarget( BuildTarget.WebPlayer ); string[] allScene = new string[EditorBuildSettings.scenes.Length]; int i = 0; foreach( EditorBuildSettingsScene scene in EditorBuildSettings.scenes ){ allScene[i] = scene.path; i++; } BuildPipeline.BuildPlayer( allScene, "WebPlayer", BuildTarget.WebPlayer, BuildOptions.None ); } }
▼Jenkinsインストール
- Javaのランタイムをインストール(Lionのみ必要になります)
- http://jenkins-ci.org/ から MaC OS X パッケージをDL&展開
- /Library/LaunchDeamons/org.jenkins-ci.plistの下記箇所を編集
- JENKINS_HOME を任意のパスに変更(Jenkinsのワークスペースになります)省略可
- GroupName をdeamonからログインアカウントの所属グループに変更
- UserName をdeamonからログインアカウントの名前に変更
- ワークスペースの権限を自分の所属グループ&自分のアカウントに変更
- 初期値のワークスペースの場合は下記の通り
- sudo chown -R ユーザー名 /Users/Shared/Jenkins/Home
- sudo chgrp -R グループ名 /Users/Shared/Jenkins/Home
- システム環境設定を起動し、共有→Web共有をオンに設定します
- ブラウザで http://[PCのIPアドレス]:8080/ にアクセスでJenkinsが表示される
--- ここからは、Jenkins(ブラウザ)上での作業になります。 ---
▼プラグインの追加・設定
- プラグインの追加
- ホーム→Jenkinsの管理(左メニューリンク)→プラグインの管理(コンテンツリンク)→利用可能(タブ) を選択
- Jenkins Unity3d plugin にチェック
- SCP Plugin にチェック
- 下の「ダウンロードして再起動後にインストール」ボタンを押下
- 再起動されるまで待つ
- プラグインの設定
- ホーム→Jenkinsの管理 (左メニューリンク) →システムの設定 (コンテンツリンク) を選択
- Unity 3d
- 名前:適当(例:Unity3.5.1f2)
- インストールディレクトリ:/Applications/Unity/Unity.app/
- SCPリポジトリホスト で設定
- 出来上がったモジュールの公開先をこちらのプラグインで設定します
- ホスト名、ポート、ルートリポジトリパス、ユーザー名、パスワード/パスフレーズ、秘密鍵を設定
- 左下の「保存」ボタンを押す
▼ジョブ作成
- 新規ジョブ作成 を選択
- ジョブ名:適当(例:Unity-TestProject)
- フリースタイル・プロジェクトビルド を選択
- 「OK」ボタンを押す
▼ジョブ設定
- ソースコード管理システム
- Subversion を選択
- リポジトリURL:プロジェクトのSVNパス
- 例)svn://localhost/Unity/TestProject
- ローカルモジュールディレクトリ:ローカルのプロジェクトのパス(※パスはワーキングスペースからなので注意)
- 例)./Unity/TestProject
- チェックアウト方式:svn revert'してから'svn update'を実行 を選択(任意のものでOK)
- ビルド・トリガ
- こちらで定期を指定する。今回は15分に1回リポジトリをチェックし、更新があれば実行するように設定
- SCMポーリング を選択
- スケジュール:下記を記述
- */15 * * * *
- ビルド
- ビルド手順の追加:Invoke Unity3d Editor を選択
- Unity 3d installation name:プラグインの設定で指定した名前を選択
- Editor command line arguments:下記を入力
- -quit -batchmode -executeMethod MyBuilder.BuildProjectAllScene
- ビルド後の処理
- 成果物をSCPリポジトリに公開 を選択
- SCPサイト:プラグインの設定で指定したホスト名を選択
- アップロードファイル:追加ボタンを押す
- ソース:ローカルのアップロードファイル(出来上がったモジュールフォルダ)を選択
- 例)Unity/TestProject/WebPlayer
- 送信先:アップロード先を選択(フォルダ名にビルド番号・リビジョンなどを追記するとよい)
- 例)No${BUILD_NUMBER}_Rev${SVN_REVISION}
■動作確認
- 先ほど作成したジョブを選択し、左メニューから「ビルド実行」をクリック
- Unityビルドが実行され、モジュールがローカル上に作られた後、Webにアップロードされる
これで、15分に1回は最新版のモジュールが自動で作成され自動でWeb公開されるようになりました!
また、■動作確認で行った「ビルド実行」をポチッとするだけで、
いつでも最新版のモジュール作成&公開が行われるようになりました!
◎導入してみて
◎導入してみて
- 「ビルド実行」をポチッと押すだけなのが本当に楽!
- UnityのUI上でビルドを実行し、ビルドが完了するまで待った後に、出来上がったファイルを、SCPツールでWeb上にアップっといった作業が一切必要無くなった。
- ビルド&公開作業が自動化された為、その間の時間を丸々他作業に当てれるようになった!
Jenkinsは、他にも便利な機能がたくさんあり大変便利なツールなので是非導入してみてください。
0 件のコメント:
コメントを投稿