管理パッケージのリリース準備

学習の目的

  • パッケージのベータバージョンを作成してテストします。
  • パッケージリリースのリリースノートの概念を説明する。
  • パッケージをアップロードしてインストールする。

管理パッケージのリリースを作成し、他の組織がインストールできるように公開するプロセスを、リリースの「アップロード」と言います。本番リリースにいったん含まれたコンポーネントに適用できない変更もあるため、最終的な本番リリースのアップロードは慎重に行う必要があります。まずはベータリリースでテストするのがベストです。ベータリリースは、Developer Edition 組織と Sandbox にのみインストールできます。アップグレードはできませんが、パッケージ内の変更を完全にロックせずにパッケージのインストールをテストすることができます。

Tasha は今まで一度も管理パッケージの作成をしたことがないので、プロジェクトのパッケージ化が機能にどう影響するか確信がありません。ベータバージョンを作成することにより、プロジェクトをパッケージとしてテストするために、チーム全体でベータバージョンをインストールしたスクラッチ組織を簡単に作成できます。

最初のベータバージョンをアップロードする

ベータリリースをアップロードする前に、Tasha はプロジェクトの最新の変更がパッケージ化組織に反映されていることを確認する必要があります。 

Tasha のチームと一緒に次の手順を実行して確認しましょう。

CumulusCI の ci_master フローを使用してパッケージをパッケージ化組織にリリースします。

  1. GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して、VS Code でリポジトリを開きます。
  2. ターミナルウィンドウで、cci flow run ci_master --org packaging と入力します。

コマンドの --org packaging の部分で、CumulusCI がフローを実行する組織を指定します。

ci_master フローが完了したら、パッケージ化組織で新しいパッケージバージョンをアップロードする準備が整います。まず、次の手順を実行してパッケージに含まれているコンポーネントを確認します。

  1. GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して、VS Code でリポジトリを開きます。
  2. ターミナルウィンドウで、cci org browser packaging と入力します。
  3. 組織が新しいブラウザウィンドウで開きます。Salesforce で、[設定] に移動します。
  4. 「パッケージマネージャ」を検索します。
  5. パッケージの名前 [Food-Bank] をクリックします。
  6. メタデータに新しいオブジェクト、項目、ページレイアウトが含まれていることを確認します。

アプリケーションに含まれているすべてのカスタムコンポーネントのリストを表示している、Salesforce の新しい Food-Bank アプリケーション。

リリースに正しいコンポーネントが含まれていることを確認できたら、release_beta フローを実行します。新しいベータ管理パッケージバージョンをアップロードするプロセスが自動化され、さらに Github リポジトリの [Releases (リリース)] に新しいバージョンが公開されます。VS Code ターミナルで、cci flow run release_beta --org packaging と入力します。

ベータバージョンをテストする

ベータバージョンを作成した後、Tasha は新しいスクラッチ組織でテストする必要があります。ci_beta フローは、最新のベータバージョンをインストールして Apex テストを実行するように作られています。この場合はまだパッケージに Apex テストが含まれていませんが、新しい組織にベータが正常にインストールされることを確認できます。 

Tasha のチームと一緒に次の手順を実行しましょう。

VS Code ターミナルで、cci flow run ci_beta --org beta と入力します。

このフローの実行中に、「InstalledPackage version number does not exist」 (インストールされるパッケージのバージョン番号が存在しません) というエラーが表示されることがあります。このエラーは無視してかまいません。新しいパッケージリリースがインストールできるようになるまで遅延がありますが、CumulusCI はしばらく時間をおいてから再試行して、このエラーを処理します。

ci_beta フローが正常に完了したら、Dev Hub の有効なスクラッチ組織数に数えられないように、ベータスクラッチ組織を削除してください。  VS Code ターミナルで、cci org scratch_delete beta と入力します。

最終的なリリースをアップロードする

ベータパッケージバージョンに問題がなければ、Tasha は release_production フローを使用してパッケージの最終版をアップロードできます。 

Tasha のチームと一緒に次の手順を実行しましょう。

VS Code ターミナルで、cci flow run release_production --org packaging と入力します。

リリースノートを確認する

最終的なリリースが公開されたので、Tasha は GitHub に自動的に生成されたリリースノートを確認します。リリースノートには、前回のリリース以降に行われたすべての変更が要約されています。アプリケーションを使用しているユーザは、この 1 か所ですべての最新機能とバグ修正について参照できます。

Tasha のチームと一緒に次の手順を実行しましょう。 

  1. GitHub Desktop で [Repository (リポジトリ)] → [View on GitHub (GitHub で表示)] を選択して、GitHub でリポジトリを開きます。
  2. [2 releases (リリース 2 件)] というタブをクリックします。

GitHub と CumulusCI は、このリリースサイクルの一部だったプル要求のすべての情報を自動的に集計します。[Changes (変更)] セクションにはプル要求に追加した説明が表示され、[Issues Closed (クローズしたイシュー)] セクションには Deliveries (配送) 設定を作成して自分が作成およびクローズしたイシューが表示されます。

パッケージをインストールする

Tasha は Sandbox に新しいパッケージをインストールしてテストします。これは自分の Sandbox で作業している場合に実行する手順です。

メモ

メモ

Trailhead では Sandbox がサポートされていないため、このモジュールのハンズオン Challenge ではこの手順を Sandbox では実行せずに、Trailhead Playground を使用します。手順を読んでから下のハンズオン Challenge に進み、Trailhead Playground を使用して指示に従ってください。

  1. Tasha は cci org connect sandbox --sandbox コマンドを入力して CumulusCI を Sandbox に接続します。
  2. Salesforce ログインページ (https://test.salesforce.com) が開きます。Sandbox のユーザ名とパスワードを入力してログインします。
  3. Tasha は [許可] ボタンをクリックして、CumulusCI が組織に接続することを承認します。
  4. ページに「Congratulations! Your authentication succeeded」 (おめでとうございます! 認証が成功しました) というメッセージだけが表示されます。
  5. Tasha は VS Code ターミナルに戻り、cci flow run install_prod --org sandbox を実行して Sandbox にパッケージの最終的なリリースをインストールします。
  6. インストールが完了したら、Tasha は Web ブラウザで Sandbox を開いて cci org browser sandbox コマンドを使用し、カスタマイズが適切に設定されたことを確認します。

Tasha は Sandbox で新しい Food Bank アプリケーションのカスタマイズを確認します。既存の設定を使用して徹底的にテストを行ったら、新しいパッケージを本番組織にインストールする準備が整います。

リソース