ロック解除済みパッケージの作成、テスト、リリース
スクラッチ組織でのプロジェクトの構築とテスト
他の Salesforce DX プロジェクトと同様に、まず自分のスクラッチ組織で作業を開始します。対象の環境でパッケージを構築してインストールする前に、アプリケーションを実行してテストできます。
-
GIFter
ディレクトリにいることを確認します。
GIFter プロジェクトには、そのまま使用できるスクラッチ組織設定ファイルが用意されています。 - まだ Dev Hub 組織に接続していない場合は、Dev Hub 組織にログインします。
sf org login web --set-default-dev-hub --alias DevHub
- スクラッチ組織を作成します。
sf org create scratch --set-default --definition-file config/project-scratch-def.json
次のような応答が表示されます。Your scratch org is ready.
- 次に、
force-app
フォルダーから新しく作成したスクラッチ組織にすべてのソースをリリースします。sf project deploy start
組織にリリースされたすべてのソースのリストが表示されます。=== Pushed Source STATE FULL NAME TYPE PROJECT PATH ───── ──────────────────────────────────── ──────────────────── ───────────────────────────────────────────────────────────────────────── Add GIFter CustomApplication force-app/main/default/applications/GIFter.app-meta.xml Add SearchGIPHY/SearchGIPHY.auradoc AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.auradoc Add SearchGIPHY/SearchGIPHY.cmp AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.cmp Add SearchGIPHY/SearchGIPHY.cmp AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.cmp-meta.xml Add SearchGIPHY/SearchGIPHY.css AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.css Add SearchGIPHY/SearchGIPHY.design AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.design Add SearchGIPHY/SearchGIPHY.svg AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHY.svg Add SearchGIPHY/SearchGIPHYController.js AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHYController.js Add SearchGIPHY/SearchGIPHYHelper.js AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHYHelper.js Add SearchGIPHY/SearchGIPHYRenderer.js AuraDefinitionBundle force-app/main/default/aura/SearchGIPHY/SearchGIPHYRenderer.js Add ChatterHelper ApexClass force-app/main/default/classes/ChatterHelper.cls Add ChatterHelper ApexClass force-app/main/default/classes/ChatterHelper.cls-meta.xml Add GIPHY CspTrustedSite force-app/main/default/cspTrustedSites/GIPHY.cspTrustedSite-meta.xml Add GIFter FlexiPage force-app/main/default/flexipages/GIFter.flexipage-meta.xml Add GIFter_UtilityBar FlexiPage force-app/main/default/flexipages/GIFter_UtilityBar.flexipage-meta.xml Add GIFter PermissionSet force-app/main/default/permissionsets/GIFter.permissionset-meta.xml Add GiphyMedia0 RemoteSiteSetting force-app/main/default/remoteSiteSettings/GiphyMedia0.remoteSite-meta.xml Add GiphyMedia1 RemoteSiteSetting force-app/main/default/remoteSiteSettings/GiphyMedia1.remoteSite-meta.xml Add GIPHY StaticResource force-app/main/default/staticresources/GIPHY.resource Add GIPHY StaticResource force-app/main/default/staticresources/GIPHY.resource-meta.xml Add jquery360 StaticResource force-app/main/default/staticresources/jquery360.js Add jquery360 StaticResource force-app/main/default/staticresources/jquery360.resource-meta.xml Add GIFter CustomTab force-app/main/default/tabs/GIFter.tab-meta.xml
ソースの中に、構築する GIFter アプリケーションへのアクセス権を管理するために使用する権限セットがあります (GIFter という名前です)。 - 組織のデフォルトユーザーをこの権限セットに割り当てます。
sf org assign permset --name GIFter
=== Permsets Assigned USERNAME PERMISSION SET ASSIGNMENT ───────────────────────────── ───────────────────────── test-ou0arkv1qbow@example.com GIFter
- では、アプリケーションを開いて試してみましょう。
組織を開いてアプリケーションランチャーから GIFter を参照することもできますが、ここではさらに 1 歩進んで、GIFter を直接開いてみます。sf org open --path lightning/n/GIFter
[GIPHY Search Terms (GIPHY 検索語)] に「funny animals (面白い動物)」と入力した場合、表示は次のようになります。 - アプリケーションを試してみましょう。お楽しみください。
これで、アプリケーションが期待どおりに機能することを確認できました。次に、パッケージを作成しましょう。
ロック解除済みパッケージの作成
パッケージには 2 つの部分があります。1 つはパッケージで、もう 1 つはパッケージバージョンです。
パッケージは、実際に何を作成するかを示すマニフェストで、パッケージバージョンは、ある時点で構築およびインストールしている内容に関するメタデータとコードのスナップショットです。
そのため、最初のステップは、パッケージを作成し、名前や説明など、変更される可能性の低い情報を指定することです。さらに、作成するパッケージの種類も選択します。この場合は、ロック解除済みパッケージです。
- 任意のテキストエディター で
sfdx-project.json
を開きます。
GIFter は、いつでも変更できるオープンソースのプロジェクトです。この手順を確実に完了させるために、開始時のプロジェクトファイルを次のようなものにします。{ "packageDirectories": [ { "path": "force-app", "default": true } ], "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", "sourceApiVersion": "55.0" }
- 必要に応じて、
id
、versionName
、versionNumber
など既存のパラメーターをいくつか削除します。Salesforce CLI のバージョンと一致するようにsourceApiVersion
を更新します。忘れずに保存しましょう。
- パッケージを作成します。
sf package create --name GIFter --description "Using GIPHY to find GIFs and post to Chatter" --path force-app --package-type Unlocked --target-dev-hub DevHub
これで、パッケージの別名 (GIFter) がパッケージ ID (0Ho) に関連付けられます。
=== Ids NAME VALUE ───────────────────── ────────────────── Package Id 0Hoxxx
パッケージの別名またはパッケージ ID を忘れても、sf package list
を実行すれば、Dev Hub で作成したすべてのパッケージをリストできます。
パッケージバージョンの作成
パッケージの定義が完了したので、パッケージの特定のバージョンを作成できます。このパッケージバージョンは、さまざまな組織にインストールされるアイテムです。アプリケーションを更新するときには、更新されたソースを含む新しいパッケージバージョンを作成します。
重要: このプロジェクトでは、パッケージバージョンのワークフローを説明しています。コマンドラインの例をコピーして貼り付ける場合は、固有の情報に置き換えてハンズオン Challenge を完了してください。
-
sfdx-project.json
ファイルを開きます。sf package:create
コマンドを実行すると、重要な詳細が追加されてプロジェクトファイルが更新されます。packageDirectories
に、定義したパッケージ名が表示されますが、バージョン名とバージョン番号はプレースホルダーになっています。また、このコマンドによってpackageAliases
セクションが作成され、パッケージ名 (別名) がその関連するパッケージ ID (0Ho) に関連付けられます。{ "packageDirectories": [ { "path": "force-app", "default": true, "package": "GIFter", "versionName": "ver 0.1", "versionNumber": "0.1.0.NEXT" } ], "namespace": "", "sfdcLoginUrl": "https://login.salesforce.com", "sourceApiVersion": "55.0", "packageAliases": { "GIFter": "0Hoxxx" } }
versionName
は自由に設定できます。作成する新しいバージョンごとに変更しなくてもかまいません。さらに重要なのは、versionNumber
が NEXT キーワードの使用に基づいて自動的に増分されることです。残りの部分はそのままにしておくことができます。 - GIFter の最初のバージョンをリリースする準備ができているとします。
versionName
とversionNumber
を更新します。"versionName": "Summer '22", "versionNumber": "1.0.0.NEXT"
-
sfdx-project.json
を保存します。 - この情報セットを使用して、最初のパッケージバージョンを作成します。
sf package version create --package GIFter --path force-app --installation-key test1234 --wait 10 --target-hub-org DevHub
Successfully created the package version [08cxxx]. Subscriber Package Version Id: 04txxx. Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx As an alternative, you can use the "sf package install" command.
これで、このパッケージを別の組織にインストールする準備が整いました。
スクラッチ組織でのパッケージバージョンのインストールとテスト
TP (または、実際の場合は Sandbox や本番組織) にパッケージをインストールする前に、常にまず、新しく作成したスクラッチ組織でテストすることをお勧めします。そこで、以前に実行したいくつかのステップを繰り返しましょう。ただし今回は、直前に作成したパッケージバージョンを使用してアプリケーションをスクラッチ組織にインストールします。
- スクラッチ組織を作成します。
sf org create scratch --set-default --definition-file config/project-scratch-def.json
- パッケージバージョンの別名を使用してパッケージをスクラッチ組織にインストールします。
sf package install --wait 10 --publish-wait 10 --package GIFter@1.0.0-1 --installation-key test1234 --no-prompt
この操作には少し時間がかかることがあります。完了すると、次のメッセージが表示されます。Successfully installed package [04t_xxx]
以前に使用したproject deploy start
コマンドの代わりに install コマンドを効果的に使用することができました。 - 権限セットを割り当てます。
sf org assign permset --name GIFter
- 次に、スクラッチ組織を開いて、期待どおりに動作するかを確認しましょう。
sf org open --path lightning/n/GIFter
アプリケーションは期待どおりに動作しました。[Setup (設定)] に移動して [Installed Packages (インストール済みパッケージ)] を選択すると、GIFter パッケージがインストールされていることを確認できます。
いいですね! いよいよ、Trailhead Playground にインストールします。
Trailhead Playground (TP) へのパッケージバージョンのインストール
当然ですが、TP にパッケージバージョンをインストールする場合も、同じコマンドをいくつか使用します。ただし、スクラッチ組織とは異なり、TP はすでに存在しているため、作成するステップはありません。
- パッケージをインストールします。今回は TP を対象とします。
sf package install --target-org MyTP --wait 10 --package GIFter@1.0.0-1 --installation-key test1234 --no-prompt
- 完了したら、権限セットを割り当てます。
sf org assign permset --name GIFter --target-org MyTP
- 最後に、組織を開いてアプリケーションを実行します。
sf org open --path lightning/n/GIFter --target-org MyTP
ロック解除済みパッケージを使用したアプリケーションの作成、テスト、リリースに成功しました。素晴らしいですね。
設定の確認は行いません。[Verify Step (ステップを確認)] をクリックして、プロジェクトの次のステップへ進んでください。