【Azure】DevOps の Pipeline を使って CI/CD 環境を構築【開発メモ】

Cloud

※本サイトではアフィリエイト広告を利用しております。

※本サイトではアフィリエイト広告を利用しております。

Azure DevOps の Pipeline を使って CI/CD 環境を構築する

前回の記事では Azure DevOps と Visual Studio を連携する手順を紹介いたしました。



その中では、Azure DevOps と Visual Studio を連携し、Azure DevOps へローカルのソースコードを同期するまでを実施いたしました。

今回は、Azure DevOps の Pipeline を使ってビルドとデプロイ(アプリケーションの配置)を一連で実行してみたいと思います。

<この記事で学べる事>

·Azure DevOps の Pipeline を利用した CI/CD 環境の構築



なお、Azure DevOps を利用するため、Microsoft アカウントを持っていることが前提となります。



スポンサーリンク

スポンサーリンク

スポンサーリンク

Azure DevOps と CI/CD

Azure DevOps と CI/CD の関連に触れ、Azure DevOps で使用するツールを紹介していきたいと思います。


CI(継続的インテグレーション)

CI(継続的インティグレーション)とは、開発者がソースコードをリモートリポジトリに同期し、同期したソースコードを自動的にビルドやテストを実施する手法です。
Azure DevOps では、Build Pipeline と呼ばれる Pipelines(Builds)がそれにあたるため Pipelines(Builds)を使用します。


CD(継続的デリバリー)

CD(継続的デリバリー)とは、CI(継続的インティグレーション)でビルドされたアプリケーションをデプロイ(配置)します。
Azure DevOps では、Release Pipeline と呼ばれる Releases がそれにあたるため Releases を使用します。


プロジェクトとソース

本稿の検証で使用するプロジェクトとソースコードを紹介いたします。

画像クリックで拡大画像を表示します

ビルド用のプロジェクトとして「de-proj」が準備済みです。

なお、プロジェクトの作成手順に関しては、別の記事でまとめていますので、よろしければこちらをご覧ください。




「WebAppAZ01」という名前のアプリケーションを準備しています。

画像クリックで拡大画像を表示します

WebAppAZ01 は Web アプリケーションです。

また、ターゲットフレームワークは「.Net Framework 4.8」となっています。



Build Pipeline の作成

では、Build Pipeline を使って CI を構築する手順を解説いたします。



Azure DevOps にサインインします。

画像クリックで拡大画像を表示します

対象プロジェクトから [Pipelines] → [Pipelines] をクリックします。

また Build Pipeline アイコンをクリックすると表示される [Create Pipeline] をクリックします。

なお、本稿の例では、対象プロジェクト名は「de-proj」です。




次に、「Connect」画面が表示されます。

画像クリックで拡大画像を表示します

ソースコードの配置先サービスに該当するサービスを選択します。

本稿の例では、Azure DevOps に配置したソースコードが対象のため [Azure Repos Git] をクリックします。




次に、「Select」画面が表示されます。

画像クリックで拡大画像を表示します

リポジトリを選択します。

本稿の例では、「de-proj」プロジェクトに配置したソースコードが対象のため [de-proj] をクリックします。




次に、「Configure」画面が表示されます。

画像クリックで拡大画像を表示します

パイプラインの構成に該当するパイプラインの構成を選択します。

本稿の例では、「.Net Framework 4.8」で構成されたWebアプリケーションのため [ASP.NET Core (.NET Framework)] をクリックします。




次に、「Review」画面が表示されます。

画像クリックで拡大画像を表示します

YAML ファイルの内容が表示されます。

[Save and run] をクリックします。




次に、コミット理由などの入力を求められます。

画像クリックで拡大画像を表示します

未入力のまま [Save and run] をクリックします。




Build Pipeline が作成されました。

画像クリックで拡大画像を表示します

ビルドジョブも実行され、正常に終了しています。



Release Pipeline の作成

では、Release Pipeline を使って CD を構築する手順を解説いたします。


対象プロジェクトから [Pipelines] → [Pipelines] をクリックします。

画像クリックで拡大画像を表示します

Release Pipeline アイコンをクリックすると表示される [New Pipeline] をクリックします。




次に、「Select a template」画面が表示されます。

画像クリックで拡大画像を表示します

デプロイ用のテンプレートがいくつか準備されています。

本稿の例では、Azure App Service へのデプロイとなるため [Azure App Service deployment] をクリックします。




次に、「Stage」画面が表示されます。

画像クリックで拡大画像を表示します

本稿の例では、「de-release」というステージ名を設定しています。




Release Pipeline が作成されました。

画像クリックで拡大画像を表示します

続いて、Release Pipeline の設定をおこなうため [1 job, 1 task] をクリックします。




次に、ステージの設定画面が表示されます。

画像クリックで拡大画像を表示します

[Azure subscription]、[App type]、[App service name] を指定します。

本稿の例では、Azure App Service の OS は Windows のため [App type] に [Web App on Windows] を指定します。

また、[App service name] に、以前、本ブログで構築したWeb アプリケーションを指定し [Save] をクリックします。なお、Web アプリケーションの構築手順に関しては、別の記事でまとめていますので、よろしければこちらをご覧ください。


[Azure subscription] を指定する際に、Microsoft の認証が必要になります。

画像クリックで拡大画像を表示します

Microsoft アカウントでサインインします。






次に、「Save」画面が表示されます。

画像クリックで拡大画像を表示します

[Folder]、[Comment] を入力し [OK] をクリックします。

なお、Release Pipeline の配置先フォルダを変更したい場合、[Folder] を指定してください。また、[Comment] は未入力でもOKです。





Release Pipeline に設定が追加されました。

画像クリックで拡大画像を表示します



Build Pipeline の追加

続いて、Release Pipeline に Build Pipeline を追加し CI/CD を構築する手順を解説いたします。



Release Pipeline を開きます。

画像クリックで拡大画像を表示します

Release Pipeline に Build Pipeline を追加するため [Add an artifact] をクリックします。




次に、「Add an artifact」画面が表示されます。

画像クリックで拡大画像を表示します

[Source type]、[Project]、[Source (build pipeline)]、[Default version]、[Source alias] を設定し [Add] をクリックします。

なお、Build Pipeline を追加するため [Source type] に [Build] を設定しています。





Release Pipeline に Build Pipeline が追加できました。

画像クリックで拡大画像を表示します

[Save] をクリックします。





次に、「Save」画面が表示されます。

画像クリックで拡大画像を表示します

[Comment] を設定し [OK] をクリックします。

なお、[Comment] は未入力でも OK です。




Release Pipeline の Artifact に Build Pipeline が追加されました。

画像クリックで拡大画像を表示します

Azure DevOps の Pipeline を使った CI/CD の構築が完了しました。



Pipeline の実行と YAML の修正

Azure DevOps の Pipeline を使った CI/CD の構築が完了しましたので、実際に、ビルドからデプロイまでが正常に動作するか検証してみたいと思います。



Release Pipeline を開きます。

画像クリックで拡大画像を表示します

[Create release] をクリックします。




次に、「Create a new release」画面が表示されます。

画像クリックで拡大画像を表示します

[Create] をクリックします。




エラーが発生しました。

画像クリックで拡大画像を表示します

再度、実行しましたが、同じくエラーとなりました。

Pipeline の設定に誤りがあるようなので調査してみます。




異常終了した pipeline のエラー内容を確認します。

画像クリックで拡大画像を表示します

[Deploy Azure App Service] でエラーが発生しているようです。

「Error: No package found with specified pattern: D:\a\r1\a***.zip・・・」と出力されていますので、エラー内容をもとにネットで調査してみます。




調査結果から [Deply Azure App Serviceの[Package or folder] に設定されている値に誤りがあると判明しました。

画像クリックで拡大画像を表示します

[$(System.DefaultWorkingDirectory)/*/.zip] は [D:\a\r1\a**.zip] を指していて、リリース時に [D:\a\r1\a**.zip] を探しているとのことです。



以下は、参考にさせていただいたサイトです。ネスケラボ様、ありがとうございました。





Build Pipeline を修正します。

画像クリックで拡大画像を表示します

Build Pipeline の [de-proj] を選択し [Edit] をクリックします。

また、検索ボックスにて [publish] を入力します。

[Tasks] に [Publish build artifacts] が表示されるため [Publish build artifacts] をクリックします。




次に、「Publish build artifacts」画面が表示されます。

画像クリックで拡大画像を表示します

[Add] をクリックします。




YAML にタスクが追加されました。

画像クリックで拡大画像を表示します

[Save] をクリックします。




次に、「Save」画面が表示されます。

画像クリックで拡大画像を表示します

[Save] をクリックします。



Pipeline の実行

再度、ビルドからデプロイまでが正常に動作するか検証してみたいと思います。



Release Pipeline を開きます。

画像クリックで拡大画像を表示します

[Create release] をクリックします。




次に、「Create a new release」画面が表示されます。

画像クリックで拡大画像を表示します

[Create] をクリックします。




正常に終了しました!

画像クリックで拡大画像を表示します

Build Pipeline が正常に修正できたようです。




はじめにエラーになった [Deploy Azure App Service] も正常に実行されています。

画像クリックで拡大画像を表示します




Web ブラウザからデプロイした Web アプリケーションを開きます。

画像クリックで拡大画像を表示します

Web アプリケーションへアクセスできました。




ソースコードの修正後、再度、Pipeline を実行してみます。

画像クリックで拡大画像を表示します





Web ブラウザからデプロイした Web アプリケーションを開きます。

画像クリックで拡大画像を表示します

変更内容が反映されています。



まとめ

以上が、Azure DevOps の Pipelines を使った CI/CD 環境の構築手順とその検証となります。

いかがでしたでしょうか?

Azure DevOps の Pipelines を使った場合、簡単なものであれば1時間程度で CI/CD 環境を構築することができます。そのため、とても使いたすく感じました。

ただし、実際に Pipeline を実行したときエラーが発生したため少し戸惑い、エラーの調査に費やした時間は CI/CD 環境を構築した時間よりもかかりました。
しかし、エラーへの対処方法を把握していれば、次からは戸惑うことはないと思います。

なお、本稿では単純な Web アプリケーションのビルドからデプロイまでを対象としているため、自動テストは含んでいません。





最後までお読みいただきありがとうございます。



では。


スポンサーリンク

スポンサーリンク

Cloud
スポンサーリンク
たまおをフォローする
スポンサーリンク
タイトルとURLをコピーしました