成果物の削除、状態バッジの作成、および環境保護の構成

完了

このユニットでは、GitHub からワークフロー成果物を削除し、既定の保持期間を変更する方法を学習します。 次に、ワークフロー状態バッジを作成し、README.md ファイルに追加する方法について学習します。 最後に、いくつかの重要なワークフロー環境保護を特定し、それらを有効にする方法を学習します。

GitHub からのワークフロー成果物を削除する

既定では、GitHub はビルド ログとアップロードされた成果物を 90 日間保存してから、削除します。 この保持期間は、リポジトリの種類と、特定の GitHub 製品に設定されている使用制限に基づいてカスタマイズできます。 使用制限と成果物の保持に関する情報はほかにも多数あります。 詳細については、「使用制限、課金、管理」を参照してください。

ただし、あなたは GitHub 成果物とパッケージに対する組織のストレージ制限に達しつつあるとします。 使用制限を増やしたり、ワークフローをブロックしたりせずに、古い成果物を削除する必要があります。 GitHub で期限切れになる前に成果物を削除することで、使用されている GitHub Actions ストレージを再利用できます。 次のセクションで説明するように、2 つの方法を使用できます。 どちらの方法でも、リポジトリへの書き込みアクセス権が必要です。

警告

成果物をいったん削除すると復元できないことに注意してください。

リポジトリから成果物を手動で削除する

GitHub の成果物を手動で削除するには、[アクション] タブに移動し、左側のサイドバーからワークフローを選択して、表示する実行を選択します。

Screenshot that shows an example workflow run on GitHub.

[成果物] で、削除する成果物を削除します。

Screenshot that shows the trash can icon to delete an artifact on GitHub.

Artifacts REST API を使用して、成果物を削除することもできます。 この API では、作業成果物に関する情報をダウンロードして取得することもできます。

既定の保持期間を変更する

リポジトリ、組織、またはエンタープライズ アカウントの既定の成果物とログの保持期間を変更できます。 保持期間の変更は、新しい成果物とログ ファイルにのみ適用されることに注意してください。 これは既存のオブジェクトには適用されません。 これらの設定を構成するプロセスは、リポジトリ、組織、またはエンタープライズによって少し異なります。 成果物とログの保持の構成の詳細については、このモジュールの最後にある概要を確認してください。

リポジトリ、組織、またはエンタープライズ全体で構成された設定に加えて、ワークフロー ファイル内の個々の成果物のカスタム保持期間を定義することができます。 このプラクティスは、特定の成果物の保持期間を既定の設定または構成された設定と異なるようにしたい個々のユース ケースに適しています。 これは、upload-artifact アクションのステップで retention-days 値を使用することで実行できます。

次の例では、既定の 90 日ではなく、10 日間保持される成果物をアップロードします。

- name: 'Upload Artifact'
  uses: actions/upload-artifact@v2
  with:
    name: my-artifact
    path: my_file.txt
    retention-days: 10

ワークフロー状態バッジをリポジトリに追加する

[アクション] タブにアクセスしなくても、ワークフローが正常に完了したかどうかを確認し状態を把握できれば便利です。 ワークフロー状態バッジをリポジトリ README.md ファイルに追加すると、ワークフローが成功しているか失敗しているかをすばやく確認できます。 リポジトリ README.md ファイルに状態バッジを追加することは一般的ですが、任意の Web ページに追加することもできます。 既定では、状態バッジは既定のブランチのワークフローの状態を表示しますが、branchevent パラメーターを使用して、他のブランチにワークフロー状態バッジを表示することもできます。

ワークフロー状態バッジを表示するためにファイルに追加する必要がある内容の例を次に示します。

![example branch parameter.](https://github.com/mona/special-octo-eureka/actions/workflows/grading.yml/badge.svg?branch=my-workflow)

たとえば、URL の末尾に目的のブランチ名と共に branch パラメーターを追加すると、既定のブランチではなく、そのブランチのワークフロー状態バッジが表示されます。 このプラクティスにより、README.md ファイル内にテーブルに似たビューを作成して、ブランチ、イベント、サービス、または環境などに基づいてワークフロー状態を表示することが簡単になります。

Screenshot that shows an example workflow status badge with the my-workflow branch.

GitHub を使用して状態バッジを作成することもできます。 [アクション] タブ内のワークフロー セクションに移動し、特定のワークフローを選択します。 [状態バッジの作成] オプションを使用すると、そのワークフローのマークダウンを生成し、branchevent パラメーターを設定できます。

Screenshot that shows the option to create a status badge from the workflows section on GitHub.

ワークフロー環境保護を追加する

セキュリティは大きな問題であるため、保護規則とシークレットを使用してワークフロー環境を構成することが理にかなっています。 これらの要素が設定されていると、ジョブは、環境の保護ルールのすべてがパスするまで、開始したり環境内の定義されたシークレットにアクセスしたりしません。 現在、保護規則と環境シークレットは、パブリック リポジトリにのみ適用されます。

パブリック リポジトリ内のワークフローに適用できる環境保護規則は 2 つあります。必須のレビュー担当者待機タイマーです。

  • 必須のレビュー担当者は、ジョブの環境を参照するワークフロー ジョブを承認するように特定の担当者またはチームを設定できます。
  • 待機タイマーを使用すると、ジョブがトリガーされた後、特定の時間だけジョブを遅延させることができます。

たとえば、デプロイが行われる前に開発チームが承認する必要がある運用環境に対してワークフローを作成する必要があるとします。 次の手順に従います。

  1. リポジトリ内に運用環境を作成します。
  2. 特定の開発チームからの承認を要求するように、必須のレビュー担当者の環境保護を構成します。
  3. 運用環境を検索するように、ワークフロー内の特定のジョブを構成します。

新しいリポジトリ環境を作成して構成するには、[環境] の下のリポジトリの [設定] タブを使用します。