# Использование журналов выполнения рабочих процессов

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

> \[!NOTE]
> GitHub Enterprise Serverразмещенные в данный момент средства выполнения не поддерживаются в GitHub.

На странице выполнения рабочего процесса можно посмотреть состояние рабочего процесса, выполняется он или завершен. Для просмотра сведений о выполнении GitHub рабочего процесса необходимо войти в учетную запись, включая общедоступные репозитории. Дополнительные сведения см. в разделе [Права доступа на GitHub](/ru/enterprise-server@3.22/get-started/learning-about-github/access-permissions-on-github).

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

GitHub Actions используйте API проверки для вывода состояний, результатов и журналов для рабочего процесса.
GitHub создает новый набор контрольных наборов для каждого запуска рабочего процесса. Набор проверок содержит контрольный прогон для каждого задания в рабочем процессе, и каждое задание включает шаги.
GitHub Actions выполняются как шаг в рабочем процессе. Дополнительные сведения об API проверки см. в разделе [Конечные точки REST API для проверок](/ru/enterprise-server@3.22/rest/checks).

> \[!NOTE]
> Убедитесь, что в репозитории фиксируются только допустимые файлы рабочего процесса. Если `.github/workflows` содержит недопустимый файл рабочего процесса, GitHub Actions создает для каждой новой фиксации рабочий процесс, завершающийся сбоем.

## Просмотр журналов для диагностики сбоев

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

Помимо шагов, настроенных в файле рабочего процесса, GitHub добавляет два дополнительных шага к каждому заданию, чтобы настроить и завершить выполнение задания. Эти шаги регистрируются в рабочем процессе с именами "Настройка задания" и "Завершение задания".

Для заданий, выполняющихся в GitHubузлах runners, "Настройка задания" записывает сведения об образе средства выполнения и содержит ссылку на список предварительно установленных средств, которые присутствовали на компьютере runner.

1. На GitHubперейдите на главную страницу репозитория.
2. Под именем репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. На левой боковой панели щелкните нужный рабочий процесс.

   ![Снимок экрана: левая боковая панель вкладки "Действия". Рабочий процесс CodeQL описывается в темно-оранжевый цвет.](/assets/images/help/actions/superlinter-workflow-sidebar.png)
4. В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
5. В разделе **Задания** или на графе визуализации выберите задание, которое требуется просмотреть.
6. Все неудачные действия автоматически разворачиваются для отображения результатов.
7. Ссылку на определенную строку в журналах, можно также получить, щелкнув номер строки соответствующего шага. Затем можно скопировать ссылку из адресной строки браузера.

   ![Снимок экрана: журналы для задания. Журналы для неудачного шага развернуты, а номер строки выделен оранжевым контуром.](/assets/images/help/repository/copy-link-button-updated-2.png)

## Поиск по журналам

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

1. На GitHubперейдите на главную страницу репозитория.
2. Под именем репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. На левой боковой панели щелкните нужный рабочий процесс.

   ![Снимок экрана: левая боковая панель вкладки "Действия". Рабочий процесс CodeQL описывается в темно-оранжевый цвет.](/assets/images/help/actions/superlinter-workflow-sidebar.png)
4. В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
5. В разделе **Задания** или на графе визуализации выберите задание, которое требуется просмотреть.
6. В правом верхнем углу выходных данных журнала в поле **поиска по журналам** введите поисковый запрос.

## Скачивание журналов

Вы можете скачивать файлы журналов из запуска рабочего процесса. Вы также можете скачать артефакты рабочего процесса. Дополнительные сведения см. в разделе [Хранение и предоставление общего доступа к данным с артефактами рабочего процесса](/ru/enterprise-server@3.22/actions/tutorials/store-and-share-data). Для выполнения этих действий требуется доступ на чтение к репозиторию.

1. На GitHubперейдите на главную страницу репозитория.
2. Под именем репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)
3. На левой боковой панели щелкните нужный рабочий процесс.

   ![Снимок экрана: левая боковая панель вкладки "Действия". Рабочий процесс CodeQL описывается в темно-оранжевый цвет.](/assets/images/help/actions/superlinter-workflow-sidebar.png)
4. В списке запусков рабочего процесса щелкните имя запуска, чтобы просмотреть сводку по выполнению рабочего процесса.
5. В разделе **Задания** или на графе визуализации выберите задание, которое требуется просмотреть.
6. В правом верхнем углу журнала выберите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="Show options" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg> раскрывающееся меню и нажмите кнопку **"Скачать архив журналов**".

   ![Снимок экрана: журнал задания. В заголовке значок шестеренки выделен темно-оранжевым цветом.](/assets/images/help/actions/download-logs-drop-down.png)

> \[!NOTE]
> При скачивании архива журналов для рабочего процесса, который был частично выполнен повторно, архив включает только задания, которые были повторно запущены. Чтобы получить полный набор журналов для заданий, который выполнялись из рабочего процесса, необходимо скачать архивы журналов для предыдущих попыток запуска, в которых выполнялись другие задания.

## Удаление журналов

Файлы журнала можно удалить из рабочего процесса через GitHub веб-интерфейс или программным способом. Для выполнения этих действий требуется доступ для записи в репозиторий.

### Удаление журналов через GitHub веб-интерфейс

1. На GitHubперейдите на главную страницу репозитория.

2. Под именем репозитория щелкните **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-play" aria-label="play" role="img"><path d="M8 0a8 8 0 1 1 0 16A8 8 0 0 1 8 0ZM1.5 8a6.5 6.5 0 1 0 13 0 6.5 6.5 0 0 0-13 0Zm4.879-2.773 4.264 2.559a.25.25 0 0 1 0 .428l-4.264 2.559A.25.25 0 0 1 6 10.559V5.442a.25.25 0 0 1 .379-.215Z"></path></svg> Actions**.

   ![Снимок экрана: вкладки для репозитория github/docs. Вкладка "Действия" выделена оранжевым контуром.](/assets/images/help/repository/actions-tab-global-nav-update.png)

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

   ![Снимок экрана: левая боковая панель вкладки "Действия". Рабочий процесс CodeQL описывается в темно-оранжевый цвет.](/assets/images/help/actions/superlinter-workflow-sidebar.png)

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

5. В правом верхнем углу выберите <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="Show workflow options" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg> раскрывающееся меню и нажмите кнопку **"Удалить все журналы**".

   ![Снимок экрана: страница запуска рабочего процесса. В правом верхнем углу кнопка, помеченная значком кебаба, описывается в темно-оранжевый цвет.](/assets/images/help/actions/workflow-run-kebab-horizontal-icon.png)

6. Просмотрите запрос подтверждения.

После удаления журналов кнопка **Удалить все журналы** исчезает. Это указывает, что ы рабочем процессе больше не осталось файлов журналов.

### Удаление журналов программным способом

Для автоматического удаления всех журналов рабочего процесса можно использовать следующий скрипт. Это может быть полезным способом очистки журналов для нескольких запусков рабочего процесса.

Чтобы запустить приведенный ниже пример скрипта:

1. Скопируйте пример кода и сохраните его в файл с именем `delete-logs.sh`.
2. Предоставьте ему разрешение на выполнение с `chmod +x delete-logs.sh`помощью .
3. Выполните следующую команду, где `REPOSITORY_NAME` имя репозитория и `WORKFLOW_NAME` имя файла рабочего процесса.

   ```shell copy
   ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
   ```

   Например, чтобы удалить все журналы в `monalisa/octocat` репозитории для `.github/workflows/ci.yaml` рабочего процесса, выполните команду `./delete-logs.sh monalisa/octocat ci.yaml`.

#### Пример сценария

```bash copy
#!/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

> \[!NOTE]
> Дополнительные сведения о GitHub CLIсм. в разделе [О GitHub CLI](/ru/enterprise-server@3.22/github-cli/github-cli/about-github-cli).

Чтобы просмотреть журнал для определенного задания, используйте подкоманду `run view`. Замените `run-id` идентификатором запуска, для которого вы хотите просмотреть журналы.
GitHub CLI возвращает интерактивное меню для выбора задания из запуска. Если вы не указываете `run-id`, GitHub CLI возвращает интерактивное меню для выбора последнего запуска, а затем возвращает другое интерактивное меню для выбора задания из запуска.

```shell
gh run view RUN_ID --log
```

Вы также можете указать идентификатор задания с помощью флага `--job`. Замените `job-id` идентификатором задания, для которого вы хотите просмотреть журналы.

```shell
gh run view --job JOB_ID --log
```

Вы можете использовать `grep` для поиска в журнале. Например, следующая команда вернет все записи журнала, содержащие слово `error`.

```shell
gh run view --job JOB_ID --log | grep error
```

Чтобы отфильтровать журналы для вывода всех неудачных шагов, используйте `--log-failed` вместо `--log`.

```shell
gh run view --job JOB_ID --log-failed
```