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でご覧いただけます。