Azure DevOps pipelineの作成方法

本記事では、Azure DevOpsでリリースの前に作成する必要のある、pipelineの作成方法を記載いたします。

  • この記事でわかること
    • 「New pipeline」での作成(ビルド定義)方法例
  • 前提条件
    • C#プロジェクトをApp Serviceへ配置することを目的とする

概要

Azure DevOpsではApp Serviceへの自動リリースが可能ですが、その準備の一つにpipelineの作成があります。

これは、ビルドの実施やユニットテストの実施後DevOpsのディレクトリに配置する作業です。実際の手順を見ていきます。

YAML自動作成

Azure DevOpsへアクセスし、右上の「New pipeline」を押下します。

New pipelineの画面が表示されたら自身が管理しているgitを押下します。

ここでは「Azure Repos Git(YAML)」を選択します。

対象のリポジトリ選択画面が表示されたらリリースしたいソースコードを管理しているものを選択します。

自身のソリューションで利用しているフレームワークを選択します。

ここでは「ASP.NET Core」を選択します。

作成されたYAMLファイルの設定値確認画面になるため、内容を確認して保存します。

  • 「Save and run」を押下するとYAML記載のタスクが実行されます。基本的にはビルドやNugetのリストア、ユニットテストが実施されるのみのため特にリリースへの影響はない認識です
  • 保存のみを実施したい場合は青枠の↓を押すと「Save」が表示されますのでそちらを押下してください

保存画面が表示されるため、内容を確認して保存します。

  • 保存を押下すると管理しているリポジトリのブランチにコミットされてしまいます。初回リリースなどの場合は直接masterブランチにYAMLファイルを配置しても構わないかと思いますが、既に運用している場合は一番下のラジオボタンで新規ブランチにコミットするようにしてください

以上でpipelineの作成が完了しました。

YAML自動作成時の設定

先頭行は自身が設定したフレームワークとYAML記載の説明が記載されています。

#ASP.NET Core (.NET Framework)
#Build and test ASP.NET Core projects targeting the full .NET Framework.
#Add steps that publish symbols, save build artifacts, and more:
#https://docs.microsoft.com/azure/devops/pipelines/languages/dotnet-core"

実行するソースコードの対象ブランチを指定しています。

trigger:
- master

このpipelineの実行環境は最新バージョンのWindowsイメージを指定しています。

pool:
  vmImage: 'windows-latest'

pipeline内で利用する変数になります。こちらはビルドで利用する値です。*1

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

stepsではpipelineが実行するタスクが定義されています。以前の画面では自身でタスクを選んでいた部分の記述となります。

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    xxxxxxxxxxxxxxxxxxxx

それぞれのtaskの詳細は以下の通りです。通常のビルドと同様の処理を実施しています。

  •  NuGetToolInstaller@1
    • NuGetツールをインストールします
    • NuGetは、.NETのライブラリパッケージを管理するツールです
  • NuGetCommand@2
    • NuGetを使ってソリューションの依存関係を復元します
  • VSBuild@1
    • Visual Studioビルドタスクを使ってソリューションをビルドします
    • このタスクでは、Webプロジェクトをパッケージ化してビルドアーティファクトとして保存します

タスクでは他に単体テストの実行などがよく利用されます。

このようにして自動で自動リリース実施前のpipelineを作成することができます。

所感

画面の案内に沿って一連の定義作成が可能になったので非常に便利ですが、内容について想定外のものが含まれていないことはしっかりチェックしておきましょう。

意外とbuildConfigurationの指定などが間違っている場合もあります。

通常は、この配置が終わった後、リリース定義で実際にリリースを行うことになります。

*1:Visual studioでビルド時に選ぶソリューションのパスとプラットフォームとビルド設定です。あらかじめプロジェクトで定義済みのものがあれば値を変更できます。

執筆担当者プロフィール
千葉 泰規

千葉 泰規(日本ビジネスシステムズ株式会社)

デジタルイノベーション部所属。 取り扱う技術:C#,PowerShell,DevOps,Azure アプリ開発など主にしています。

担当記事一覧