ALM アクセラレータ パイプラインを構成する
パイプラインは、ALM アクセラレータのエンジンです。 Power Platform の ALM プロセスを自動化します。 これらは、Azure DevOps のサービスである Azure Pipelines を使用して構築され、Azure DevOps プロジェクトに保存されます。
ALM プロセスを自動化するには、次の 4 つの主要なパイプラインが使用されます。
- Import
- Export
- Delete
- ビルド/展開
パイプラインは、ALM アクセラレータ キャンバス アプリで使用するように設計されています。 アプリを使用する必要はありませんが、使用することをお勧めします。 このアプリでは、パイプラインを呼び出すためのシンプルなインターフェイスを使用することができ、基礎となるパラメーター を理解していなくてもパイプラインを構成することができます。
一般的な ALM アクセラレータ パイプライン シナリオ
ALM Accelerator のパイプラインとアプリには既定の構成があるため、Power Platform 用の ALM をすぐに使用することができます。 パイプラインは、組織の要件を満たすさまざまな ALM シナリオをカバーできます。 以下のセクションでは、一般的なシナリオを説明し、ALM アクセラレータ アプリ内や直接パイプラインから、パイプライン構成、プロファイルの展開、手順を使用してどのように対応するかを説明します。
1 つのプロジェクトにパイプラインを、別のプロジェクトにソース コードをインストールする
ALM アクセラレータ アプリおよび展開プロファイルには、パイプライン プロジェクトとソース プロジェクトを指定できます。 セットアップ ウィザードのオプションを使用すると、別のパイプライン プロジェクトとリポジトリを指定できます。 これらのオプションは、組織内でのソリューションのストレージを、ユーザー、企業構造、またはその他の要因に基づいて区分する場合に便利です。 ほとんどの場合、パイプライン YAML ファイルはパイプライン プロジェクトに保存され、エクスポート、インポート、および削除パイプラインは、ソリューションがソース管理されているプロジェクトに作成されます。
ALM アクセラレータを使用せずにパイプラインを実行する
ALM アクセラレータ キャンバス アプリでは、パイプラインを実行するための簡単なボタン レイヤーを使用できます。 ただし、アプリを実行する必要はありません。 アプリから独立してパイプラインを使用する場合は、コマンド ラインから直接実行します。 自分のアプリを構築することもできます。 ALM アクセラレータ ソリューションに含まれる Azure DevOps API のカスタム コネクタを使用して、Power Automate や他の Power Platform テクノロジでパイプラインを呼び出すことができます。
どちらの場合も、パイプラインを独立して使用する場合に大切なのは、パイプラインに渡されるパラメーターを理解することです。
パイプライン パラメーター
import-unmanaged-to-dev-environmentのパラメーター: インポート ソリューション パイプラインを使用して、ソース管理から開発環境にアンマネージ ソリューションをインポートします 環境。
次のテーブルでは、パイプラインのパラメーターのインポートに関して説明しています。
パラメーター | 例 | Description |
---|---|---|
Project | マイ Azure DevOps プロジェクト | ソリューションをインポートするプロジェクトの名前 |
パック | マイ Azure DevOps リポジトリ | ソリューションからインポートするリポジトリの名前 |
SolutionName | MySolutionName | インポートを行うソリューションの名称 |
メール | me@example.com | ソリューションをインポートするユーザーの電子メールアドレス |
ユーザー名 | 姓、名 | ソリューションをインポートするユーザーのユーザー名 |
分岐 | main | ソリューションのビルドとインポートの分岐 |
ServiceConnectionName | MyServiceConnection | インポートに使用するサービスの接続名 |
ServiceConnectionUrl | example.crm.dynamics.com | インポートのための作成者環境の URL |
EnvironmentName | MyDevEnvironment | 展開パイプライン内の展開設定を検索するために使用され、ソリューション ソースの構成ディレクトリの下にあるフォルダー名を返します |
delete-unmanaged-solution-and-componentsのパラメーター: 開発 環境 からアンマネージド ソリューションとそのすべてのコンポーネントを削除するには、ソリューション削除パイプラインを使用します。
次のテーブルでは、パイプラインのパラメーターの削除に関して説明しています。
パラメーター | 例 | Description |
---|---|---|
SolutionName | MySolutionName | 削除するソリューションの名前です |
ServiceConnectionName | MyServiceConnection | 削除するソリューションに使用するサービス コネクションの名前 |
ServiceConnectionUrl | example.crm.dynamics.com | 削除されるソリューションの作成者環境の URL |
export-solution-to-gitのパラメーター: エクスポート ソリューション パイプラインを使用して、ソリューションをGitリポジトリにエクスポートします。
次のテーブルでは、パイプラインのパラメーターのエクスポートに関して説明しています。
パラメーター | 例 | Description |
---|---|---|
Project | マイ Azure DevOps プロジェクト | ソリューションのソースコードをエクスポートするプロジェクト名 |
パック | マイ Azure DevOps リポジトリ | ソリューションのソースコードをエクスポートするリポジトリ名 |
SolutionName | MySolutionName | エクスポートを行うソリューションの名称 |
メール | me@example.com | ソリューションをエクスポートするユーザーの電子メールアドレス |
ユーザー名 | 姓、名 | ソリューションをエクスポートするユーザーのユーザー名 |
CommitMessage | #1234 バグの修正 | コミット時の変更点をリポジトリに保存するための説明 |
分岐 | main | ブランチの作成元のソース ブランチ、またはコミット先の既存のブランチ |
BranchToCreate | 機能-1234 | Branch パラメーターに基づいて作成する新しいブランチの一意の名前 (必要な場合) |
ServiceConnectionName | MyServiceConnection | ソリューションのエクスポートに使用するサービスの接続名 |
ServiceConnectionUrl | example.crm.dynamics.com | エクスポートされるアンマネージド ソリューションが存在する作成者環境の URL |
日付 | [展開設定 JSON] | エクスポート パイプラインと構成展開パイプラインで使用される 展開設定 |
PortalSiteName | MyPortalSite | エクスポートされるソリューションに関連する Power Pages のウェブサイト名 |
ALM アクセラレータ パイプラインを使用してエクスポートか展開するときに、ソリューションのバージョン管理をカスタマイズする
既定では、エクスポートおよび展開されたソリューションは、展開パイプライン YAML ファイル で特定された名前でバージョン管理されています。 しかし、ALM アクセラレータ パイプラインを使用すると、エクスポートまたは展開するときに、ソリューションのバージョン管理をカスタマイズできます。 次のセクションでは、使用できる方法について説明します。
エクスポートされているバージョン管理
パイプラインがエクスポートしたバージョン番号を、展開されたすべての環境のバージョン番号として使用します。 エクスポート パイプラインか、ALM アクセラレータ用の変数ライブラリにあるグローバル変数で、UseSolutionVersionFromDataverse という名前の変数を作成します。 値を True と入力します。 変数によって、確実にソリューションにエクスポートされたバージョン番号がダウンストリーム環境で保持され、ソリューション ソースがコミットされたときにソース管理にも反映されます。
カスタム バージョン管理ロジック
ALM アクセラレータ フックを使用して、ソリューションのバージョンを設定します。 カスタム ロジックを build-solution-pack-pre-hook.yml
テンプレートに追加するか、PAC ソリューションのバージョン などの他のツールを使用して Solution.xml
を直接操作します。
持ち込みテンプレートのバージョン管理をカスタマイズする
展開パイプラインを生成するために独自のテンプレートを持ち込むことができるため、ソリューションの最初のエクスポートでバージョン管理される際の柔軟性が向上します。 たとえば、build-deploy-validation/test/prod-SampleSolution.yml
のコピーを作成して、ビルド名を既定の名前から 実行番号またはビルド番号の構成 に基づいたバージョン管理戦略に変更します。
build:
- name: 1.0.$(Date:yyyyMMdd)$(Rev:.r)
...
テンプレートを配置したら、展開プロファイルの 導入手順を更新して 指定します。
パイプラインの展開ステップ数とターゲット環境の名前をカスタマイズする
テンプレートを含むカスタムバージョン管理 と同様に、展開パイプラインを生成するために独自のテンプレートを持ち込むことができるため、ソリューションが最初にエクスポートされるときの柔軟性が向上します。 テンプレートが存在するプロジェクトと、展開パイプラインの生成に使用するテンプレートへのパスを指定します。 プロジェクトとパスの設定は、ALM アクセラレータ管理アプリの展開プロファイルと展開ステップのテーブルにあります。
テンプレートへのパスは、エクスポート パイプラインの場所のルートに対する相対パスです。 たとえば、既定の検証環境展開パイプライン テンプレートのパスは、/Pipelines/build-deploy-validation-SampleSolution.yml
です。 エクスポート パイプラインと同じプロジェクト内のテンプレートを使用するには、パスを /Pipelines/build-deploy-validation-MyCustomTemplate.yml
に指定します。
次のテーブルでは、ソリューション固有の値のテンプレートにあるプレースホルダーが、展開パイプラインが生成されるときに置換されることについて説明しています。
プレースホルダー | Description |
---|---|
SampleSolutionName | 展開を行うソリューションの名称 |
RepositoryContainingTheBuildTemplates | 展開パイプラインに使用するビルド テンプレートを含むリポジトリ |
BranchContainingTheBuildTemplates | 展開パイプラインに使用するビルド テンプレートを含むブランチ |
alm アクセラレータ変数グループ | ビルド テンプレートが展開パイプラインに使用するグローバル変数グループ |
build-deploy-validation/test/prod-SampleSolution.yml
パイプライン テンプレートをコピーして、独自のカスタム テンプレートで始めることをお勧めします。
既定のテンプレートを変更せずに、パイプラインでカスタム手順を実行する
ALM アクセラレータのパイプライン テンプレートには拡張ポイントやフックがいくつかあり、アップグレード シナリオでのマージ競合のノイズを最小限に抑えながら、パイプラインをカスタマイズする際に使用できます。 ALMアクセラレータ フックの詳細をご覧ください。
パイプラインで特定のアクションのオン/オフを切り替える
パイプラインは変数を使用して、タスクを実行するかどうか、または可能性のあるどのタスクを実行すべきかを決定します。 以下のテーブルは、個々のパイプライン、alm-accelerator-variable-group、またはすべてのパイプラインに設定できる変数について説明しています。
注意
エクスポート時に特定のソリューションに対してこれらの変数を設定するには、パイプライン テンプレートのエクスポートに基づいて特定のエクスポート パイプラインを作成します。 export-solution-to-git-{SolutionName}
と名前を付けます。 ALM アクセラレータ アプリは、ソリューションにgeneral-purpose export-solution-to-git パイプラインではなく、このエクスポート パイプラインを使用します。
変数 | 既定 | パイプライン | Description |
---|---|---|---|
GenerateDeploymentSettings | True | Export | false の場合、展開設定は生成されず、ソース管理に保存されません。 |
UseDeploymentSettingsPlaceholders | True | Export | false の場合、展開設定はプレースホルダーを使用せず、展開設定のすべての値が deploymentSettings.json と customDeploymentSettings.json ファイルに保存されます。重要: 展開設定では機密情報がプレーンテキストで保存される場合があります。 ソース管理にアクセスできるすべてのユーザーは、これらの値を読み取ることができます。 この変数の値を設定する場合は注意してください。 |
DisableFlows | False | Export | true の場合、コミットする前に、アンパックされたソース コードですべてのフローがオフになります。 |
UseSolutionVersionFromDataverse | False | Export | true の場合、ソリューションでエクスポートされたバージョン番号は、ダウンストリーム環境に保存されます。 バージョン番号は、ソリューション ソースがコミットされるときにソース管理に反映されます。 |
DoNotExportCurrentEnvironmentVariableValues | False | Export | true の場合、現在の環境の変数値は、アンパックされたソリューションのソース コードから削除されます。 |
PublishCustomizationsBeforeExport | True | Export | false の場合、ソリューションがエクスポートされる前にカスタマイズは公開されません。 このオプションは、共有環境で作業しているときに、最新の公開済みカスタマイズのみをエクスポートする場合に便利です。 |
CacheEnabled | True | エクスポート/展開 | false の場合、PowerShell モジュールのキャッシュは無効になります。 このオプションは、パイプラインの実行後にキャッシュ ディレクトリのクリーンアップをパイプラインで実行する場合に便利です。 |
ProcessCanvasApps | True | エクスポート/展開 | false の場合、キャンバス アプリはエクスポート中にアンパックされず、ビルド中にパックされません。 注意: キャンバスの展開とパックの機能は現在 プレビュー にあります。 現時点では、運用環境での使用は推奨していません。 ただし、この変数を True に設定しない限り、ソース管理でキャンバスのソース コードを表示することはできません。 |
DisableSolutionChecker | False | デプロイ | true の場合、ソリューション チェッカーは、pull request を使用して開始されるすべてのビルドで実行されるわけではありません。 |
SkipSolutionImport | False | デプロイ | true の場合、展開中にソリューションのインポート手順がスキップされます。 ただし、フローのアクティブ化や共有などの他のアクティビティは引き続き実行されます。 |