visual studio onlineとunityを使った バージョン管理と...

Post on 21-Jan-2018

28 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Visual Studio OnlineとUnityを使ったバージョン管理と継続的インテグレーション

2015年7月22日

日本マイクロソフト株式会社 セミナールーム C・D

中村 薫

自己紹介

中村 薫TFSUG主宰

フリーランスで主にDepthセンサー系の仕事をしています

アプリケーション開発、講演、

ハンズオンセミナー、執筆など

Microsoft MVP for Visual Studio ALM (Apr 2012 - Mar 2014)

Microsoft MVP for Kinect for Windows (Apr 2014 - Mar 2016)

http://www.naturalsoftware.jp/

2

お品書き

1. Visual Studio Online(VSO)とは

2. Unityアプリの開発環境

3. Unityアプリのバージョン管理

4. Unityアプリの自動ビルド

5. Unityアプリの自動テスト

6. Unityアプリの継続的インテグレーション

今日の概要

•Unityを題材にしていますが、Visual Studio Onlineの外部ビルドという側面があります。

•ほかの自動ビルド、自動テストでも考え方は使えます。

今日の流れ

1. Unityアプリを

2. Visual Studio Onlineでビルドして

3. 実行ファイルを作ってもらう

今日使うもの

• 開発用環境• Unity 5.1.2f1

• Visual Studio 2015

• Visual Studio Tools for Unity 2015

• Visual Studio Online

• GitHub for Windows

• ビルド用環境• 開発環境と同じもの

• できるだけ別のPCが良い

Visual Studio Online(VSO)とは

Visual Studio Onlineとは

https://www.visualstudio.com/products/what-is-visual-studio-online-vs

Visual Studio Onlineとは

• コードリポジトリ、タスク管理、テスト管理、自動ビルドなど、開発に必要な機能をそろえたツール。

• Team Foundation ServerはVisual Studio Onlineのスナップショット。

• リポジトリはGitを選択可能でpull request機能あり。

• タスク管理はScrumを利用可能。タスクカンバンも。

• 自動ビルドはWindowsアプリならVSO上で、Windows以外でもビルドサーバー上で可能。

• 無償利用から始められ、ビルドやテストでの従量課金など。

https://www.visualstudio.com/products/what-is-visual-studio-online-vs

Unityアプリのバージョン管理

Unityアプリの特長

•動画や画像、音声データなどが多く入るため、データ量が大きくなる

•1ファイルあたりのサイズも大きい

ファイル容量の増加

Unityアプリのバージョン管理どうしてる?

• GitHub?

• Bitbucket?

• Visual Studio Online?

• Dropbox?

• Gitリポジトリ?

• SVN?

• ファイルサーバー?

• してない?

有名なリポジトリサービス

•GitHub•ファイルあたり100MB

•Bitbucket•ファイルあたり2GB

•Visual Studio Online•いまのところ上限なし•テラバイトくらいまでは大丈夫らしい

VSOでのGitリポジトリ作成からコミットまで

VSOでのGitリポジトリ作成からコミットまで

1. VSOでサイトを作成

2. Visual Studioでclone

3. GitHubからUnity用のgitignoreを取得

4. GitHub for Windows でcommit,push

※個人的に好きな手順です

VSOでサイトを作成

https://www.visualstudio.com/products/what-is-visual-studio-online-vs

コラム:リポジトリの選択基準

• Team Foundation Version Control(TFVC)• Visual Studioのみで開発するようなプロジェクト

• リポジトリに入れるファイルを自動で選択

• Git• その他

※個人的な基準です

Visual Studioでclone

自動的にVisual Studioが起動し、リポジトリをcloneする

gitginoreを探す

https://github.com/github/gitignore

Unityプロジェクトを作成

GitHub for Windows でcommit,push

Unityアプリの継続的インテグレーション

前提

•現状ではVSO単体でUnityアプリのビルドができないので、外部のビルドサーバーが必要• VSOのビルドサーバーにUnityがないため

外部マシンを利用したCIの種類

•Service Hookを利用したビルド•外部のJenkinsを起動する• Jenkinsがインターネット上に存在する必要あり

•vso-agentを利用したビルド•コマンドラインからビルドする•ビルドマシンがローカルでも良い

Service Hookを利用したビルド

Service Hookpush

vso-agentを利用したビルド

vso-agentの呼び出しpush

Unityでの自動ビルド

•Unityにはバッチモードがある

•コマンドライン引数を組み合わせることで、自動ビルドや自動テストが可能

Unityでの自動ビルド

http://docs.unity3d.com/ja/current/Manual/CommandLineArguments.html

Unityの自動ビルド

ビルドスクリプト

デモ時注意:push時にUnityを閉じておくこと

http://docs.unity3d.com/ja/current/Manual/BuildPlayerPipeline.html

コマンドラインからビルド

> "C:¥Program Files¥Unity¥Editor¥Unity.exe“-quit -batchmode -executeMethod MyEditorScript.PerformWindowsBuild

Unityの自動テスト

Unity Test Tools

• NUnitベース

• Unityエディター上でテストができる• ユニットテスト

• インテグレーションテスト

https://www.assetstore.unity3d.com/jp/#!/content/13802

Unityエディター上でテスト

Unityエディター上でテスト

コマンドラインからテスト

> “C:¥Program Files¥Unity¥Editor¥Unity.exe” -quit -batchmode -executeMethod UnityTest.Batch.RunUnitTests

テスト結果

これで準備ができました

VSOの設定

手順

1. vso-agentをインストール

2. ビルド定義を作成

3. ビルド

vso-agentをダウンロード

PowerShellを実行

vso-agentの設定

vso-agentが接続された

ビルド定義を作成

• 空のビルド定義

• Utility/Command Lineを追加• 自動ビルド用

• Utility/Command Lineを追加• 自動テスト用

• Test/Publish Test Result• 自動テスト結果を保存

• Build/Publish Build Artifactsを追加• ビルド成果物を保存

自動ビルドの設定

自動テストの設定

テスト結果を保存する

成果物を保存する

ビルドを実行する

ビルド経過が表示される

ビルドが成功する

ビルド結果を確認する

テスト結果を確認する

成果物をダウンロードする

自動ビルドされた成果物

うまくいかないとき

•ビルドマシンでコマンドラインからビルドを試す

•Unityのバージョンは同一?

今の課題

•ビルド、テストが失敗した時の理由がわからない

•テスト結果が反映されない

参考

• Build your Visual Studio projects• https://www.visualstudio.com/get-started/build/build-your-app-vs

• Jenkins with Visual Studio Online• https://www.visualstudio.com/get-started/integrate/service-hooks/jenkins-and-vso-vs

www.naturalsoftware.jp

62

top related