独立したパッケージ SDK のビルド パイプラインの設定
この記事では、拡張コードに対して Cloud Scale Unit およびセルフサービスの配置可能パッケージを生成できるよう、Commerce ソフトウェア開発キット (SDK) のビルド パイプラインを設定する方法について説明します (新しい独立系拡張モデルを使用)。
この記事は、Commerce SDK 10.0.19 以降に適用されます。 Microsoft Dynamics Lifecycle Services (LCS) の開発者仮想マシン (VM) から Retail SDK の以前のバージョンを使用している場合、この記事に記載されている手順は機能しません。 この記事の情報は、新しい独立した拡張モデル (つまり、パブリック フィードからパッケージを消費している場合) と、独立系梱包および拡張機能モデルを使用している場合に適用されます。
Azure DevOps のビルド パイプラインを設定し、Cloud Scale Unit 拡張パッケージを生成
Microsoft Azure DevOps 組織にサイン インします。
パイプラインを選び、新しいパイプラインを選択します。
拡張コードのソース リポジトリ (リポジトリ) を選択します。
既存の Azure Pipelines YAML ファイルを選択します。
Dynamics365Commerce.ScaleUnit GitHub リポジトリから、build-pipeline.yml ファイル を選び、取得します。
メモ
YAML ファイルは、Dynamics365Commerce.ScaleUnit GitHub リポジトリの Pipeline/PowerShellScripts ディレクトリ のスクリプトの一部を参照します。 これら全てのスクリプトをリポジトリに含めてください。 サンプル リポジトリをクローンする場合、すべてのスクリプトが既に含まれています。
続行 を選択します。
YAML ファイルのスクリプトはソリューション全体を構築し、アウトプット (CloudScaleUnitExtensionPackage.zip パッケージ) をビルド用に公開済みアーティファクトのドロップ ロケーションにアップロードします。
メモ
YAML ファイルはリポジトリのソリューション ファイルを検索し、ソリューションを構築して、CloudScaleUnitExtensionPackage.zip パッケージを検索します。 したがって、拡張機能プロジェクトと梱包プロジェクトがソリューションにリンクされている必要があります。 拡張プロジェクトをモデル化する方法については、Dynamics365Commerce.ScaleUnit GitHub リポジトリ のサンプルを参照します。
変更を保存し、キューにビルドを追加します。
ビルドが完了すると、公開済みアーティファクトから ScaleUnitPackage_(Build.BuildNumber).zip パッケージをダウンロードできます。
Cloud Scale Unit 拡張パッケージのリリース パイプラインを設定
ベスト プラクティスとして、個別のビルド パイプラインとリリース パイプラインを設定する必要があります。 個別のリリース パイプラインを作成する場合は、LCS の資産のアップロードを使い、CloudScaleUnitExtensionPackage.zip パッケージをアセット ライブラリにアップロードできます。 別のリリース パイプラインにではなく、LCS にアップロードする場合は、タスクをビルド パイプラインの一部として追加できます。
次の手順に従って、リリース パイプラインを設定して、CloudScaleUnitExtensionPackage.zip パッケージを LCS のアセット ライブラリにアップロードします。
Azure DevOps で、リリースから新しいパイプラインを選び、テンプレートの空のジョブを選択します。
新しいリリース パイプラインの名前を入力します。 既定の名前は、アプリ パイプライン > 新しいリリース パイプラインです。
パイプラインで、コンポーネントを追加を選択します。
コンポーネントを追加ダイアログ ボックスでプロジェクトを選び、以前のセクションで作成したビルド パイプラインを選択します。
オプション: 作成したコンポーネントでトリガーボタン (稲妻記号) を選択し、継続的配置トリガーを有効にしてから、ブランチなどを選択できます。
メモ
リリース パイプラインには、リリースのトリガー時期と方法が指定できる他のオプションも用意されています。
保存を選択して、パイプラインを保存します。 フォルダ名の入力を求めるメッセージが表示された場合は、任意のフォルダ名を入力します。
ステージを選び、ステージ 1LCS に資産をアップデートの名前を変え、ジョブ 1 を選択します。
タスクで、エージェント ジョブを選択します。
タスクの追加で、Dynamics Lifecycle Services (LCS) 資産のアップロードを検索し、追加を選択します。
アップロード タスクを設定するには、Azure Pipelines を使用して資産をアップロード の手順に従います。 タスクで、次の値を設定します。
資産のタイプ: CloudScaleUnitExtensionPackage
アップロードするファイル: $(System.DefaultWorkingDirectory)/_ScaleUnit-CI/drop/ScaleUnitPackage_$(Release.Artifacts._ScaleUnit-CI.BuildNumber).zip
LCS 資産名: ScaleUnitPackage_$(Release.Artifacts._ScaleUnit-CI.BuildNumber)
メモ
資産名は、名前付けガイドラインに従って変更できます。
タスクの構成が完了したら、保存を選び、リリース パイプラインを保存します。
パイプラインタブでパイプラインを選び、リリースの作成を選択します。
新しいリリースの作成ダイアログ ボックスで、Cloud Scale Unit コンポーネントを選び、作成からリリースを手動でトリガーします。
リリース パイプラインを自動化するには、継続的ビルドを構成します。 詳細については、パイプラインのリリース ドキュメントを参照します。
Commerce セルフ サービス パッケージを生成するには、Azure DevOps のビルド パイプラインを設定
次の手順に従い、店舗の POS、Hardware Station および Cloud Scale Unit (セルフ ホスト) インストーラーを生成します。
Azure DevOps 組織にサイン インします。
パイプラインを選び、新しいパイプラインを選択します。
ソース リポジトリを選択します。
既存の Azure Pipelines YAML ファイルを選択します。
-
メモ
YAML ファイルは、Dynamics365Commerce.InStore GitHub リポジトリの Pipeline/PowerShellScripts ディレクトリ のスクリプトの一部を参照します。 これら全てのスクリプトをリポジトリに含めてください。 サンプル リポジトリをクローンする場合、すべてのスクリプトが既に含まれています。
続行 を選択します。
YAML ファイルには、証明書を使用して 店舗の POS および Hardware Station インストーラーに署名する手順が示されています。 スクリプトでは、Azure Key Vault の証明書ファイルが検索され、その証明書ファイルが署名に使用されます。 Azure Key Vault から証明書を読むには、アプリケーション ID、シークレット、証明書名およびタイムスタンプ サーバーの詳細 (タイムスタンプを使用して証明書に署名するために) を指定する必要があります。 詳細については、Azure Key Vault から Azure ポータルを使用して証明書を設定および取得 を参照します。
パイプライン内のキー コンテナーとタイムスタンプ サーバーの詳細を表示するには、ビルド パイプラインの変数タブに次の変数を作成し、その値を指定します。 変数のセキュリティを確保するには、変数タイプとしてシークレットを選択します。
ApplicationId
AzureKeyVaultURI
CertificateName
SecretValue
タイムスタンプ
この変数の値として、
http://timestamp.digicert.com
の通り、タイムスタンプ プロバイダを指定できます。
Azure に証明書を格納していない場合は、セキュア タスクオプションまたは Azure Pipelines がサポートする他のオプションを使用して、インストーラーに署名できます。
インストーラに署名する必要がな場合は、署名ステップを YAML ファイルから削除できます。 YAML ファイルで、PowerShell@2 タスクを検索して、削除します。
YAML ファイルのスクリプトはソリューション全体を構築し、アウトプット (HardwareStation.Installer.exe および ModernPos.Installer.exe パッケージ) をビルド用に公開済みアーティファクトのドロップ ロケーションにアップロードします。
メモ
YAML ファイルはリポジトリのソリューション ファイルを検索し、ソリューションを構築して、HardwareStation.Installer.exe および ModernPos.Installer.exe パッケージを検索します。 したがって、拡張機能プロジェクトと梱包プロジェクトがソリューションにリンクされている必要があります。 拡張プロジェクトをモデル化する方法については、Dynamics365Commerce.InStore GitHub リポジトリ のサンプルを参照します。
変更を保存し、キューにビルドを追加します。
ビルドが完了すると、公開済みアーティファクトから HardwarePos.Installer.exe および ModernPos.Installer.exe パッケージをダウンロードできます。
Commerce セルフサービス パッケージのリリース パイプラインの設定
ベスト プラクティスとして、個別のビルド パイプラインとリリース パイプラインを設定する必要があります。 個別のリリース パイプラインを作成する場合は、LCS の資産のアップロードを使い、HardwareStation.Installer.exe および ModernPos.Installer.exe パッケージをアセット ライブラリにアップロードできます。 別のリリース パイプラインにではなく、LCS にアップロードする場合は、タスクをビルド パイプラインの一部として追加できます。
これらの手順に従い、リリース パイプラインを設定して、HardwareStation.Installer.exe および ModernPos.Installer.exe パッケージを LCS のアセット ライブラリにアップロードします。
Azure DevOps で、リリースから新しいパイプラインを選び、テンプレートの空のジョブを選択します。
新しいリリース パイプラインの名前を入力します。 既定の名前は、アプリ パイプライン > 新しいリリース パイプラインです。
パイプラインで、コンポーネントを追加を選択します。
コンポーネントを追加ダイアログ ボックスで、リポジトリ プロジェクトを選び、以前のセクションで作成したビルド パイプラインを選択します。
オプション: 作成したコンポーネントでトリガーボタン (稲妻記号) を選択し、継続的配置トリガーを有効にしてから、ブランチなどを選択できます。
メモ
リリース パイプラインには、リリースのトリガー時期と方法が指定できる他のオプションも用意されています。
保存を選択して、パイプラインを保存します。 フォルダ名の入力を求めるメッセージが表示された場合は、任意のフォルダ名を入力します。
ステージを選び、ステージ 1LCS に資産をアップデートの名前を変え、ジョブ 1 を選択します。
タスクで、エージェント ジョブを選択します。
タスクの追加で、Dynamics Lifecycle Services (LCS) 資産のアップロードを検索し、追加を選択します。
アップロード タスクを完全に設定するには、Azure Pipelines を使用して資産をアップロード の手順に従います。 タスクで、次の値を設定します。
- 資産のタイプ: Retail Self-Service Package
- アップロードするファイル: $(System.DefaultWorkingDirectory)/_CommerceSDK-Signing-EXE/drop/Installer_$(Release.Artifacts._CommerceSDK-Signing-EXE.BuildNumber).exe
- LCS 資産名: Installer_$(Release.Artifacts._CommerceSDK-Signing-EXE.BuildNumber)
タスクの構成が完了したら、保存を選び、リリース パイプラインを保存します。
パイプラインタブでパイプラインを選び、リリースの作成を選択します。
新しいリリースの作成ダイアログ ボックスで、コンポーネントを選び、作成からリリースを手動でトリガーします。
リリース パイプラインを自動化するには、継続的ビルドを構成します。 詳細については、パイプラインのリリース ドキュメントを参照します。