組織へのデモデータの追加

学習の目的

  • レコードデータのセットを追加する。
  • 取得したレコードデータのスクラッチ組織へのリリースを自動化する。

CumulusCI のタスクとフローに関する実用的な知識を身に付けた Tasha は、アプリケーションのストーリーを具体化するのに必要なオートメーションの作成を開始します。 

デモデータの設計と作成

Tasha はデモの実現に必要なデータについてじっくり考えています。新バージョンのアプリケーションのテストに協力してくれるボランティアから作成するレコードに関する意見を集め、どうすれば新しいユーザが馴染みやすいか思いをめぐらしています。 

Tasha はスクラッチ組織にデータセットを作成します。入念に選んだ取引先、配送、配送品目のセットには不自然さがなく、フードバンクがアプリケーションをどう使用できるかを示します。作成したデータを CumulusCI タスクを使用してリポジトリに取り込み、cumulusci.yml ファイルを変更して新しいスクラッチ組織を作成したらデータが自動的に追加されるようにします。最後に、新しい機能ブランチとプル要求を作成して、作業内容をコミュニティと共有します。

では、Tasha と一緒にデータセットを作成しましょう。

データセットを取得する

  1. 新しい機能ブランチを作成して変更を保存します。GitHub Desktop で [Current Branch (現在のブランチ)] → [New Branch (新規ブランチ)] を選択し、ブランチに feature/demo-data と名前を付けます。
  2. 使用する開発組織を作成します。VS Code を開きます (GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)])。
  3. VS Code で新しいターミナルを作成します ([Terminal (ターミナル)] → [New Terminal (新規ターミナル)])。
  4. 新しいターミナルで cci flow run dev_org --org dev コマンド入力します。
  5. CumulusCI にどのオブジェクトのどの項目の情報を取得するかを指示する必要があります。まず cci task run generate_dataset_mapping --org dev コマンドを実行して、対応付けファイルを作成し、CumulusCI に必要なデータを指示します。
  6. 必要に応じてエクスプローラーで mapping.yml をクリックし、CumulusCI で作成された mapping.yml ファイルをエディタパネルで開いて確認します。この対応付けファイルには、データを入力する項目とデータをオブジェクトに読み込む順序が定義されます。現在のプロジェクトで追加した項目は、関連する標準オブジェクトの必須項目のセットと共に自動的に含まれます。
    1. Account Name (取引先名) がファイルに含まれています。これは設定でカスタマイズした項目ではありませんが、新しい Delivery (配送) オブジェクトの参照項目として参照されています。CumulusCI が取り込むのは必須の Account Name (取引先名) 項目のみであり、配送に関連する組織についてさらに情報を取得する場合は後で他の取引先項目を追加できます。
  7. cci org browser dev コマンドを実行してブラウザで開発組織を開き、データの作成を開始します。
  8. このパッケージを使用する実際のフードバンクが作成するのはどの取引先、配送、配送品目か、それらのレコードを使用してアプリケーションの機能をどう示すかを検討します。開発組織でいくつかレコードを作成して、デモで強調するオブジェクトごとに少なくとも 1 件のレコードを作成したことを確認します。
    1. 配送のカスタムタブに移動してレコードを作成し、その後で関連リストから配送品目を追加できます。
  9. ターミナルに戻り、加えたデータ変更を取得します。CumulusCI のデータセットタスクでは、対応付けファイルに定義されたデータのすべてが一度に取得または読み込みされます。作成したデータを対応付けファイルを使用して取得するには、cci task run extract_dataset --org dev コマンドを実行します。

最初のデータセットが取得されました! 次は、QA および開発スクラッチ組織のフローに新しいタスクを追加します。ここまでは dev_org フローを使用して開発組織を作成してきましたが、この後 qa_org フローを使用して品質保証とテスト用の組織を作成します。

新しいタスクを QA 組織フローに追加する

CumulusCI は対応付けファイルを使用して取得するオブジェクトと項目を識別し、テストデータをデフォルトのデータセット datasets/sample.sql に書き出します。必要に応じて、VS Code のサイドバーペインにある sample.sql に移動します。SQL の知識がなくても、追加したデータを CumulusCI が取得したことを確認できます。

cumulusci.yml ファイルの dev_org フローと qa_org フローは次の手順で変更できます。

  1. フローの現状を確認して、このタスクをどこに追加するかを判別します。qa_org フローに含まれるすべてのフローとタスクを表示するには、cci flow info qa_org コマンドを入力します。
  2. データの読み込みは通常、設定タスクの最後に行われます。したがって、cci flow info config_qa コマンドを入力して、新しいタスクが追加される設定フローを見つけます。

このコマンドでは既存の 2 つの設定タスクが表示されます。1 つはインストール後タスクを完了し、もう 1 つは管理者プロファイルが更新されてインストール後設定を利用できることを確認します。サンプルデータの読み込みは組織の準備ができた後、最後に行うため、新しいタスクは最初の 2 つのタスクの後に追加します。これらの新しいステップをプロジェクトの cumulusci.yml 設定ファイルに直接追加します。

メモ

メモ

警告: これらのステップのコードを直接コピーするには、コードブロックで全体を選択してから Command+c (macOS) または Ctrl+c (Windows) を押します。画面上の [Copy (コピー)] ボタンを使用してこの更新を cumulusci.yml ファイルにコピーしないでください。ボタンを使用してコピーするとエラーになります。

  1. VS Code サイドバーのエディタで cumulusci.yml ファイルを開きます。ファイルの最後に新しい行をインデントせずに追加します。
  2. 次のカスタマイズを追加します。
flows:
    config_qa:
        steps:
            3:
                task: load_dataset
    config_dev:
        steps:
            3:
                task: load_dataset

Command+s (macOS) または Ctrl+s (Windows) を押して変更を cumulusci.yml ファイルに保存します。

リストに config_qaconfig_dev への変更が含まれていることを次の手順で確認します。 

  1. QA 組織フローを確認するには、VS Code ターミナルで cci flow info qa_org コマンドを入力します。
  2. 開発組織フローを確認するには、cci flow info dev_org コマンドを入力します。

config_dev フローと config_qa フローのそれぞれに load_dataset が 3 つ目のタスクとして表示されます。

タスクが追加されたので、デモデータを新しい QA スクラッチ組織の機能制限トライアルで使用しましょう。 

QA スクラッチ組織でデモデータをテストする

  1. cci flow run qa_org --org qa コマンドを入力し、qa_org フローを実行してスクラッチ組織を作成します。
  2. 組織の作成が終了したら、Web ブラウザで開いて変更が新しいスクラッチ組織に含まれていることを確認します。VS Code ターミナルで cci org browser qa コマンドを入力します。

サンプルデータを確認できたら、変更を GitHub に公開します。

  1. GitHub Desktop の feature/demo-data 機能ブランチで、[Summary (概要)] に「Add demo dataset」 (デモデータセットを追加) と指定してコミットを作成します。[Commit to feature/demo-data (feature/demo-data にコミット)] をクリックします。
  2. コミットが完了した後に情報ペインで [Publish branch (ブランチを公開)] をクリックして機能ブランチを GitHub に公開します。
  3. 公開後に情報ペインが更新されたら、[Create Pull Request (プル要求を作成)] をクリックしてこの変更の新しいプル要求を作成します。
  4. GitHub Desktop が自動的にブラウザで [Open a pull request (プル要求を開く)] 画面を表示します。
  5. ヘッダー [Changes (変更)] の下に、行ったことを説明する行「Add demo dataset」 (デモデータセットを追加) を追加します。
  6. [Create Pull Request (プル要求を作成)] をクリックします。
  7. 次の画面で [Merge pull request (プル要求をマージ)] をクリックします。[Confirm merge (マージを確認)] をクリックします。
  8. [Delete branch (ブランチを削除)] をクリックして、マージしたブランチを削除します。
  9. GitHub Desktop に戻ります。
  10. [Current Branch (現在のブランチ)] が feature/demo-data であることを確認します。
  11. GitHub Desktop メニューバーで [Branch (ブランチ)] → [Delete (削除)] を選択し、feature/demo-data を削除することを確認します。
  12. GitHub Desktop では [Current Branch (現在のブランチ)] が自動的にマスタブランチに戻ります。
  13. メニューから [Repository (リポジトリ)] → [Pull (プル)] を選択して、GitHub の feature/demo-data からマージした変更を削除します。レジストリが更新されます。

順調です! データを追加してアプリケーションを具体化し、開発ライフサイクル全体を通じてストーリーが伝わるようにしました。終了前に忘れずにスクラッチ組織をクリーンアップします。

  1. GitHub Desktop メニューバーで [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルウィンドウを開き、スクラッチ組織を削除します。
  2. dev スクラッチ組織を削除するには、cci org scratch_delete dev コマンドを入力します。
  3. 2 つ目のスクラッチ組織を削除するには cci org scratch_delete QA コマンドを入力します。

まとめ: CumulusCI を使用したデータ管理

アプリケーションのストーリーを伝えるデータセットを作成すると、Tasha と同僚が最良のパッケージを提供しようとコラボレーションするとき、プロセスのあらゆる段階で役に立ちます。CumulusCI フローをカスタマイズして作成するすべての組織にデータを追加することで、開発者、テスター、潜在的なユーザ、その他の関係者は常にアプリケーションで完成されたリアルなエクスペリエンスを得られるようになります。データによってアプリケーションが記憶に残るものになります。 

リソース