Middle+
Como determinar qual branch não passou na build se eu não tenho informações sobre a build?
sobes.tech IA
Resposta da IA
Com informações limitadas, podem ser utilizados métodos indiretos:
- Análise dos logs de compilação do sistema: Se tiver acesso aos logs de CI/CD (por exemplo, Jenkins, GitLab CI, GitHub Actions), eles contêm informações sobre as execuções de compilação, incluindo branches e estados.
- Verificação dos últimos commits nas branches: Pode percorrer manualmente as branches principais (main, dev) e verificar os últimos commits. É possível que algum commit contenha um link para uma compilação incompleta ou falhada.
- Revisão de pedidos pull/merge: Frequentemente, as compilações são iniciadas ao criar PR/MR. Revisar esses pedidos pode identificar uma branch com uma compilação falhada.
- Verificação do estado das branches no sistema de controlo de versões: Na interface do GitLab/GitHub/Bitbucket, muitas vezes é exibido o estado da última compilação para cada branch.
Exemplo de análise de logs do GitLab CI usando grep:
# Verificar os logs last_pipeline.log em busca de compilations falhadas nas branches
grep 'status: failed' last_pipeline.log | grep 'ref:'
Exemplo de verificação do estado das branches via Git:
# Obter a lista de todas as branches locais
git branch
# Mudar para a branch potencialmente problemática (por exemplo, feature/new-feature)
# e procurar menções de compilação nos logs de commits
git checkout feature/new-feature
git log --grep="build failed"
Tabela com possíveis fontes de informação:
| Fonte | Vantagens | Desvantagens |
|---|---|---|
| Logs de CI/CD | Informação precisa sobre o estado e a branch | Requer acesso aos logs |
| Mensagens de commit | Pode conter menções explícitas à compilação | Nem sempre é informativo |
| Pedidos pull/merge | Associação explícita entre branch e compilação | A compilação pode ter passado, mas o PR/MR não foi fechado |
| Estado das branches no VCS | Visão rápida | Pode não mostrar toda a história de compilação |