Azure Pipelinesを使ったCI/CD環境の構築~Web Apps編~

初めに

以前、Azure Reposを扱う機会があり、どうせならAzureでCI/CD環境の構築までできるようになりたいなと思い、Azure Pipelinesを検証しつつ、ブログにまとめてみました。
今回は、デプロイ先を WebApps on Windows 、使用言語をJavaとして、Azure Pipelinesを使ったCI/CD環境の構築の手順をまとめたいと思います。

このブログの流れ

このブログは以下の流れに沿って説明したいと思います。

  1. Azure Pipelinesとは
  2. 事前準備
    2.1.Azure Reposでのリポジトリの作成
    2.2.サンプルコードのアップロード
  3. Pipelines の作成、設定
    3.1.Pipeline とは
    3.2.Pipelineの作成
    3.3.Pipelineの実行履歴の確認
  4. Release の設定
    4.1.Release の設定

1.Azure Pipelinesとは

Azureが提供している、CI/CDを構築できるサービスとなっています。
こちらを使用すると、ビルドからテスト、デプロイまで自動化することができ、迅速にリリースを行うことができます。

2.事前準備

2.1.Azure Reposでのリポジトリの作成

Azure DevOpsのポータル画面に入り、「Repos」を選択、
「上部にある、表示されているリポジトリの名前(赤枠参照)」→
「New repository(赤枠参照)」と選択してください。


以下画面が表示されるので、「Repository name」に作成するリポジトリの名前を入力し、「Create」を選択してください。
これで、リポジトリが作成されます。


※今回はリポジトリの作成のみで且つ、他のリポジトリがある状態での作成です。
リポジトリの詳細な設定(VSCodeとの連携や、他ユーザーの追加など)や
初めてリポジトリを作成する場合の手順については、以下ブログにまとめてありますので、こちらをご参照ください。
「Azure Reposの設定方法について」
URL:https://cloudsteady.jp/post/11041/


2.2.サンプルコードのアップロード

今回、使用言語が Java ということで、Mavenを使用します。
Mavenを使用するにあたり、先ほど作成したリポジトリ内にpom.xmlファイルを置く必要があります。
ここら辺に詳しい方はご自身で pom.xml を用意すれば良いかと思います。
逆に詳しくない方は Microsoft が Azure Pipelines を作成するにあたってのサンプルコードを以下に用意していますので、
以下URLから pom.xml をそのまま使用すれば良いかと思います。
(何なら以下URLにある src フォルダーを丸ごと作成したリポジトリに持ってきて、処理の部分を変更するという形もありです。
但し、Azure Repos ではフォルダーをアップロードすることができないので、一回VSCodeなどと連携して、
ローカルに clone し、ローカルリポジトリ上でフォルダーを配置、その内容を commit 、push すれば、多少は楽にフォルダーを持ってこれます。)

「MicrosoftがGithubに公開しているサンプルコード」
URL:https://github.com/MicrosoftDocs/pipelines-java

3. Pipeline の作成 、設定

3.1.Pipelines とは

Azure Pipelinesの機能の1つとして Pipelines があります(以下図の赤枠参照)。こちらの機能から Pipeline を作成することができ、
Pipeline を作成することで、ビルドとテストを自動化することができます。例えば、Azure Reposの中にあるコードを書き換えて、commit 、push した時に、自動でPipeline が実行され、その中でソースコードのビルド、テストが実行されます。


※ソースコードがビルド・テストされる場所はデフォルトでは、Micorosoftのホスト基盤で実行され(実行するOSはyamlファイルで指定します)、こちらでビルド・テストされる場所を指定したい場合は、yamlファイルの中のpool の箇所で記載する必要があります。(記載方法は以下URLを参照)
「YAML schema reference
https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azure-devops&tabs=example%2Cparameter-schema#pool
その場合は事前に、Agent pool を別途、作成する必要があります。
Agent Poolの作成は、Azure DevOps のポータル画面から、「Project Settings」→「Agent Pools」→「Add pool」と選択し、ビルド・テストを実行させる環境の設定をすることで作成ができます。


3.2.Pipeline の作成

それでは、ビルド・テストの自動化を設定するために、Pipeline を作成していきます。
Azure Devopsのポータル画面から、Azure Pipelines を選択、「Pipelines」→「Create Pipelines」をクリックしてください。


以下画面が表示されるので、使用するリポジトリに応じたものを選択してください。
今回はリポジトリとして、Azure Reposを使用するので、「Azure Repos Git」を選択します。


「Azure Repos Git」を選択した場合、以下画面が表示されるので、「2.1.」で作成したリポジトリを選択してください。


以下画面が表示されるので、使用言語に応じたものを選択してください。
今回は Java を使用するので、下の方にあるMaven (以下画像には表示されていませんが)を選択します。

以下画面が表示されるので、「Save and Run」をクリックしてください。
※このyamlファイルが「Pipeline」の設定ファイルのようなもので、
「3.1.の※」で記載したpoolの設定もこのファイルに記述します。


以下画面に表示されるので、再度「Save and run」をクリックすると、「Pipeline」が作成されます。
Pipeline 作成時に、Pipeline が初回で実行され、ビルドとテストも実行されます。
また、Pipeline 作成後は、Pipeline で選択したリポジトリのmaster ブランチにコミットされるたびに、作成した Pipeline が実行されます。
※Pipeline の実行条件はある程度変更することが可能です。この説明については今回割愛します。

3.3. Pipeline の実行履歴の確認

上記画面で作成された Pipeline をクリックすると、以下画面が表示されます。
この画面では、これまでのPipelineの実行履歴の一覧とその結果が表示されます。試しに実行が失敗しているものを選択します。


以下画面が表示されるので、こちらの画面の「Error」からどのようなエラーで実行が失敗したのかを確認することができます。但し、「Error」では簡潔にしかエラー内容が記載されていません。


上記画面で「Job」を選択すると、以下画面が表示されます。
こちらの画面からより詳細にエラーを確認することができます。

4.Release の設定

4.1.Releaseの設定

続いて、「Release」の設定をしていきます。
Azure Devopsのポータル画面から、Azure Pipelines を選択、「Pipelines」→「New Pipelines」をクリックしてください。


以下画面が表示されるので、今回アプリをリリースする基盤のテンプレートを選択してください。
今回は、アプリの基盤として、Web Appsを使用するので、「Azure App Service deployment」を選択します。


以下画面が表示されるので、「1 job, 1 task」をクリックしてください。


以下画面が表示されるので、サブスクリプションとApp Serviceの種類(今回はWeb App on Windows)、App Serviceの名前を選択してください。
※ここから新規でWeb Appsの作成等を行うことができないので、あらかじめWeb Appsを作成しておいてください。


以下画面に戻り、「Add an artifact」をクリックしてください。

以下画面が表示されるので、「3.2.」で作成した Pipeline を選択して、「Add」を選択してください。


以下画面に戻り、「Save」を選択し、保存してください。
※保存しないで、別の画面に遷移すると、設定した項目が消えてしまうので、必ず保存するようにしてください。


以下画面に戻り、「Create Pipelines」を選択してください。


以下画面が表示されるので、「Create」を選択してください。これで Release の設定が完了となります。

いいね (この記事が参考になった人の数:2)
(↑参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルプロセス&テクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください