組織へのデモデータの追加
学習の目的
- レコードデータのセットを追加する。
- 取得したレコードデータのスクラッチ組織へのリリースを自動化する。
CumulusCI のタスクとフローに関する実用的な知識を身に付けた Tasha は、アプリケーションのストーリーを具体化するのに必要なオートメーションの作成を開始します。
デモデータの設計と作成
Tasha はデモの実現に必要なデータについてじっくり考えています。新バージョンのアプリケーションのテストに協力してくれるボランティアから作成するレコードに関する意見を集め、どうすれば新しいユーザーが馴染みやすいか思いをめぐらしています。
Tasha はスクラッチ組織にデータセットを作成します。入念に選んだ取引先、配送、配送品目のセットには不自然さがなく、フードバンクがアプリケーションをどう使用できるかを示します。作成したデータを CumulusCI タスクを使用してリポジトリに取り込み、cumulusci.yml
ファイルを変更して新しいスクラッチ組織を作成したらデータが自動的に追加されるようにします。最後に、新しい機能ブランチとプルリクエストを作成して、作業内容をコミュニティと共有します。
では、Tasha と一緒にデータセットを作成しましょう。
データセットを取得する
- 新しい機能ブランチを作成して変更を保存します。GitHub Desktop で [Current Branch (現在のブランチ)] → [New Branch (新規ブランチ)] を選択し、ブランチに
feature/demo-data
と名前を付けます。 - 使用する開発組織を作成します。VS Code を開きます (GitHub Desktop で [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)])。
- VS Code で新しいターミナルを作成します ([Terminal (ターミナル)] → [New Terminal (新規ターミナル)])。
- 新しいターミナルで
cci flow run dev_org --org dev
コマンド入力します。 - CumulusCI にどのオブジェクトのどの項目の情報を取得するかを指示する必要があります。まず
cci task run generate_dataset_mapping --org dev
コマンドを実行して、対応付けファイルを作成し、CumulusCI に必要なデータを指示します。 - 必要に応じてエクスプローラーで
mapping.yml
をクリックし、CumulusCI で作成されたmapping.yml
ファイルをエディターパネルで開いて確認します。この対応付けファイルには、データを入力する項目とデータをオブジェクトに読み込む順序が定義されます。現在のプロジェクトで追加した項目は、関連する標準オブジェクトの必須項目のセットと共に自動的に含まれます。- Account Name (取引先名) がファイルに含まれています。これは設定でカスタマイズした項目ではありませんが、新しい Delivery (配送) オブジェクトの参照項目として参照されています。CumulusCI が取り込むのは必須の Account Name (取引先名) 項目のみであり、配送に関連する組織についてさらに情報を取得する場合は後で他の取引先項目を追加できます。
cci org browser dev
コマンドを実行してブラウザーで開発組織を開き、データの作成を開始します。- このパッケージを使用する実際のフードバンクが作成するのはどの取引先、配送、配送品目か、それらのレコードを使用してアプリケーションの機能をどう示すかを検討します。開発組織でいくつかレコードを作成して、デモで強調するオブジェクトごとに少なくとも 1 件のレコードを作成したことを確認します。
- 配送のカスタムタブに移動してレコードを作成し、その後で関連リストから配送品目を追加できます。
- ターミナルに戻り、加えたデータ変更を取得します。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
フローは次の手順で変更できます。
- フローの現状を確認して、このタスクをどこに追加するかを判別します。
qa_org
フローに含まれるすべてのフローとタスクを表示するには、cci flow info qa_org
コマンドを入力します。 - データの読み込みは通常、設定タスクの最後に行われます。したがって、
cci flow info config_qa
コマンドを入力して、新しいタスクが追加される設定フローを見つけます。
このコマンドでは既存の 2 つの設定タスクが表示されます。1 つはインストール後タスクを完了し、もう 1 つは管理者プロファイルが更新されてインストール後設定を利用できることを確認します。サンプルデータの読み込みは組織の準備ができた後、最後に行うため、新しいタスクは最初の 2 つのタスクの後に追加します。これらの新しいステップをプロジェクトの cumulusci.yml
設定ファイルに直接追加します。
- VS Code サイドバーのエディターで
cumulusci.yml
ファイルを開きます。ファイルの最後に新しい行をインデントせずに追加します。 - 次のカスタマイズを追加します。
flows: config_qa: steps: 3: task: load_dataset config_dev: steps: 3: task: load_dataset
Command+s (macOS) または Ctrl+s (Windows) を押して変更を cumulusci.yml
ファイルに保存します。
リストに config_qa
と config_dev
への変更が含まれていることを次の手順で確認します。
- QA 組織フローを確認するには、VS Code ターミナルで
cci flow info qa_org
コマンドを入力します。 - 開発組織フローを確認するには、
cci flow info dev_org
コマンドを入力します。
config_dev
フローと config_qa
フローのそれぞれに load_dataset
が 3 つ目のタスクとして表示されます。
タスクが追加されたので、デモデータを新しい QA スクラッチ組織の機能制限トライアルで使用しましょう。
QA スクラッチ組織でデモデータをテストする
cci flow run qa_org --org qa
コマンドを入力し、qa_org
フローを実行してスクラッチ組織を作成します。- 組織の作成が終了したら、Web ブラウザーで開いて変更が新しいスクラッチ組織に含まれていることを確認します。VS Code ターミナルで
cci org browser qa
コマンドを入力します。
サンプルデータを確認できたら、変更を GitHub に公開します。
- GitHub Desktop の
feature/demo-data
機能ブランチで、[Summary (概要)] に「Add demo dataset
」 (デモデータセットを追加) と指定してコミットを作成します。[Commit to feature/demo-data (feature/demo-data にコミット)] をクリックします。 - コミットが完了した後に情報ペインで [Publish branch (ブランチを公開)] をクリックして機能ブランチを GitHub に公開します。
- 公開後に情報ペインが更新されたら、[Create Pull Request (プルリクエストを作成)] をクリックしてこの変更の新しいプルリクエストを作成します。
- GitHub Desktop が自動的にブラウザーで [Open a pull request (プルリクエストを開く)] 画面を表示します。
- ヘッダー [Changes (変更)] の下に、行ったことを説明する行「
Add demo dataset
」 (デモデータセットを追加) を追加します。 - [Create Pull Request (プルリクエストを作成)] をクリックします。
- 次の画面で [Merge pull request (プルリクエストをマージ)] をクリックします。[Confirm merge (マージを確認)] をクリックします。
- [Delete branch (ブランチを削除)] をクリックして、マージしたブランチを削除します。
- GitHub Desktop に戻ります。
- [Current Branch (現在のブランチ)] が feature/demo-data であることを確認します。
- GitHub Desktop メニューバーで [Branch (ブランチ)] → [Delete (削除)] を選択し、feature/demo-data を削除することを確認します。
- GitHub Desktop では [Current Branch (現在のブランチ)] が自動的にマスターブランチに戻ります。
- メニューから [Repository (リポジトリ)] → [Pull (プル)] を選択して、GitHub の feature/demo-data からマージした変更を削除します。リポジトリが更新されます。
順調です! データを追加してアプリケーションを具体化し、開発ライフサイクル全体を通じてストーリーが伝わるようにしました。終了前に忘れずにスクラッチ組織をクリーンアップします。
- GitHub Desktop メニューバーで [Repository (リポジトリ)] → [Open in Visual Studio Code (Visual Studio Code で開く)] を選択して VS Code ターミナルウィンドウを開き、スクラッチ組織を削除します。
- dev スクラッチ組織を削除するには、
cci org scratch_delete dev
コマンドを入力します。 - 2 つ目のスクラッチ組織を削除するには
cci org scratch_delete QA
コマンドを入力します。
まとめ: CumulusCI を使用したデータ管理
アプリケーションのストーリーを伝えるデータセットを作成すると、Tasha と同僚が最良のパッケージを提供しようとコラボレーションするとき、プロセスのあらゆる段階で役に立ちます。CumulusCI フローをカスタマイズして作成するすべての組織にデータを追加することで、開発者、テスター、潜在的なユーザー、その他の関係者は常にアプリケーションで完成されたリアルなエクスペリエンスを得られるようになります。データによってアプリケーションが記憶に残るものになります。