Omnibus-GitLabでのテストレポート生成
allure-reportを生成する際には、以下の3つのパイプラインが作成されます。
- Omnibus パイプライン
- TRIGGERED_CE/EE_PIPELINE 子パイプライン (手動トリガー)
- QA-TEST 子パイプライン
Omnibus MRパイプライン
Omnibus-GitLabプロジェクトのMRパイプラインは、次の2つの方法でトリガーできます。
- 手動でパイプラインを実行
- MR が存在し、リポジトリにコミットがプッシュされます。
パイプライン内のテストは、現在手動で
- 
Trigger:ce-packageジョブ
- 
Trigger:ee-packageジョブ
トリガー:ce/ee-packageジョブ
これらのジョブは、generate-facts のジョブが完了したら手動でトリガーできます。これらのジョブをトリガーすると、子パイプラインが作成されます。
子パイプラインはTRIGGERED_CE/EE_PIPELINE と呼ばれ、Omnibus-GitLabリポジトリに生成されます。
TRIGGERED_CE/EE_PIPELINE 子パイプライン
この子パイプラインは、メインのGitLabプロジェクトのpackage-and-test/main.gitlab-ci.yml ファイルを使用するqa-test というジョブで構成されています。
qa-test ジョブ
qa-test ジョブは、Omnibus-GitLabリポジトリ内の別の子パイプラインをトリガーします。 MRのコメントとしてallureレポートのスナップショットを取得するには、以下の環境変数を渡す必要があります。qa-job
| 環境変数 | 説明 | 
|---|---|
| GITLAB_AUTH_TOKEN | これは omnibus-gitlabリポジトリにコメントを投稿するために Danger bot にアクセス権を与えるために使用されます。私たちは$DANGER_GITLAB_API_TOKENを使用しています。この変数はomnibugs-gitlabの他の Danger bot 関連のアクセスにも使用されています。 | 
| ALLURE_MERGE_REQUEST_IID | これはe2e-test-report-jobによって使用されるMR IDを表します。e2e-test-report-jobは allure-report-publisher、提供されたIDでMRにメッセージを投稿します。 | 
QA-TEST 子パイプライン
このパイプラインは GitLab QA プロジェクトを使ってオーケストレーションされたテストをすべて実行し、allure gem を使って実行された各テストのレポートソースファイルを生成して共通のフォルダに保存します。
e2e-test-report ジョブ
e2e-test-report ジョブには.generate-allure-report-baseジョブが含まれています。このジョブはallure-report-publisher gem を使用して、指定されたフォルダ内のすべてのレポーターを単一のレポートに照合し、s3 バケットにアップロードします。
また、qa-test-jobの ALLURE_MERGE_REQUEST_IID 変数に渡されたIDを持つMRのコメントとしてallureレポートを投稿します。
allure-report-publisherはバックエンドで allure を使う gem です。GitLabに対応し、レポートをアップロードしてコメントをMRに投稿します。
Omnibus MRパイプラインにおけるQA全体の流れは以下の通りです。
AllureレポートとQAパイプラインのデモ
パイプラインの詳細とAllureレポートの使い方はYouTubeでご覧いただけます。
