На странице выполнения рабочего процесса можно посмотреть состояние рабочего процесса, выполняется он или завершен. Для просмотра сведений о выполнении рабочего процесса, включая общедоступные репозитории, необходимо войти в учетную запись GitHub. Дополнительные сведения см. в разделе Права доступа на GitHub.
Если выполнение завершилось, вы можете узнать, был ли результат успешным, неудачным, отмененным или нейтральным. Если выполнение завершилось неудачно, можно просмотреть журналы сборки и выполнить по ним поиск, чтобы диагностировать сбой и повторно запустить рабочий процесс. Вы также можете просматривать оплачиваемые минуты выполнения задания, а также скачивать журналы и артефакты сборки.
GitHub Actions использует API проверок для вывода состояний, результатов и журналов рабочего процесса. GitHub создает новый набор проверок для каждого запуска рабочего процесса. Набор проверок содержит контрольный прогон для каждого задания в рабочем процессе, и каждое задание включает шаги. GitHub Actions выполняются как шаг в рабочем процессе. Дополнительные сведения об API проверки см. в разделе Конечные точки REST API для проверок.
Примечание.
Убедитесь, что в репозитории фиксируются только допустимые файлы рабочего процесса. Если .github/workflows содержит недопустимый файл рабочего процесса, GitHub Actions создает для каждой новой фиксации рабочий процесс, завершающийся сбоем.
Просмотр журналов для диагностики сбоев
Если выполнение рабочего процесса завершается неудачно, вы можете увидеть, какой шаг вызвал сбой, и проверить журналы сборки неудачного шага, чтобы устранить неполадки. Вы можете увидеть время, необходимое для выполнения каждого шага. Вы также можете скопировать постоянную ссылку на определенную строку в файле журнала, чтобы поделиться со своей командой. Для выполнения этих действий требуется доступ на чтение к репозиторию.
Помимо шагов, настроенных в файле рабочего процесса, GitHub добавляет в каждое задание два дополнительных шага для настройки и завершения выполнения задания. Эти шаги регистрируются в рабочем процессе с именами "Настройка задания" и "Завершение задания".
Для заданий, выполняемых в средствах выполнения, размещенных в GitHub, шаг "Настройка задания" записывает сведения об образе средства выполнения и включает ссылку на список предустановленных средств, которые имелись на компьютере средства выполнения.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Actions.

-
На левой боковой панели щелкните нужный рабочий процесс.

-
В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
-
В разделе Задания или на графе визуализации выберите задание, которое требуется просмотреть.
-
Все неудачные действия автоматически разворачиваются для отображения результатов.
-
Ссылку на определенную строку в журналах, можно также получить, щелкнув номер строки соответствующего шага. Затем можно скопировать ссылку из адресной строки браузера.

Поиск по журналам
Вы можете выполнять поиск определенного шага в журналах сборки. При поиске в журналах в результаты включаются только развернутые шаги. Для выполнения этих действий требуется доступ на чтение к репозиторию.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Actions.

-
На левой боковой панели щелкните нужный рабочий процесс.

-
В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
-
В разделе Задания или на графе визуализации выберите задание, которое требуется просмотреть.
-
В правом верхнем углу выходных данных журнала в поле поиска по журналам введите поисковый запрос.
Скачивание журналов
Вы можете скачивать файлы журналов из запуска рабочего процесса. Вы также можете скачать артефакты рабочего процесса. Дополнительные сведения см. в разделе Хранение и предоставление общего доступа к данным с артефактами рабочего процесса. Для выполнения этих действий требуется доступ на чтение к репозиторию.
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Actions.

-
На левой боковой панели щелкните нужный рабочий процесс.

-
В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
-
В разделе Задания или на графе визуализации выберите задание, которое требуется просмотреть.
-
В правом верхнем углу журнала выберите раскрывающееся меню (Показать параметры) и нажмите кнопку "Скачать архив журнала".

Примечание.
При скачивании архива журналов для рабочего процесса, который был частично выполнен повторно, архив включает только задания, которые были повторно запущены. Чтобы получить полный набор журналов для заданий, который выполнялись из рабочего процесса, необходимо скачать архивы журналов для предыдущих попыток запуска, в которых выполнялись другие задания.
Удаление журналов
Файлы журнала можно удалить из рабочего процесса через веб-интерфейс GitHub или программным способом. Для выполнения этих действий требуется доступ для записи в репозиторий.
Удаление журналов с помощью веб-интерфейса GitHub
-
На GitHubперейдите на главную страницу репозитория.
-
Под именем репозитория щелкните Actions.

-
На левой боковой панели щелкните нужный рабочий процесс.

-
В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
-
В правом верхнем углу выберите раскрывающееся меню и нажмите кнопку "Удалить все журналы".

-
Просмотрите запрос подтверждения.
После удаления журналов кнопка Удалить все журналы исчезает. Это указывает, что ы рабочем процессе больше не осталось файлов журналов.
Удаление журналов программным способом
Для автоматического удаления всех журналов рабочего процесса можно использовать следующий скрипт. Это может быть полезным способом очистки журналов для нескольких запусков рабочего процесса.
Чтобы запустить приведенный ниже пример скрипта:
-
Скопируйте пример кода и сохраните его в файл с именем
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 идентификатором запуска, для которого вы хотите просмотреть журналы. GitHub CLI отобразит интерактивное меню для выбора задания из запуска. Если вы не укажете run-id, GitHub CLI отобразит интерактивное меню для выбора последнего запуска, а затем другое интерактивное меню для выбора задания из этого запуска.
gh run view RUN_ID --log
Вы также можете указать идентификатор задания с помощью флага --job. Замените job-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