KEMBAR78
Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう | PPTX
Azure DevOpsとVisual Studio
App Centerをモバイルアプリの
CI/CDに活用しよう
2020/02/07
クラウドモバイルビルド/テスト Meetup
Japan Xamarin User Group なかしょ(中島進也)
Profile
• 名前:なかしょ(中島 進也)
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、LeanXP、DevOps、Xamarin、mBaaS、Tizen
• 主な参加コミュニティ
JXUG 、JPFUG 、.NETラボ、Cogbot、Teratail、TestNight、XPJUG
※本資料は私個人の意見であり、所属企業・部門見解を代表する
ものではありません。
2
3
今日の目的 Visual Studio
App Centerも
Azure DevOpsも
GitHub Actions
もない!?
4
以下のように、皆さんの心に残ること
Visual Studio App Center
Visual Studio App Centerの機能
6
自動ビルド・単体テスト
実機デバイスでUIテストを自動化
テスターやストアへのアプリ配布
クラッシュログの収集
使用状況の分析
ユーザ認証・ID管理
CI/CD
MBaaS
データの管理・保持・同期
プッシュ通知
DATA
Visual Studio App Centerの機能
7
自動ビルド・単体テスト
実機デバイスでUIテストを自動化
テスターやストアへのアプリ配布
クラッシュログの収集
使用状況の分析
ユーザ認証・ID管理
CI/CD
MBaaS
データの管理・保持・同期
プッシュ通知
DATA
https://devblogs.microsoft.com/appcenter/app-center-mbaas-retirement/
MBaaS Service
Retirement
Focusing App Center
on DevOps
今日は
ここ
まずはログイン
Azure Active Directory
でユーザ管理可能
対象のプラットフォーム
• iOS
Objective-C, Swift, React Native, Cordova, Xamarin, Unity
• Android
Java, Kotlin, React Native, Cordova, Xamarin, Unity
• Windows
UWP, WPF, WinForms, Unity
• macOS, tvOS
Objective-C, Swift
• Custom
配布とIssue管理のみ
9
プラットフォームによっ
ては提供されていない
サービスがある。
https://docs.microsoft.com/en-us/appcenter/general/platform-service-matrix
iOSのビルド設定
• Project/Workspace
• Shared Scheme
• Xcode Version
• Builde Script(pre, post)
• Build frequency
Every push or Manually
• Automatically increment
build number
BuildId, Timestamp
• Run XC Test Tests
10
iOSのビルド設定
• 環境変数
• 署名(WatchやExtentionも可)
• 実機の起動確認
• アプリの配布
• ステータスバッジ
11
ビルド失敗例
12
• ビルドログがダウン
ロードできる
• 対象のコミットにすぐ
飛べる
ビルド成功例
13
• ビルドログがダウン
ロードできる
• ビルド成果物がダウ
ンロードできる
• 対象のコミットにす
ぐ飛べる
• 配信機能を実行でき
る
実機テスト
以下のテストを実行可能
• Appium (Java with JUnit) for Android and iOS
• Espresso (Java) for Android
• XCUITest for iOS
• Calabash for Android and iOS
• Xamarin.UITest for Android and iOS
14
https://docs.microsoft.com/en-us/appcenter/test-cloud/
使用可能実機
• 691パターンの
機種×OSが使用可能
(2020/02/06現在)
• フラッグシップ機の導
入は早い
• 古い機種も対応
Androidは2.2.2
iOSは9.0.2
15
https://docs.microsoft.com/en-us/appcenter/test-cloud/devices
テスト失敗
16
テスト詳細
17
テストケースを選択する
とケース毎のキャプチャ
やログが閲覧できる。
テスト成功
18
Distribute
• 配信方法は3つ
グループ配信
App Centerによる配信
登録したユーザにメールで通知
未登録のユーザにも配布できるリンクが作成可能
グループ配信ではApp Center SDKによるIn-App-Updatesが可能
ストアへの配信
App Store Connectによる配信
Production証明書が必要
Google Playによる配信
API接続用のセキュリティトークンが必要
Intune Company Portal用の配信
IntuneはMicrosoftが提供するエンタープライズ モビリティ管理
(EMM)サービス
19https://docs.microsoft.com/ja-jp/appcenter/distribution/
App Centerの料金体系
• ビルド
240分/月まで無料、時間無制限の並列タスク1つ 4,480円/月
• 実機テスト
30時間/月で11,088円、時間無制限の並列タスク1つ 55,888円/月
• 配信
配信数無制限、ユーザ数無制限
• 分析
App Center内は無料、BlobストレージやApplication Insightsに生ロ
グを送信する際は送信先のAzure利用料金
• クラッシュレポート
すべての機能が無料
20
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
その他
• ユーザ管理、組織管理
• 通知機能
WebHook、メール、Teams、SlackApp
• バグトラッカー連携
Jira Cloud, Azure DevOps, GitHub
• GDPR
• Open API (Swagger)
• Azure PlayFab(ゲーム用BaaS) 連携
• Export
Azure Blob Storage, Application Insights
21
Azure DevOps
Azure DevOpsの機能
23
https://azure.microsoft.com/ja-jp/services/devops/
Azure Reposの機能
24
https://azure.microsoft.com/ja-jp/services/devops/repos/
25
1PJに複数のリポジトリが作成可能
26
ブランチ毎にも設定可能な権限管理
Azure Artifactの機能
27
https://azure.microsoft.com/ja-jp/services/devops/artifacts/
Private Package Repository比較
28
GitHub Package
Repository
Azure Artifact
npm ○ ○
RubyGems ○ ×
Maven ○ ○
Docker ○ △(Azure Container Resistory)
Nuget ○ ○
Python × ○
Universal × ○
Azure Pipelinesの機能
29
https://azure.microsoft.com/ja-jp/services/devops/pipelines/
Pipelinesで用意されたビルドテンプレート
• YAML
• .NET Desktop
• Android
• ASP.NET
• Azure Web App
for ASP.NET
• Docker Contaier
• Maven
• Python package
• Xcode
• Ant
• ASP.NET Core
• ASP.NET Core
with Containers
• Azure
CloudServices
• Azure
Kubernetes
Service
• Azure
ServiceFabric
• Azure Web App
for Java
• C# Function
• Go
• Gradle
• Jenkins
• Load test using
Azure IaaS
virtual machines
• Node.js With
Grunt
• Node.js With
gulp
• UWP
• Xamarin.Androi
d
• Xamarin.iOS
• Empty pipeline
30
自動生成されたBuild設定
31
LibraryによるSecureFileの管理
32
Appleのp12ファイルなど
はここで管理
自社NW
Azure
Azure Pipeline構成例イメージ図
33
Git
リポジトリ
Linux
Azure Pipelines
Agent
Azure Pipeline
Windows
Azure Pipelines
Agent
Mac
Azure Pipelines
Agent
Linux VM
Microsoft
Hosted
Windows VM
Microsoft
Hosted
Mac
Microsoft
Hosted
自前で用意した
PCにAgentをイ
ンストール。
時間制限なし。
毎月1800分まで
は無料で利用可能
Azure DevOpsの料金体系
• 5ユーザまで無料、追加は毎月672/ユーザ
MSDN Subscriberは無料、編集権限のないユーザは無料
• Azure Pipelines
CI/CD用のMicrosoft Hosted(1800分/月)
セルフホステッドジョブ(分数制限なし)
• Azure Boards
作業項目トラッキングとかんばんボード
• Azure Repos
無制限のプライベートGitリポジトリ
• Azure Artifact
プライベートパッケージリポジトリ、2GBまで無料
34
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
自社環境
Azure
Azure Pipelines + VS App Center 無料利用例
35
mac mini
Azure
Pipelines
Agent
自前で用意したPCにAgentを
インストール。時間制限なし。
iPhone
Android
Production
Azure Repos
Android
Development
Azure Pipelines
①Push
②Pushを監視
④Clone
③Pipeline実行
⑤テスト・ビルド後、配信
配信のみで
あれば無料
5人以内であれば容
量無制限で無料
自社環境
Azure
実機テストも無料(1日5件)
36
mac mini
Azure
Pipelines
Agent
iPhone
Android
Production
Azure Repos
Android
Development
Azure Pipelines
①Push
②Pushを監視
④Clone
③Pipeline実行
⑤テスト・ビルド後、配信
この勉強会は
「クラウドモバイルビルド/
テスト Meetup」なんだか
らローカル環境でビルド、
テストしてちゃダメじゃん。
Azure PipelinesをOSSは無料で利用可能
• 条件
GitHubやAzure ReposでソースをPublic設定
Azure DevOpsのプロジェクトをPublic設定
• 提供されるPipelines
並列タスクを10個まで同時実行可能
ビルド時間は無制限に利用可能
38
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
自社環境
Azure
OSSでクラウドホストが使い放題
39
iPhone
Android
Production
Android
Development
Mac
Microsoft
Hosted
Linux VM
Microsoft
Hosted
実機は1日5件無料
GCP
自社NW
Azure Pipelines
Azure Pipelines + TestLab連携例
40
Git
リポジトリ
Mac
Microsoft
Hosted
①Pushをトリ
ガーでAPKを
Build
Pipelines
Artifact
②APKを
Artifactに保存
③Artifactか
らAPKを取得
Firebase
Test Lab
Robo Test
④gcloudコマン
ドで探索的テス
トを実行
Linux VM
Microsoft
Hosted
Azure DevOpsとApp Centerの契約メリット
• Azure のサブスクリプションに含められる
用途毎に色々なサービスを契約することを嫌う企業文化でも大丈夫
顧客との開発・運用契約に含めやすい
• 日本語で契約できる
日本語の契約書でないと契約しない企業文化でも大丈夫
41
まとめ
• Azure DevOps、Visual Studio App Centerはモバイルアプリ
のCI/CDに必要なことが備わっている
• Visual Studio App Centerの配信機能は無料で配信数無制限、
ユーザ数無制限使用可能
Azure Active Directory で適切な権限管理を。
• Azure DevOps+Visual Studio App Centerの無料枠を使いた
おそう。
42
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
43

Azure DevOpsとVisual Studio App CenterをモバイルアプリのCI/CDに活用しよう