NEXTSCAPE blog

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

MENU

ビルドサーバー要らず! Azure App Service が自力でビルド&デプロイ

こんにちは。
コンサルティング & テクノロジー部 Azure チームの茨木です。

今回は Microsoft Azure App Service の環境を利用して、ビルド&デプロイを済ませてしまう方法をご紹介いたします。外部サービスも、ビルド環境の構築も必要ありません。

f:id:nextscape_blog:20210910224727p:plain



 

 

Introduction

Visual Studio で1人開発している限りは、ビルドもデプロイも基本的に数クリック以内で終わります。でも、通常はチーム開発。ビルドサーバーの出番となるわけですが、自作ビルドサーバーの環境構築は非常に骨が折れる作業です。Visual Studio のインストーラーは優秀なもので、ビルドサーバーに同じ能力を構成しようとして大変な目に遭うことになります(なりました...)。

App Service はこういった環境が構築済みで提供されているので、自力でソースをビルド&デプロイできてしまいます。環境も日々更新されていきますので、メンテナンスもおまかせです。

※Visual Studio Team Services のようなサービスを使える場合は、もちろんそちらでやるべきです。

 

Azure App Service におまかせデプロイする方法

App Service は個々にローカル Git リポジトリを持つことができます。
設定は Azure Portal から行います。

f:id:nextscape_blog:20210910224746p:plain

ここで作成したGitリポジトリにソースコード一式を git push するだけで、あとは自動でビルドとデプロイが完了します。

以上、こんなにカンタンです。

※WebApps、WebJobs がこの方法で可能です。Functions は現時点ではまだ成功していません。

 

ビルドログの参照

git push の出力が、そのままビルドログになっています。

f:id:nextscape_blog:20210910224803p:plain

 

履歴の参照と再デプロイ

Azure Portal から履歴を参照できます。
この履歴を利用して、切り戻し再デプロイを実行することができます。

f:id:nextscape_blog:20210910224822p:plain

 

動作設定

Azure Portal のアプリケーション設定を利用して、動作をコントロールすることができます。

f:id:nextscape_blog:20210910224840p:plain

  • DEPLOYMENT_BRANCH
標準では master ブランチへのpushに反応して動作します。
ここにブランチ名を指定すると、任意のブランチに反応させることができます。
  • PROJECT

ソースコードに複数のプロジェクトが含まれている場合、どのプロジェクトをデプロイ対象とするのかを指定できます。

  • COMMAND

任意のデプロイコマンドをソースと共に管理しておけば、更に細かに自由なビルドプロセスを構成できます。
ここまで行くと、コマンドを利用して自動テストを組み込む事までも可能になります。

 

応用編...

このように、構成さえ出来てしまえば目的のソースコードを git push するだけです。
例えば、Webhook Trigger な Azure Functions を作って、任意のリポジトリからソースコードを横流しする...
など、アイディア次第でいろいろと自動化フローを組み立てられるのではないでしょうか。

※Azure Function は、あらかじめホスティング基盤に環境構成ができているため git コマンド(プロセス)を起動できます。