証拠のリリース
GitLab 12.6 で導入されました。
リリースが作成されるたびに、GitLabはそれに関連するデータのスナップショットを取ります。このデータはJSONファイルに保存され、リリースエビデンスと呼ばれます。この機能にはテストのアーティファクトやリンクされたマイルストーンが含まれ、外部監査のような内部プロセスを容易にします。
リリースエビデンスにアクセスするには、[リリース] ページで[エビデンス] コレクションの見出しの下に表示されている JSON ファイルへのリンクを選択します。
APIを使用して、既存のリリースのリリース・エビデンスを生成することもできます。このため、各リリースは複数のリリース・エビデンス・スナップショットを持つことができます。リリース・エビデンスとその詳細は、[リリース]ページで確認できます。
イシュー・トラッカーが無効になっている場合、リリース・エビデンスをダウンロードすることはできません。
以下はリリースエビデンスオブジェクトの例です:
{
"release": {
"id": 5,
"tag_name": "v4.0",
"name": "New release",
"project": {
"id": 20,
"name": "Project name",
"created_at": "2019-04-14T11:12:13.940Z",
"description": "Project description"
},
"created_at": "2019-06-28 13:23:40 UTC",
"description": "Release description",
"milestones": [
{
"id": 11,
"title": "v4.0-rc1",
"state": "closed",
"due_date": "2019-05-12 12:00:00 UTC",
"created_at": "2019-04-17 15:45:12 UTC",
"issues": [
{
"id": 82,
"title": "The top-right popup is broken",
"author_name": "John Doe",
"author_email": "john@doe.com",
"state": "closed",
"due_date": "2019-05-10 12:00:00 UTC"
},
{
"id": 89,
"title": "The title of this page is misleading",
"author_name": "Jane Smith",
"author_email": "jane@smith.com",
"state": "closed",
"due_date": "nil"
}
]
},
{
"id": 12,
"title": "v4.0-rc2",
"state": "closed",
"due_date": "2019-05-30 18:30:00 UTC",
"created_at": "2019-04-17 15:45:12 UTC",
"issues": []
}
],
"report_artifacts": [
{
"url":"https://gitlab.example.com/root/project-name/-/jobs/111/artifacts/download"
}
]
}
}
リリースの証拠の収集
GitLab 12.10で導入されました。
リリースが作成されると、リリースのエビデンスが自動的に収集されます。それ以外のタイミングでエビデンスの収集を開始するには、APIコールを使います。一つのリリースに対して複数回リリースエビデンスを収集することができます。
エビデンス収集スナップショットは、エビデンスが収集されたタイムスタンプとともに、リリースページに表示されます。
レポートのアーティファクトをリリースの証拠として含めることができます。
GitLab 13.2 で導入されました。
リリースを作成する際、最後に実行されたパイプラインにジョブアーティファクトが含まれていれば、それらは自動的にリリースエビデンスとしてリリースに含まれます。
ジョブ アーティファクトは通常期限切れになりますが、リリース エビデンスに含まれるアーティファクトは期限切れになりません。
ジョブ・アーティファクト・コレクションを有効にするには、両方を指定する必要があります:
ruby:
script:
- gem install bundler
- bundle install
- bundle exec rspec --format progress --format RspecJunitFormatter --out rspec.xml
artifacts:
paths:
- rspec.xml
reports:
junit: rspec.xml
パイプラインが正常に実行された場合、リリースの作成時にrspec.xml
ファイルがリリースの証拠として保存されます。
リリースのエビデンス収集のスケジュールを設定した場合、エビデンス収集の時点ですでに有効期限が切れているアーティファクトがある可能性があります。これを回避するには、artifacts:expire_in
キーワードを使用します。詳細については、イシュー222351を参照してください。
リリース証拠収集のスケジュール
GitLab 12.8で導入されました。
API で:
- 将来の
released_at
の日付を指定した場合、リリースは近日リリースとなり、証拠はリリースの日付に収集されます。それ以前にリリースの証拠を収集することはできません。 - 過去の
released_at
日付を指定した場合、リリースは履歴リリースとなり、証拠は収集されません。 -
released_at
の日付を指定しない場合、リリースの証拠はリリースが作成された日に収集されます。