NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Azure DevOpsのBuild PipelineでWebAppsにデプロイ(Build編)

こんにちは。クラウド推進部の松永です。

今回はAzure DevOpsのBuild Pipelineをつかって、AzureのWebAppsへのリリースまでの流れを解説していきたいと思います。

f:id:nextscape_blog:20210911225055p:plain

 

Azure DevOpsを知っていますか?



Azure DevOpsはMicrosoftが提供している開発支援サービスです。

https://azure.microsoft.com/ja-jp/services/devops/

PJ管理、ソース管理、ビルド・リリース管理、テスト計画、パッケージ管理と大きく5つの機能に分かれています。

これらの機能は単独で使うこともできますが、お互いに連携することで、開発がスムーズに行えるようになります。


なお、弊社ではAzure DevOpsを積極的に使っています。今話題のHoloLensのプロジェクトでも例外ではありません。

HoloLensプロジェクトでのBuild Pipelineを使用したビルド方法について、以下の記事も書いているので、


HoloLensの開発にAzure DevOpsを組み込みたいという方はこちらを参考にしてみてください。

Azure DevOpsでHoloLensアプリをビルドする(MS-hosted編)
https://withmr.nextscape.net/2019/06/azure-devops-build-hololens-mshosted/


Build Pipelineは”育てる”ツール



タイトルを見て、これをきっかけに初めてAzure DevOpsをやってみよう!と思って記事を読んでいる方がいらっしゃったら、
大変うれしいです。

ただ、そんな方に向けて、最初にアドバイスをしておくことがあります。


1回だけのリリースであれば、手動でリリースをしたほうが早いです。


Azure DevOpsのBuild Pipelinesの機能は、最初の準備にどうしても時間がかかってしまいます。

もしかしたら、準備にかける時間で、手動だったら数回はリリースができるかもしれません。

”手動でリリースすれば早いのに、なんでこんなに面倒なことをしなくてはいけないのか?俺たちは何をしているんだ?”

と設定をしながら疑問を覚える人もいると思います。

でも、大丈夫。


その準備にかけた時間的コストは、後から、きっと返ってきます。


Build Pipelineを使い込んでいくと、1日に数十回のリリースが可能になります。

手動で数十回リリースをしろなんて言われた日には思わず天を仰いでしまいますが、

Build Pipelineがあれば、何も考えずにただパイプライン処理を走らせればOKです。

さらにトリガーを設定すれば、指定時間になったら、ソースがコミットされたら、と任意のタイミングで

自動的にリリース処理が走るようになります。

わざわざ手をかける必要もなくなるのです。


ですから、私はAzure DevOpsのBuild Pipelineを、使い始めた時から恩恵を受けられるツールではなく、

PJに合わせてカスタマイズしながら使っていくことで、後から大きな恩恵を受けられるツールと考えています。

”桃栗三年柿八年”と言われ、実りを得るまでに時間がかかる果樹のように、

少しずつ”育てる”ツールではないかと。

初めてAzure DevOpsのBuild Pipelineに触る人はそういうツールだと思って、使ってみると良いかもしれません。


事前の準備



今回解説する環境では、事前に以下の準備をしています。

・Azure DevOpsのアカウントを取得し、プロジェクトを作成している。

・ソースはVisualStudio2019からASP.Net Core MVCを選択して新規作成

・ソースはAzure DevOpsのRepos Gitにコミットしている。

・Azure上にWebApps(Windows)を構築している。


Build Pipelineを構築しよう

 

ようやく本題の解説にたどり着きました。

本記事ではビルドの設定について解説し、次回にビルドされたパッケージのリリースについて解説していきます。

では、はじめていきましょう。

まず、Azure DevOpsにサインインをして、左メニューからPipelines > Buildsを選択し、NewPipelineをクリックします。

f:id:nextscape_blog:20210911225249p:plain

次にどのソースコードを使うか、選択肢がでてきます。

ソースはAzure Repos Gitに格納していますので、今回はAzure Repos Gitを選択しています。

 

f:id:nextscape_blog:20210911225336p:plain

Gitリポジトリを選択して、

f:id:nextscape_blog:20210911225351p:plain

次にPipelineの設定テンプレートを選択します。

ここでは、ソースに合わせて選択をしますので、

今回の場合は、ASP.NET Core(.NET Framework)を選択します。

f:id:nextscape_blog:20210911225407p:plain

なお、上の画面ではWindows系の設定テンプレートしか出ていませんが、

展開すると以下のように、AndroidやXcode、JS等、様々なテンプレートが用意されています。

f:id:nextscape_blog:20210911225422p:plain

f:id:nextscape_blog:20210911225437p:plain

テンプレートを選択すると、YAMLのコード画面がでてきます。

この画面で表示されているazure-pipelines.yamlがビルドの設定ファイルになります。

まずはそのままSave and runボタンを押しましょう。

f:id:nextscape_blog:20210911225453p:plain

すると、右ペインにコミットメッセージの入力画面がでてきます。

f:id:nextscape_blog:20210911225508p:plain

急にコミットメッセージの入力欄が出てくるので戸惑う人もいるかもしれません。

これは何をしようとしているのかというと、Azure DevOpsが対象のリポジトリにazure-pipelines.yamlのファイルを

追加をしようとしているのです。

 

Buildは設定を行うと、ビルド設定が記載されたyamlファイルをリソースのプロジェクトに追加するようになっています。

設定の変更があれば、yamlファイルが更新され、それがリポジトリにまたコミットされます。

このように、ビルド設定をソース管理しているのです。

ビルド設定がソース管理できれば、設定を間違えてもファイルを修正前に戻すだけでよいですし、

別のプロジェクトのビルド設定をインポートすることも可能ですので、シンプルで管理がしやすくなります。


下のラジオボタンでは、このazure-pipelines.yamlの追加について、

直接masterにコミットするか、新しいブランチにコミット後にプルリクを出すか、どちらかを選択できるようになっています。

今回はmasterに直接コミットするように選択して、Save and runを押します。

するとビルド処理が走ります。

 

ビルド処理の経過については、Log画面をを見ることで詳細の確認ができます。

現在の進行状況や、中のログを確認できるようになっています。

f:id:nextscape_blog:20210911225524p:plain

ビルドの成功



最後まで、処理が走れば、Azure DevOpsのBuild Pipelineを使った初めてのビルドが成功です。

うまくいきましたか?

次回はリリースの設定をしていきます。