Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Visual Studio App Centerで始めるCI/CD

220 views

Published on

2018/07/26(木)に開催されたshinjuku.aar #3で発表した資料です。
https://shinjuku-aar.connpass.com/event/93082/

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Visual Studio App Centerで始めるCI/CD

  1. 1. Visual Studio App Center で始めるCI/CD 2018/07/26 shinjuku.aar #3 中島進也
  2. 2. Profile • 名前:なかしょ(中島 進也) • Twitter:@nakasho_dev • ブログ:なかしょの技術日誌 http://nakasho-dev.hatenablog.jp/ • 最近の興味 TDD、アジャイル開発、Xamarin、Chatbot、Tizen • 主な参加コミュニティ JXUG、.NETラボ、Cogbot、Teratail、TestNight ※本資料は私個人の意見であり、所属企業・部門見解を代表するもの ではありません。 2
  3. 3. なぜ、CI/CD環境が必要か(1/4) • 対象機種の全OS、画面サイズのパターンをデベロッパーのマ シンでテストしていたら実装にかける時間が失われる。 3 ・2.3.3 ・4.0 ・4.0.3 ・4.1 ・4.2 ・4.3 ・4.4 ・5.0 ・5.1 ・6.0 ・7.0 ・7.1 ・8.0 ・8.1 ・2.45インチ ・4.6インチ ・5.2インチ ・6.0インチ ×
  4. 4. なぜ、CI/CD環境が必要か(2/4) • 対象機種の全OS、画面サイズのパターンのテストをCI/CD サーバに任せることで、実装に専念できる。 4 CI/CD サーバ 単体テストが一つの 環境で全てパスした らPush α版、β版、プロ ダクト版に応じて リリース
  5. 5. なぜ、CI/CD環境が必要か(3/4) • 取得したソースが同じでもビルド環境が異なればビルドが失 敗することや実機で正しく動作しないことがある 5 デベロッパー1環境 ・ライブラリA 1.0.2 ・ライブラリB 2.2.5 デベロッパー2環境 ・ライブラリA 1.2.2 ・ライブラリB 2.1.5 ビルド環境 のスノー フレーク化
  6. 6. なぜ、CI/CD環境が必要か(4/4) • 各デベロッパーの環境ではなく、CI/CDサーバでのテスト成 功を確認して、対象機能の実装完了とする。 6 デベロッパー1環境 デベロッパー2環境 CI/CD サーバ リポジトリが更新さ れたらソースを取得 必要なテストを全て パスしたらαリリー ス 常に同じ環境でビル ド・テスト
  7. 7. CI/CD環境の構築例(オンプレミス) 7 Git リポジトリ Ubuntu サーバ TeamCity Server Build Agent2 Build Agent3 Mac mini TeamCity Build Agent1 iPhone Android 検証サーバ 商用サーバ CIモニタ
  8. 8. CI/CD環境をオンプレミスで構築すると • CI/CD環境の ハードウェア費用 ソフトウェア費用 監視費用 維持メンテ費用 テスト端末費用 8 CI/CDの運用方法によっては、オ ンプレミスよりもクラウドサービ スを利用したほうがコストも安く、 開発者にも負担がかからない環境 が作れるのではないか。
  9. 9. 9 Visual Studio App Center
  10. 10. 主な機能 10 自動ビルド・単体テスト 実機デバイスでUIテストを自動化 テスターやストアへのアプリ配布 クラッシュログの収集 使用状況の分析 プッシュ通知
  11. 11. 対応プラットフォーム 11 Android Java/Kotlin ReactNative Cordova(Preview) Xamarin iOS Objective-C/Swift ReactNative Cordova(Preview) Xamarin Windows UWP macOS(Preview) Objective-C/Swift
  12. 12. まずはログイン • 以下のアカウントが使用可能 GitHub Microsoft Facebook Google 12https://appcenter.ms/create-account
  13. 13. Getting Started • 新規アプリを登録 • Add New ⇒ Add New App • OSはAndroidを選択 • PlatformはJavaを選択 • 作成後ポータル画面に遷移 13https://docs.microsoft.com/en-us/appcenter/quickstarts/android/getting-started ポータル画面では最初 にやるべきことが書い てある
  14. 14. SDKの組み込み 14https://docs.microsoft.com/ja-jp/appcenter/sdk/ dependencies { def appCenterSdkVersion = '1.5.1’ compile "com.microsoft.appcenter:appcenter-analytics:${appCenterSdkVersion}“ compile "com.microsoft.appcenter:appcenter-crashes:${appCenterSdkVersion}“ compile "com.microsoft.appcenter:appcenter-push:${appCenterSdkVersion}" } app/build.gradle import com.microsoft.appcenter.AppCenter; import com.microsoft.appcenter.analytics.Analytics; import com.microsoft.appcenter.crashes.Crashes; import com.microsoft.appcenter.push.Push; ・・・・・・・・・・中略・・・・・・・・・・・・・・ AppCenter.start(getApplication(), " xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx ", Analytics.class, Crashes.class , Push.class); 起動時のActivityのonCreate VSAppCenterのプロジェクト 作成時に払い出されたAPI-KEY を使用する。 Pushを送信するにはFirebase のSender IDを管理画面から登 録する。
  15. 15. 対応リポジトリ 15
  16. 16. Build – ビルド設定- Android(1/2) • Android Module • Build Variant • Build Script  固定名のファイルを含めることで有効と なる • Build frequency  Pushごとにビルドするか否か • Automatically increment build number  ビルドごとにビルド番号を増加させるか否か • Run unit tests  ビルド時に単体テストをおこなうか否か • Lint source code  コードの静的解析(Lint)をおこなうか否か 16https://docs.microsoft.com/ja-jp/appcenter/build/android/first-build
  17. 17. Build – ビルド設定 - Android(2/2) • Environment variables  環境変数を設定しビルドに反映できる  リポジトリに含められないものはここ で管理すべき • Sign builds  ビルド時に署名を付与するか否か • Test on a real device  実機テストを実施するか否か • Distribute builds  ビルドを配信するか否か • Advanced  ビルドステータスバッジの有無 17https://docs.microsoft.com/ja-jp/appcenter/build/android/first-build
  18. 18. Build – ビルド状態表示 18https://docs.microsoft.com/ja-jp/appcenter/build/windows/uwp/first-build ビルド状態画面 から配信やビル ドファイルのダ ウンロード等が 可能
  19. 19. Test – 端末の選択 • 機種×OSで数千台の 実機デバイスが用意さ れている。 • いわゆるガラパゴスス マフォは用意されてい ない。 19https://docs.microsoft.com/ja-jp/appcenter/test-cloud/core-concepts
  20. 20. Test – 設定 • Test Framework  Appium  Calabash  Espresso  Xamarin.UITest 20https://docs.microsoft.com/ja-jp/appcenter/test-cloud/supported-frameworks
  21. 21. Diagnostics – クラッシュ情報取得 21https://docs.microsoft.com/ja-jp/appcenter/crashes/ios スタックトレース を閲覧可能 レポートを取得可能 クラッシュ情報が AppCenterに送信される のはアプリ再起動後
  22. 22. Bug Tracker Integration • 以下のTrackerと連携し、Crash時に自動でTicketを起票 Visual Studio Team Services GitHub Jira 22https://docs.microsoft.com/ja-jp/appcenter/dashboard/bugtracker/
  23. 23. Analytics - Overview • Active Users Monthly、Weekly、Daily • Engagement • Devices and OS • Countries and Languages • Active Users per Version 23https://docs.microsoft.com/ja-jp/appcenter/analytics/overview
  24. 24. Analytics – Custom Events • Event Page Count、Trend、Users、User change、Per user • Detail event view Users、Count、Count per user、Count per session 24https://docs.microsoft.com/ja-jp/appcenter/analytics/event-metrics
  25. 25. Analytics – Export • Azure の以下の機能にExport可能 Blob Storage Application Insights 25https://docs.microsoft.com/ja-jp/appcenter/analytics/export
  26. 26. 参考サイト • Visual Studio App Center Docs https://docs.microsoft.com/ja-jp/appcenter/ • Visual Studio App Center Blog https://blogs.msdn.microsoft.com/vsappcenter/ • Advice and Answers App Center https://intercom.help/appcenter/ • JXUGC #24 春の App Center 祭り https://jxug.connpass.com/event/72491/ • 最新ツールとVisual Studioサブスクリプションで変わ る開発環境 http://www.itmedia.co.jp/pcuser/articles/1801/17/news00 1.html 26
  27. 27. ご清聴ありがとうございました。 なかしょ(中島 進也) @nakasho_dev 27

×