ワークフローの実行ページから、ワークフローの実行が進行中か完了しているかを確認できます。 パブリック リポジトリなどのワークフロー実行情報を表示するには、 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たとえば、
monalisa/octocatワークフローの.github/workflows/ci.yamlリポジトリ内のすべてのログを削除するには、./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-failed の代わりに --log を使います。
gh run view --job JOB_ID --log-failed