artifacts:reports:accessibility
-
artifacts:reports:annotations
artifacts:reports:api_fuzzing
artifacts:reports:browser_performance
artifacts:reports:coverage_report
artifacts:reports:codequality
artifacts:reports:container_scanning
artifacts:reports:coverage_fuzzing
artifacts:reports:cyclonedx
artifacts:reports:dast
artifacts:reports:dependency_scanning
artifacts:reports:dotenv
artifacts:reports:junit
artifacts:reports:license_scanning
artifacts:reports:load_performance
artifacts:reports:metrics
artifacts:reports:requirements
artifacts:reports:sast
artifacts:reports:secret_detection
artifacts:reports:terraform
GitLab CI/CDアーティファクトレポートの種類
- テストレポート、コード品質レポート、セキュリティレポート、および、ジョブに含まれるテンプレートによって生成されたその他のアーティファクトを収集します。
- これらのレポートの中には、情報を表示するために使用されるものもあります:
- マージリクエスト
- パイプラインビュー。
- セキュリティダッシュボード。
artifacts: reports
用に作成されたアーティファクトは、ジョブの結果(成功または失敗)に関係なく、常にアップロードされます。artifacts:expire_in
を使用して、アーティファクトの有効期限を設定できます。
いくつかのartifacts:reports
タイプは、同じパイプライン内の複数のジョブによって生成され、各ジョブからのマージリクエストまたはパイプライン機能によって使用されます。
レポート出力ファイルを参照するには、ジョブ定義にartifacts:paths
キーワードが含まれていることを確認してください。
artifacts:reports:accessibility
GitLab 12.8で導入されました。
accessibility
レポートはpa11yを使ってマージリクエストで導入された変更のアクセシビリティへの影響をレポートします。
GitLabはマージリクエストアクセシビリティウィジェットに一つ以上のレポートの結果を表示することができます。
詳しくはアクセシビリティテストをご覧ください。
artifacts:reports:annotations
GitLab 16.3 で導入されました。
annotations
レポートは、ジョブに補助データを添付するために使用されます。
注釈レポートは、注釈セクションを含むJSONファイルです。各注釈セクションには任意の名前を付けることができ、同じまたは異なるタイプの注釈をいくつでも付けることができます。
各注釈は 1 つのキー (注釈タイプ) で、その注釈のデータを含むサブキーを含みます。
注釈タイプ
external_link
external_link
アノテーションをジョブに添付して、ジョブ出力ページへのリンクを追加できます。external_link
アノテーションの値は以下のキーを持つオブジェクトです:
キー | 説明 |
---|---|
label | リンクに関連付けられた人間が読めるラベル。 |
url | リンクが指すURL。 |
レポートの例
以下はジョブ注釈レポートの例です:
{
"my_annotation_section_1": [
{
"external_link": {
"label": "URL 1",
"url": "https://url1.example.com/"
}
},
{
"external_link": {
"label": "URL 2",
"url": "https://url2.example.com/"
}
}
]
}
artifacts:reports:api_fuzzing
- GitLab 13.4で導入されました。
- GitLab Runner 13.4 以降が必要です。
api_fuzzing
レポートはAPI Fuzzing のバグをアーティファクトとして収集します。
GitLabは1つ以上のレポートの結果を表示することができます:
artifacts:reports:browser_performance
GitLab 14.0で
artifacts:reports:performance
。
browser_performance
レポートはアーティファクトとしてブラウザパフォーマンステストのメトリクスを収集します。
GitLabはマージリクエストのブラウザパフォーマンステストウィジェットに1つのレポートの結果を表示することができます。
GitLabは複数のbrowser_performance
レポートの結合結果を表示することはできません。
artifacts:reports:coverage_report
GitLab 14.10で導入されました。
カバレッジレポートをCoberturaフォーマットで収集するにはcoverage_report
。
cobertura
レポートはCobertura カバレッジ XML ファイルを収集します。
Coberturaは元々Java用に開発されましたが、JavaScript、Python、Rubyなど他の言語用に多くのサードパーティが移植しています。
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage/cobertura-coverage.xml
収集されたカバレッジレポートはアーティファクトとして GitLab にアップロードされます。1つのジョブにつき1つのレポートしか使用できません。
GitLabはマージリクエストの差分アノテーションにカバレッジレポートの結果を表示することができます。
artifacts:reports:codequality
codequality
レポートはコード品質のイシューを収集します。収集されたコード品質レポートはアーティファクトとして GitLab にアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
- マージリクエストのコード品質ウィジェット。
- マージリクエストのdiff 注釈。
- 全レポート。
artifacts:reports:container_scanning
container_scanning
レポートはコンテナスキャン脆弱性を収集します。収集されたコンテナスキャニングレポートはアーティファクトとしてGitLabにアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
artifacts:reports:coverage_fuzzing
- GitLab 13.4で導入されました。
- GitLab Runner 13.4 以降が必要です。
coverage_fuzzing
レポートはカバレッジファジングバグを収集します。収集されたカバレッジファジングレポートはアーティファクトとしてGitLabにアップロードされます。GitLabは1つ以上のレポートの結果を表示することができます:
artifacts:reports:cyclonedx
GitLab 15.3 で導入されました。
このレポートは、CycloneDXプロトコルフォーマットに従ってプロジェクトのコンポーネントを記述したソフトウェア部品表です。
ジョブごとに複数のCycloneDXレポートを指定できます。これらは、ファイル名のリスト、ファイル名パターン、またはその両方で指定できます:
- ファイル名パターン (
cyclonedx: gl-sbom-*.json
,junit: test-results/**/*.json
). - ファイル名の配列 (
cyclonedx: [gl-sbom-npm-npm.cdx.json, gl-sbom-bundler-gem.cdx.json]
)。 - 両方の組み合わせ (
cyclonedx: [gl-sbom-*.json, my-cyclonedx.json]
)。 - ディレクトリはサポートされていません(
cyclonedx: test-results
,cyclonedx: test-results/**
)。
以下は、CycloneDXアーティファクトを公開するジョブの例です:
artifacts:
reports:
cyclonedx:
- gl-sbom-npm-npm.cdx.json
- gl-sbom-bundler-gem.cdx.json
artifacts:reports:dast
dast
レポートはDAST 脆弱性を収集します。収集されたDASTレポートはアーティファクトとしてGitLabにアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
- マージリクエストセキュリティウィジェット。
- パイプラインセキュリティタブ。
- プロジェクト脆弱性レポート。
- セキュリティダッシュボード。
artifacts:reports:dependency_scanning
dependency_scanning
レポートは、依存性スキャニングの脆弱性を収集します。収集された Dependency Scanning レポートは GitLab にアーティファクトとしてアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
artifacts:reports:dotenv
GitLab 12.9で導入されました。
dotenv
レポートは環境変数のセットをアーティファクトとして収集します。
収集された変数はジョブの実行時に作成される変数として登録され、ジョブ終了後に動的な環境URLを設定するために使用できます。
dotenv
レポートに重複した環境変数が存在する場合:
- GitLab 14.6以降では、最後に指定されたものが使用されます。
- GitLab 14.5以前ではエラーが発生します。
本来のdotenvルールの例外は以下の通りです:
- 変数キーにはアルファベット、数字、アンダースコア (
_
) のみを使用できます。 -
.env
ファイルの最大サイズは 5 KB です。この制限はセルフマネージド・インスタンスで変更できます。 - GitLab.com では、継承される変数の最大数は Free で 50、Premium で 100、Ultimate で 150 です。セルフマネージドインスタンスのデフォルトは 150 で、
dotenv_variables
アプリケーションの制限を変更することで変更できます。 -
.env
ファイルの変数置換はサポートされていません。 -
.env
ファイル のマルチライン値はサポートされていません。 -
.env
ファイルに空行やコメント(#
で始まる)を含めることはできません。 -
env
ファイルのキー値には、一重引用符や二重引用符を使用する場合を含め、スペースや改行文字を含めることはできません (\n
)。 - 構文解析中の引用符エスケープ (
key = 'value'
->{key: "value"}
) はサポートされていません。 - UTF-8 エンコーディングのみがサポートされています。
artifacts:reports:junit
junit
レポートはJUnit レポート形式の XML ファイルを収集します。収集されたユニットテストレポートは、アーティファクトとして GitLab にアップロードされます。JUnit は元々 Java で開発されましたが、JavaScript、Python、Ruby などの他の言語用にサードパーティから多くの移植版が提供されています。
詳細と例については、ユニットテストレポートを参照ください。以下は、Ruby のテストツール RSpec から JUnit レポート形式の XML ファイルを収集する例です:
rspec:
stage: test
script:
- bundle install
- rspec --format RspecJunitFormatter --out rspec.xml
artifacts:
reports:
junit: rspec.xml
GitLabは1つ以上のレポートの結果を表示することができます:
- マージリクエストのコード品質ウィジェット。
- 全レポート。
JUnit ツールの中には、複数の XML ファイルにエクスポートするものがあります。1 つのジョブで複数のテストレポートパスを指定し、それらを 1 つのファイルに連結することができます。どちらかを使用します:
- ファイル名パターン (
junit: rspec-*.xml
,junit: test-results/**/*.xml
). - ファイル名の配列 (
junit: [rspec-1.xml, rspec-2.xml, rspec-3.xml]
)。 - 両方の組み合わせ (
junit: [rspec.xml, test-results/TEST-*.xml]
)。 - ディレクトリはサポートされていません(
junit: test-results
,junit: test-results/**
)。
artifacts:reports:license_scanning
GitLab 12.8 で導入されました。
ライセンススキャンレポートはGitLab 15.9で非推奨となり、GitLab 16.3で削除されました。代わりに、ライセンス承認ポリシーと 新しいライセンススキャン方法を使うようにマイグレーションしてください。
artifacts:reports:load_performance
- GitLab 13.2 で導入されました。
- GitLab Runner 11.5 以上が必要です。
load_performance
レポートはロードパフォーマンステストのメトリクスを収集します。レポートはアーティファクトとして GitLab にアップロードされます。
GitLabはマージリクエストロードテストウィジェットに1つのレポートの結果だけを表示することができます。
GitLabは複数のload_performance
レポートの結合結果を表示することはできません。
artifacts:reports:metrics
metrics
レポートはメトリクスを収集します。収集されたメトリクスレポートはアーティファクトとしてGitLabにアップロードされます。
GitLabはマージリクエストメトリクスレポートウィジェットに1つ以上のレポートの結果を表示することができます。
artifacts:reports:requirements
GitLab 13.1で導入されました。
requirements
レポートはrequirements.json
ファイルを収集します。収集された要件レポートはアーティファクトとして GitLab にアップロードされ、既存の要件はSatisfied としてマークされます。
GitLab は、プロジェクト要件に 1 つ以上のレポートの結果を表示できます。
artifacts:reports:sast
13.3でGitLab UltimateからGitLab Freeに移行しました。
sast
レポートはSAST 脆弱性を収集します。収集されたSASTレポートはアーティファクトとしてGitLabにアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
- マージリクエストSASTウィジェット。
- セキュリティダッシュボード。
artifacts:reports:secret_detection
- GitLab 13.1 で導入されました。
- 13.3でGitLab Freeに移行。
- GitLab Runner 11.5 以上が必要です。
secret-detection
レポートは検出されたシークレットを収集します。収集されたシークレット検出レポートはGitLabにアップロードされます。
GitLabは1つ以上のレポートの結果を表示することができます:
- マージリクエストの秘密スキャンウィジェット。
- パイプラインセキュリティタブ。
- セキュリティダッシュボード。
artifacts:reports:terraform
- GitLab 13.0から導入されました。
- GitLab Runner 11.5以上が必要です。
terraform
レポートは Terraformtfplan.json
ファイルを取得します。クレデンシャルを削除するためにJQ処理が必要。収集されたTerraformプランレポートはアーティファクトとしてGitLabにアップロードされます。
GitLabは1つ以上のレポートの結果をマージリクエストTerraformウィジェットに表示することができます。
詳しくは、 terraform plan
の情報をマージリクエストに出力する を参照してください。