ワークフローの実行ページから、ワークフローの実行が進行中か完了しているかを確認できます。 パブリックなリポジトリの分も含むワークフローの実行情報を見るには、GitHubのアカウントにログインしなければなりません。 詳しくは、「GitHub 上のアクセス権限」をご覧ください。
実行が完了している場合には、結果が成功か失敗か、キャンセルされたか、またはニュートラルかを確認できます。 実行が失敗した場合には、ビルドログを表示して検索し、失敗の原因を診断してワークフローを再実行することもできます。 また、課金対象のジョブ実行時間を表示したり、ログやビルドの成果物をダウンロードすることもできます。
GitHub Actionsは、Checks APIを使用してワークフローのステータス、結果、ログを出力します。 GitHub は、ワークフローの実行に対してそれぞれ新しいチェックスイートを作成します。 チェックスイートには、ワークフロー内の各ジョブに対するチェック実行が含まれ、各ジョブにはステップが含まれています。 GitHub Actionsは、ワークフローのステップとして実行されます。 Checks API の詳細については、「チェック用 REST API エンドポイント」を参照してください。
メモ
リポジトリには有効なワークフロー ファイルだけをコミットしてください。 .github/workflows に不正なワークフロー ファイルが含まれていると、GitHub Actions は新規のコミットのたびに失敗したワークフローの実行を生成します。
ログを表示してエラーを診断する
ワークフローの実行が失敗した場合には、どのステップが失敗の原因になったかを確認し、失敗したステップのビルドログを確かめてトラブルシューティングすることができます。 各ステップの実行にかかった時間もわかります。 ログファイルの特定の行のパーマリンクをコピーして、チームで共有することもできます。 これらのステップを実行するには、リポジトリへの読み取りアクセスが必要です。
ワークフローファイルで設定されたステップに加えて、GitHub はジョブの実行をセットアップして完了するために、各ジョブに 2 つの追加ステップを追加します。 これらのステップは、「Set up job」および「Complete job」として実行されるワークフローに記録されます。
GitHub ホステッド ランナー上のジョブの実行の場合、"ジョブの設定" ではランナー イメージの詳細が記録され、ランナー マシン上にあったプレインストールされたツールのリストへのリンクが含まれます。
- 
GitHub で、リポジトリのメイン ページに移動します。 
- 
リポジトリ名の下にある [ Actions] をクリックします。 !["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png) 
- 
左サイドバーで、表示するワークフローをクリックします。 ![[アクション] タブの左側のサイド バーのスクリーンショット。ワークフロー "CodeQL" が濃いオレンジ色の枠線で囲まれています。](/assets/cb-40551/images/help/actions/superlinter-workflow-sidebar.png) 
- 
ワークフロー実行の一覧で実行の名前をクリックすると、ワークフロー実行の概要が表示されます。 
- 
[ジョブ] の下、または視覚化グラフ内で、表示するジョブをクリックします。 
- 
失敗したステップは自動的に展開され、結果が表示されます。 
- 
あるいはログの中の特定の行へのリンクを取得するには、そのステップの行番号をクリックします。 このリンクは、Webブラウザのアドレスバーからコピーできます。  
ログを検索する
特定のステップのビルドログを検索できます。 ログを検索する際、展開されているステップのみが結果に含まれます。 これらのステップを実行するには、リポジトリへの読み取りアクセスが必要です。
- 
GitHub で、リポジトリのメイン ページに移動します。 
- 
リポジトリ名の下にある [ Actions] をクリックします。 !["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png) 
- 
左サイドバーで、表示するワークフローをクリックします。 ![[アクション] タブの左側のサイド バーのスクリーンショット。ワークフロー "CodeQL" が濃いオレンジ色の枠線で囲まれています。](/assets/cb-40551/images/help/actions/superlinter-workflow-sidebar.png) 
- 
ワークフロー実行の一覧で実行の名前をクリックすると、ワークフロー実行の概要が表示されます。 
- 
[ジョブ] の下、または視覚化グラフ内で、表示するジョブをクリックします。 
- 
ログ出力の右上隅にある [ログの検索] 検索ボックスに、検索クエリを入力します。 
ログのダウンロード
ワークフローの実行からは、ログファイルをダウンロードできます。 また、ワークフローの成果物もダウンロードできます。 詳しくは、「ワークフロー成果物を使ったデータの格納と共有」をご覧ください。 これらのステップを実行するには、リポジトリへの読み取りアクセスが必要です。
- 
GitHub で、リポジトリのメイン ページに移動します。 
- 
リポジトリ名の下にある [ Actions] をクリックします。 !["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png) 
- 
左サイドバーで、表示するワークフローをクリックします。 ![[アクション] タブの左側のサイド バーのスクリーンショット。ワークフロー "CodeQL" が濃いオレンジ色の枠線で囲まれています。](/assets/cb-40551/images/help/actions/superlinter-workflow-sidebar.png) 
- 
ワークフロー実行の一覧で実行の名前をクリックすると、ワークフロー実行の概要が表示されます。 
- 
[ジョブ] の下、または視覚化グラフ内で、表示するジョブをクリックします。 
- 
ログの右上隅にある ドロップダウン メニューを選び、 [ログ アーカイブのダウンロード] をクリックします。  
メモ
部分的に再実行されたワークフローのログ アーカイブをダウンロードする場合、そのアーカイブに含まれるのは、再実行されたジョブのみです。 ワークフローから実行されたジョブのログをすべて取得するには、他のジョブを前回実行しようとしたときのログ アーカイブをダウンロードする必要があります。
ログの削除
ワークフロー実行からログ ファイルを削除するには、GitHub Web インターフェイスまたはプログラムを使用します。 これらのステップを実行するには、リポジトリへの書き込みアクセスが必要です。
GitHub Web インターフェイスを使用したログの削除
- 
GitHub で、リポジトリのメイン ページに移動します。 
- 
リポジトリ名の下にある [ Actions] をクリックします。 !["github/docs" リポジトリのタブのスクリーンショット。 [アクション] タブがオレンジ色の枠線で強調表示されています。](/assets/cb-12958/images/help/repository/actions-tab-global-nav-update.png) 
- 
左サイドバーで、表示するワークフローをクリックします。 ![[アクション] タブの左側のサイド バーのスクリーンショット。ワークフロー "CodeQL" が濃いオレンジ色の枠線で囲まれています。](/assets/cb-40551/images/help/actions/superlinter-workflow-sidebar.png) 
- 
ワークフロー実行の一覧で実行の名前をクリックすると、ワークフロー実行の概要が表示されます。 
- 
右上隅にある ドロップダウン メニューを選び、 [すべてのログの削除] をクリックします。  
- 
確認のプロンプトを確認します。 
ログを削除すると、 [すべてのログを削除] ボタンが消えます。これは、ワークフローの実行にログ ファイルがこれ以上残っていないことを示しています。
プログラムによるログの削除
次のスクリプトを使用して、ワークフローのすべてのログを自動的に削除できます。 これは、複数のワークフロー実行のログをクリーンする便利な方法です。
次のサンプル スクリプトを実行するには:
- 
コード例をコピーし、 delete-logs.shという名前のファイルに保存します。
- 
chmod +x delete-logs.shで実行アクセス許可を付与します。
- 
次のコマンドを実行します。 REPOSITORY_NAMEにリポジトリ名、WORKFLOW_NAMEにワークフローのファイル名を指定します。Shell ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAMEたとえば、 .github/workflows/ci.yamlワークフローのmonalisa/octocatリポジトリ内のすべてのログを削除するには、./delete-logs.sh monalisa/octocat ci.yamlを実行します。
サンプル スクリプト
#!/usr/bin/env bash
# Delete all logs for a given workflow
# Usage: delete-logs.sh <repository> <workflow-name>
set -oe pipefail
REPOSITORY=$1
WORKFLOW_NAME=$2
# Validate arguments
if [[ -z "$REPOSITORY" ]]; then
  echo "Repository is required"
  exit 1
fi
if [[ -z "$WORKFLOW_NAME" ]]; then
  echo "Workflow name is required"
  exit 1
fi
echo "Getting all completed runs for workflow $WORKFLOW_NAME in $REPOSITORY"
RUNS=$(
  gh api \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/workflows/$WORKFLOW_NAME/runs" \
    --paginate \
    --jq '.workflow_runs[] | select(.conclusion != "") | .id'
)
echo "Found $(echo "$RUNS" | wc -l) completed runs for workflow $WORKFLOW_NAME"
# Delete logs for each run
for RUN in $RUNS; do
  echo "Deleting logs for run $RUN"
  gh api \
    --silent \
    --method DELETE \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/runs/$RUN/logs" || echo "Failed to delete logs for run $RUN"
  # Sleep for 100ms to avoid rate limiting
  sleep 0.1
done
#!/usr/bin/env bash
# Delete all logs for a given workflow
# Usage: delete-logs.sh <repository> <workflow-name>
set -oe pipefail
REPOSITORY=$1
WORKFLOW_NAME=$2
# Validate arguments
if [[ -z "$REPOSITORY" ]]; then
  echo "Repository is required"
  exit 1
fi
if [[ -z "$WORKFLOW_NAME" ]]; then
  echo "Workflow name is required"
  exit 1
fi
echo "Getting all completed runs for workflow $WORKFLOW_NAME in $REPOSITORY"
RUNS=$(
  gh api \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/workflows/$WORKFLOW_NAME/runs" \
    --paginate \
    --jq '.workflow_runs[] | select(.conclusion != "") | .id'
)
echo "Found $(echo "$RUNS" | wc -l) completed runs for workflow $WORKFLOW_NAME"
# Delete logs for each run
for RUN in $RUNS; do
  echo "Deleting logs for run $RUN"
  gh api \
    --silent \
    --method DELETE \
    -H "Accept: application/vnd.github+json" \
    -H "X-GitHub-Api-Version: 2022-11-28" \
    "/repos/$REPOSITORY/actions/runs/$RUN/logs" || echo "Failed to delete logs for run $RUN"
  # Sleep for 100ms to avoid rate limiting
  sleep 0.1
done
GitHub CLI でログを表示する
メモ
GitHub CLI の詳細については、「GitHub CLI について」を参照してください。
特定のジョブのログを表示するには、run view サブコマンドを使います。 run-id を、ログを表示したい実行の ID に置き換えます。 GitHub CLI は、実行からジョブを選択するためのインタラクティブメニューを返します。 run-id を指定しない場合、GitHub CLI は、最近の実行を選ぶことができるインタラクティブ メニューを返してから、その実行からジョブを選ぶことができる別のインタラクティブ メニューを返します。
gh run view RUN_ID --log
また、--job フラグを使って、ジョブ ID を指定することもできます。 job-id を、ログを表示したいジョブの ID に置き換えます。
gh run view --job JOB_ID --log
grep を使うと、ログを検索できます。 たとえば、このコマンドは、error という単語が含まれるすべてのログ エントリを返します。
gh run view --job JOB_ID --log | grep error
失敗したステップのログをフィルター処理するには、--log の代わりに --log-failed を使います。
gh run view --job JOB_ID --log-failed