Retail SDK ビルド パイプラインの設定
この記事では、Azure DevOps ビルド エージェント (Microsoft がホストしているエージェント) を使用して Retail SDK Azure DevOps のビルド パイプラインを設定する方法を説明します。 Retail SDK 用のビルドを生成する場合 Modern POS (MPOS) を除き、専用のビルド コンピューターは不要です。 この設定は、Azure DevOps ビルド エージェントと一緒に使用します。 この記事は、Retail SDK バージョン 10.0.11 およびそれ以上に適用されます。
前提条件
Retail SDKは、Azure Repos (Git リポジトリ)、GitHub、または Azure DevOps に追加する必要があります。 Retail SDKは、Lifecycle Services (LCS) の開発仮想機械 (VM) のサービス ボリューム ドライブで利用できます。 LCS に開発 VM をプロビジョニングするには、開発環境の配置とアクセスの手順に従います。
Azure DevOps の ビルド パイプラインの設定
Azure DevOps 組織にサイン インします。
パイプライン、新しいパイプラインの順に選択します。
ソース リポジトリを選択します。
パイプラインをクリックし、パイプラインの名前を指定します。 エージェント プールの場合は、Azure パイプラインを選択します。 エージェントの詳細については、vs2017-win2016 と入力します。
ソースの取得タブで、Retail SDK レポを選択します。
エージェント ジョブ パネルで、表示名を指定します。 エージェント プールの場合、<パイプラインからの継承>を選択します。
MSBuild タスクを追加します。 プロジェクトの場合は、RetailSDK\dirs.proj または RetailSDK\Code\dirs.proj を選択します。 選択は Retail SDK の構造によって異なります。 MSBuild のバージョンをMSBuild 15.0に設定します。 MSBuild アーキテクチャを MsBuild x86 に設定します。
PowerShell タスクを追加します (Linux、macOS、または Windows 上で Powershell のスクリプトを実行します)。 タスクの名前を指定します。 タイプに、インラインを選択します。
スクリプト セクションで、このスクリプトをコピーして貼り付けます。
# Script to copy the Retail deployable package with Build number. Copy-Item "$(Build.SourcesDirectory)\RetailSDK\Packages\RetailDeployablePackage\RetailDeployablePackage.zip" -Destination "$(Build.ArtifactStagingDirectory)\RetailDeployablePackage_$(Build.BuildNumber).zip"
アーティファクトを公開タスクを追加します。 表示名およびアーティファクト名 (ドロップ名) を指定します。 発行のためのパス フィールドを $(Build.ArtifactStagingDirectory) に設定します。
変更を保存して、ビルドをキューします。
ビルドが完了すると、公開済みアーティファクトから配置可能パッケージをダウンロードできます。
パイプラインのサンプル YAML スクリプト
次の YAML スクリプトでパイプラインを指定します。
pool:
name: Azure Pipelines
demands: msbuild
steps:
- task: MSBuild@1
displayName: 'Build solution RetailSDK/Code/dirs.proj'
inputs:
solution: RetailSDK/Code/dirs.proj
msbuildVersion: 15.0
- powershell: |
# Script to copy the Retail deployable package with Build number.
Copy-Item "$(Build.SourcesDirectory)\RetailSDK\Packages\RetailDeployablePackage\RetailDeployablePackage.zip" -Destination
"$(Build.ArtifactStagingDirectory)\RetailDeployablePackage_$(Build.BuildNumber).zip"
displayName: 'Copy the Retail deployable package'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: drop'
ビルド コンピューターを使用する Azure DevOps ビルド パイプラインの設定
ビルド コンピューターが Azure DevOps パイプラインで MSBuild を使用している場合は、ビルド コンピューターで次の手順に従って Retail SDK (Version 10.0.11) で接続できます。
- ビルド マシンに Visual Studio 2017 をインストールします。
- オプション: ビルド マシンで Visual Studio 2017 の開発者コマンド プロンプトから MSBuild (バージョン 15.0) を実行します。 Visual Studio 2017 の開発者コマンド プロンプトを開き、Retail SDK ルート フォルダーに移動して、
msbuild dirs.proj
コマンドを実行します。 コマンドが正常に完了していることを確認します。 - ビルド マシンで、MSBuild (バージョン 15.0) の環境変数を追加します。 システム プロパティ > 環境変数 > システム変数に移動します。 パス、新規の順に選択し、MSBuild のパス変数を追加します。 その後、パス環境変数のエントリを一覧の一番上に移動します。 このパスは、Visual Studio 2017 にインストールした場所によって異なります。 MSBuild のパスを取得するために、Visual Studio 2017 の開発者コマンド プロンプトを開き、
where msbuild
コマンドを実行します。 たとえば、C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin のようなパスです。 - ビルド マシンで Azure DevOps ビルド エージェントを再起動します。
- Azure DevOps パイプラインで、エージェント プール フィールドを既定に設定し、MSBuild のバージョンを 15.0 以降に変更します。
トラブルシューティング
NuGet エラーで Azure DevOps のビルドに失敗した場合は、次の問題を確認してください。
- Azure Pipeline は、NuGet 復元の MSBuild のバージョン 15.0 を使用していません。
- 拡張機能プロジェクトは、パッケージ参照モデルを使用するようにアップグレードされていない必要があります。