AzureDevOpsで始める
AndroidのCI/CD
2019/3/7
Android Test Night #6
なかしょ(中島進也)
Profile
• 名前:なかしょ(中島 進也)
• Twitter:@nakasho_dev
• ブログ:なかしょの技術日誌
http://nakasho-dev.hatenablog.jp/
• 最近の興味
TDD、アジャイル開発、Xamarin、Chatbot、Tizen
• 主な参加コミュニティ
JXUG、.NETラボ、Cogbot、Teratail、TestNight
XP祭り2019実行委員
※本資料は私個人の意見であり、所属企業・部門見解を代表するもの
ではありません。
2
Azure DevOps
• 2018年9月11日に発表
• Visual Studio Team Servicesからリブランディング
• プロジェクト形式はAgile、Scrum、CMMIに対応
• Markdown方式のWikiをGitで管理
• かんばんボード、バックログ、ダッシュボード、スクラム ボード
などのシンプルな最新のアジャイル ツールを使用して業務を遂行
• 任意のプラットフォームに対してコードのビルド、テスト、デプ
ロイを行う自動パイプラインを簡単にセットアップ
• 1000を超える拡張機能がMarketplaceから提供
3
https://azure.microsoft.com/ja-jp/services/devops/
Azure DevOpsの機能
4
https://azure.microsoft.com/ja-jp/services/devops/
Azure DevOpsの料金
5
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
5ユーザまで無料って?
6
https://azure.microsoft.com/ja-jp/pricing/details/devops/azure-devops-services/
無料枠利用者
編集権限有 編集権限無
Visual Studio
サブスクライバー
Organization
5人まで 何人でも 何人でも
Azure DevOpsを初めて開いたとき
7
プロジェクト名と
公開・非公開の設定
を入力してプロジェ
クト作成...
Azure DevOpsを初めて開いたとき
8
プロジェクト名と
公開・非公開の設定
を入力してプロジェ
クト作成...
初めて開いたときの
画面でプロジェクト
を作成してはダメ
9
いったん別画面に行っ
てOrganizationを選択
すると
「Description」や
「Advanced」が増え
ている
10
Work Item Processは
プロジェクト作成時に
しか選択できない。
「Agile」「Basic」
「CMMI」「Scrum」
から選択する
11
https://azure.microsoft.com/ja-jp/services/devops/repos/
12
13
14
他のリポジトリからのインポート
15
1PJに複数のリポジトリが作成可能
16
ブランチ毎にも設定可能な権限管理
17
PRドリブン開発
18
Visual Studio Team Services
Plugin for IntelliJ, Android Studio
https://github.com/Microsoft/azure-devops-intellij
19
20
担当となっているWork Itemが
表示される。
右クリックでブランチを作成し
たり、該当のItemのページをブ
ラウザで開いたりできる。
Code Search
• Search across one or more projects
• Semantic ranking
• Rich filtering
• Integration with version control
21
https://marketplace.visualstudio.com/items?itemName=ms.vss-code-search
22
Azure Pipelines
23
Repositoryの選択
下記リンクをクリックすると細
かい設定が可能となる。
24
Repositoryの選択
以下から選択可能
・Azure Repos Git
・GitHub
・GitHub Enterprise
・Subversion
・Bitbucket Cloud
・External Git
25
ビルドテンプレートの選択
ビルドテンプレートの選択
• 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
26
27
Pipelineの編集
Pipeline設定
• Name
• Agent pool
Microsoft Hosted
Self Hosted
• Parameters
Gradle Wrapper
Tasks
28
Gradlew build
•Gradle
•Junit Test Results
•Code Coverage
Cobertura
JaCoCo
•Code Analysis
SonarQube or
SonarCloud
Analysis
CheckStyle
FindBugs
PMD
29
Android Signing
30
Copy File and Publish Build Artifacts
31
App Center Test and Distribute
32
Pipeline 実行結果
33
34
Release Pipelines
35
https://github.com/Microsoft/google-play-vsts-extension
36
Google Play Consoleか
ら取得したAPIKeyを設定
37
自社NW
Azure
Azure Pipeline構成例イメージ図
38
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 で納品
39
• ソースコード
• ドキュメント
• ビルドスクリプト
• 作業ログ
• テスト結果
• ・・・
組織のOwnerを変えて納
品
Azure DevOps Features Timeline
40
https://docs.microsoft.com/en-us/azure/devops/release-notes/
Azure DevOps ミニライブ
41
https://slideship.com/users/@miyake/presentations/2019/01/BwXa8724KBiL4q5x2gq2Du/
https://crash.academy/video/706/2036
Azure DevOps Tokyo, Japan 3rd strike
42
https://jazug.connpass.com/event/116980/
まとめ
• Azure DevOpsにはDevOpsを支援する様々なサービスがある
• Azure Reposは無制限のリポジトリの他にも、開発を進める
うえでの必要な機能が揃っている。
• Azure Pipelinesは様々な環境に対応したテンプレートが用意
されている
• 顧客を巻き込むことでAzure DevOpsでの納品が可能となる。
43
ご清聴ありがとうございました。
なかしょ(中島 進也)
@nakasho_dev
44

AzureDevOpsで始めるAndroidのCI/CD