visual studio onlineとunityを使ったバージョン管理と継続的インテグレーション

61
Visual Studio OnlineとUnityを使った バージョン管理と 継続的インテグレーション 2015年7月22日 日本マイクロソフト株式会社 セミナールーム C・D 中村 薫

Upload: kaoru-nakamura

Post on 13-Aug-2015

1.313 views

Category:

Technology


0 download

TRANSCRIPT

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

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

2015年7月22日

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

中村 薫

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

自己紹介

中村 薫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

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

お品書き

1. Visual Studio Online(VSO)とは

2. Unityアプリの開発環境

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

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

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

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

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

今日の概要

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

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

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

今日の流れ

1. Unityアプリを

2. Visual Studio Onlineでビルドして

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

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

今日使うもの

• 開発用環境• Unity 5.1.2f1

• Visual Studio 2015

• Visual Studio Tools for Unity 2015

• Visual Studio Online

• GitHub for Windows

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

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

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

Visual Studio Online(VSO)とは

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

Visual Studio Onlineとは

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

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

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

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

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

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

Unityアプリの特長

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

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

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

ファイル容量の増加

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

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

• GitHub?

• Bitbucket?

• Visual Studio Online?

• Dropbox?

• Gitリポジトリ?

• SVN?

• ファイルサーバー?

• してない?

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

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

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

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

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

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

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

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

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

1. VSOでサイトを作成

2. Visual Studioでclone

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

4. GitHub for Windows でcommit,push

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

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

VSOでサイトを作成

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

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

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

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

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

• Git• その他

※個人的な基準です

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

Visual Studioでclone

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

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

gitginoreを探す

https://github.com/github/gitignore

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

Unityプロジェクトを作成

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

GitHub for Windows でcommit,push

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

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

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

前提

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

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

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

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

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

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

Service Hookを利用したビルド

Service Hookpush

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

vso-agentを利用したビルド

vso-agentの呼び出しpush

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

Unityでの自動ビルド

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

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

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

Unityでの自動ビルド

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

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

Unityの自動ビルド

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

ビルドスクリプト

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

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

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

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

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

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

Unityの自動テスト

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

Unity Test Tools

• NUnitベース

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

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

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

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

Unityエディター上でテスト

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

Unityエディター上でテスト

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

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

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

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

テスト結果

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

これで準備ができました

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

VSOの設定

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

手順

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

2. ビルド定義を作成

3. ビルド

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

vso-agentをダウンロード

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

PowerShellを実行

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

vso-agentの設定

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

vso-agentが接続された

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

ビルド定義を作成

• 空のビルド定義

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

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

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

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

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

自動ビルドの設定

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

自動テストの設定

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

テスト結果を保存する

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

成果物を保存する

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

ビルドを実行する

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

ビルド経過が表示される

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

ビルドが成功する

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

ビルド結果を確認する

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

テスト結果を確認する

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

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

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

自動ビルドされた成果物

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

うまくいかないとき

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

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

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

今の課題

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

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

Page 60: Visual Studio Onlineと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

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

www.naturalsoftware.jp

62