# ワークフロー成果物

GitHub Actions ワークフローの成果物としてのデータの格納と共有について説明します。

## ワークフローの成果物について

成果物とは、ワークフロー実行中に生成されるファイル、またはファイルのコレクションです。 成果物を使えば、ジョブの完了後にデータを永続化でき、そのデータを同じワークフロー中の他のジョブと共有できます。 たとえば、ワークフローの実行が終了した後、成果物を使ってビルドとテストの出力を保存しておけます。

GitHubには、ビルド成果物をアップロードおよびダウンロードするために使用できる 2 つのアクション、[upload-artifact](https://github.com/actions/upload-artifact) および [download-artifact](https://github.com/actions/download-artifact) での操作が用意されています。

一般的な成果物は次のとおりです。

* ログファイルとコアダンプ
* テスト結果、エラー、スクリーンショット
* バイナリあるいは圧縮されたファイル
* ストレステストのパフォーマンス出力およびコードカバレッジの結果

## 成果物と依存関係キャッシュの比較

成果物とキャッシュは、 GitHubにファイルを格納する機能を提供するため似ていますが、各機能は異なるユース ケースを提供し、同じ意味で使用することはできません。

* パッケージ管理システムによってダウンロードされた依存関係、中間ビルド出力、再生成にコストがかかるその他のファイルなど、ワークフローの実行間で頻繁に変更されないファイルを再利用する場合は、キャッシュを使用します。 これらのファイルをキャッシュするとワークフローの実行速度が向上しますが、キャッシュが使用できない場合、ジョブは常にこれらのファイルを再ダウンロードまたは再生成できる必要があります。
* ビルド バイナリやビルド ログなど、ワークフローの実行が終了した後に使用または表示するためにジョブによって生成されたファイルを保存する場合、またはワークフロー内のジョブ間でファイルを渡す場合は、アーティファクトを使用します。

依存関係のキャッシュについて詳しくは、「[依存関係キャッシュのリファレンス](/ja/actions/reference/workflows-and-actions/dependency-caching)」をご覧ください。

## ビルドのアーティファクト構成証明の生成

構成証明を使用することで、ビルドするソフトウェアに対して検証不可能な証明と整合性の保証を作成できます。 さらに、ソフトウェアを使用するユーザーは、ソフトウェアがビルドされた場所と方法の確認ができます。

ソフトウェアを使用してアーティファクトの証明を生成すると、ビルドの来歴を立証し、次の情報を含む暗号署名付きの主張が作成されます。

* 成果物に関連付けられているワークフローへのリンク
* 成果物のリポジトリ、組織、環境、コミット SHA、トリガーとなったイベント
* 証明の確立に使用する OIDC トークンからのその他の情報。 詳しくは、「[OpenID Connect](/ja/actions/concepts/security/openid-connect)」をご覧ください。

関連付けられたソフトウェア部品表（SBOM）を含むアーティファクトのアテステーションを生成することもできます。 ビルドを、その中で使用されるオープンソースの依存関係の一覧に関連付けることで、透明性は提供され、コンシューマーがデータ保護標準に準拠できるようになります。

ビルドの実行後、ビルドによって生成されたアーティファクトの一覧の下にある構成証明にアクセスできます。

詳しくは、「[アーティファクトの構成証明を使用してビルドの出所を確立する](/ja/actions/how-tos/secure-your-work/use-artifact-attestations/use-artifact-attestations)」をご覧ください。

## 削除されたワークフロー実行の成果物

ワークフロー実行が削除されると、その実行に関連付けられたすべての成果物もストレージから削除されます。 ワークフロー実行を削除するには、GitHub Actions UI、REST API、または GitHub CLI を使います。「[ワークフロー実行の削除](/ja/actions/how-tos/manage-workflow-runs/delete-a-workflow-run)」、「[ワークフロー実行を削除する](/ja/rest/actions/workflow-runs?apiVersion=2022-11-28#delete-a-workflow-run)」、または「[gh run delete](https://cli.github.com/manual/gh_run_delete)」を参照してください。