証拠のリリース

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 で導入されました

リリースを作成する際、最後に実行されたパイプラインにジョブアーティファクトが含まれていれば、それらは自動的にリリースエビデンスとしてリリースに含まれます。

ジョブ アーティファクトは通常期限切れになりますが、リリース エビデンスに含まれるアーティファクトは期限切れになりません。

ジョブ・アーティファクト・コレクションを有効にするには、両方を指定する必要があります:

  1. artifacts:paths
  2. artifacts:reports
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 の日付を指定しない場合、リリースの証拠はリリースが作成された日に収集されます。