Skip to main content

Usando logs de execução de fluxo de trabalho

Você pode visualizar, pesquisar e fazer download dos logs para cada trabalho em uma execução de fluxo de trabalho.

Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.

Na página de execução de fluxo de trabalho, você pode verificar se a execução está em andamento ou foi concluída. Você deve estar conectado a uma conta GitHub para visualizar as informações da execução do seu fluxo de trabalho, incluindo os repositórios públicos. Para obter mais informações, confira "Permissões de acesso no GitHub".

Se a execução estiver concluída, será possível ver se o resultado teve êxito, se houve falha, se foi cancelado ou se ficou neutro. Em caso de falha, você poderá exibir e pesquisar os logs de criação para diagnosticar a falha e executar o fluxo de trabalho novamente. Você também pode visualizar os minutos da execução do trabalho faturável ou fazer o download dos registros e criar artefatos.

O GitHub Actions usa a API de Verificação para mostrar os status, resultados e logs de um fluxo de trabalho. O GitHub cria um novo conjunto de verificações para cada execução de fluxo de trabalho. O conjunto de verificações contêm uma execução de verificação para cada trabalho no fluxo de trabalho, e cada trabalho inclui etapas. As ações do GitHub Actions são executadas como etapas no fluxo de trabalho. Para saber mais sobre a API de Verificações, confira "Pontos de extremidade da API REST para verificações".

Observação: garanta que você confirme apenas arquivos de fluxo de trabalho válidos em seu repositório. Se .github/workflows contiver um arquivo de fluxo de trabalho inválido, GitHub Actions gerará uma execução de fluxo de trabalho com falha para cada nova confirmação.

Exibir logs para diagnosticar falhas

Se houver falha na execução do fluxo de trabalho, você poderá ver qual etapa causou a falha e revisar os logs de criação da etapa com falha para resolver os problemas. Também é possível ver a duração da execução de cada etapa. Além disso, você pode copiar um permalink para determinada linha no arquivo de log a fim de compartilhar com a sua equipe. É necessário o acesso de leitura ao repositório é para executar essas etapas.

Além das etapas configuradas no arquivo do fluxo de trabalho, GitHub acrescenta duas etapas adicionais a cada trabalho para configurar e concluir a execução do trabalho. Estas etapas estão registradas na execução do fluxo de trabalho com os nomes "Configurar trabalho" e "Concluir trabalho".

Para trabalhos executados em executores hospedados no GitHub, "Configurar trabalho" registra os detalhes da imagem do executor e inclui um link para a lista de ferramentas pré-instaladas que estavam presentes na máquina do executor.

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Na barra lateral esquerda, clique no fluxo de trabalho que deseja ver.

    Captura de tela da barra lateral esquerda da guia "Ações". Um fluxo de trabalho, "CodeQL", é descrito em laranja escuro.

  4. Na lista de execuções de fluxo de trabalho, clique no nome da execução para ver o resumo da execução do fluxo de trabalho.

  5. Em Trabalhos ou no grafo de visualização, clique no trabalho que deseja ver.

  6. Todas as etapas com falha são automaticamente expandidas para exibir os resultados.

  7. Para obter um link para uma linha específica nos logs, clique no número da linha da etapa. Em seguida, você pode copiar o link da barra de endereço do seu navegador da web.

    Captura de tela dos logs de um trabalho. Os logs de uma etapa com falha são expandidos, e um número de linha está realçado com um contorno laranja.

Pesquisar logs

É possível pesquisar os logs de criação em determinadas etapas. Na pesquisa dos logs, somente as etapas expandidas são incluídas nos resultados. É necessário o acesso de leitura ao repositório é para executar essas etapas.

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Na barra lateral esquerda, clique no fluxo de trabalho que deseja ver.

    Captura de tela da barra lateral esquerda da guia "Ações". Um fluxo de trabalho, "CodeQL", é descrito em laranja escuro.

  4. Na lista de execuções de fluxo de trabalho, clique no nome da execução para ver o resumo da execução do fluxo de trabalho.

  5. Em Trabalhos ou no grafo de visualização, clique no trabalho que deseja ver.

  6. No canto superior direito da saída do log, na caixa de pesquisa Pesquisar logs, digite uma consulta de pesquisa.

Fazer download dos registros

Você pode fazer o download dos arquivos de registro da execução do seu fluxo de trabalho. Você também pode fazer o download dos artefatos de um fluxo de trabalho. Para obter mais informações, confira "Armazenando e compartilhando dados de um fluxo de trabalho". É necessário o acesso de leitura ao repositório é para executar essas etapas.

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Na barra lateral esquerda, clique no fluxo de trabalho que deseja ver.

    Captura de tela da barra lateral esquerda da guia "Ações". Um fluxo de trabalho, "CodeQL", é descrito em laranja escuro.

  4. Na lista de execuções de fluxo de trabalho, clique no nome da execução para ver o resumo da execução do fluxo de trabalho.

  5. Em Trabalhos ou no grafo de visualização, clique no trabalho que deseja ver.

  6. No canto superior direito do log, selecione o menu suspenso e clique em Baixar arquivo morto de log.

    Captura de tela do log de um trabalho. No cabeçalho, um ícone de engrenagem está contornado em laranja escuro.

Note

Quando você baixa o arquivo morto de log de um fluxo de trabalho que foi parcialmente executado novamente, o arquivo morto só inclui os trabalhos que foram executados de novo. Para obter um conjunto completo de registro para trabalhos foram executados de um fluxo de trabalho, você deverá fazer o download dos arquivos de registro para as tentativas de execução anteriores que executaram os outros trabalhos.

Excluir registros

Você pode excluir os arquivos de log do fluxo de trabalho executado por meio da interface da Web do GitHub ou programaticamente. É necessário o acesso de gravação ao repositório é para executar essas etapas.

Excluir logs por meio da interface da Web do GitHub

  1. Em GitHub, acesse a página principal do repositório.

  2. No nome do repositório, clique em Ações.

    Captura de tela das guias do repositório "github/docs". A guia "Ações" está realçada com um contorno laranja.

  3. Na barra lateral esquerda, clique no fluxo de trabalho que deseja ver.

    Captura de tela da barra lateral esquerda da guia "Ações". Um fluxo de trabalho, "CodeQL", é descrito em laranja escuro.

  4. Na lista de execuções de fluxo de trabalho, clique no nome da execução para ver o resumo da execução do fluxo de trabalho.

  5. No canto superior direito, selecione o menu suspenso e clique em Excluir todos os logs.

    Captura de tela da página de uma execução de fluxo de trabalho. No canto superior direito, há um botão, rotulado com um ícone de kebab, com um contorno laranja escuro.

  6. Leia o aviso de confirmação.

Após a exclusão dos logs, o botão Excluir todos os logs é removido para indicar que nenhum arquivo de log permanece na execução de fluxo de trabalho.

Excluir logs programaticamente

Você pode usar o script a seguir para excluir automaticamente todos os logs de um fluxo de trabalho. Essa pode ser uma maneira útil de limpar logs para várias execuções de fluxo de trabalho.

Para executar o script de exemplo abaixo:

  1. Copie o exemplo de código e salve-o em um arquivo chamado delete-logs.sh.

  2. Conceda a ele a permissão de execução com chmod +x delete-logs.sh.

  3. Execute o comando a seguir, em que REPOSITORY_NAME é o nome do repositório e WORKFLOW_NAME é o nome do arquivo do fluxo de trabalho.

    Shell
    ./delete-logs.sh REPOSITORY_NAME WORKFLOW_NAME
    

    Por exemplo, para excluir todos os logs no repositório monalisa/octocat do fluxo de trabalho .github/workflows/ci.yaml, você executaria ./delete-logs.sh monalisa/octocat ci.yaml.

Script de exemplo

Bash
#!/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

Visualizar registros com GitHub CLI

Para saber mais sobre GitHub CLI, confira "Sobre o a CLI do GitHub".

Para ver o log de um trabalho específico, use o subcomando run view. Substitua run-id pela ID da execução para a qual deseja ver os logs. GitHub CLI retorna um menu interativo para você escolher um trabalho a partir da execução. Se você não especificar run-id, a GitHub CLI retornará um menu interativo para você escolher uma execução recente e outro menu interativo para você escolher um trabalho da execução.

gh run view RUN_ID --log

Use também o sinalizador --job para especificar uma ID de trabalho. Substitua job-id pela ID do trabalho para o qual você deseja ver os logs.

gh run view --job JOB_ID --log

Use grep para pesquisa no log. Por exemplo, este comando retornará todas as entradas do log que contêm a palavra error.

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

Para filtrar os logs para ver todas as etapas com falha, use --log-failed em vez de --log.

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