Como integro meu sistema de integração contínua ao meu sistema de rastreamento de bugs?
-
08-06-2019 - |
Pergunta
Eu uso cruisecontrol.rb para CI e FogBugz para rastreamento de bugs, mas quanto mais gerais as respostas, melhor.
Primeiro é o problema técnico:existe uma API para o FogBugz?Existem bons tutoriais ou, melhor ainda, códigos pré-escritos?
Em segundo lugar está o problema processual:o que exatamente o CI deve colocar no rastreador de bugs quando a compilação falha?Talvez:
Título:"#{último committer} quebrou a compilação!"
Corpo:"#{ rastreamentos de erro}"
Suponho que isso pressupõe a resposta a esta pergunta:devo colocar quebras de CI no meu rastreamento de bugs?
Solução
Todas as configurações de CI com as quais trabalhei enviam um e-mail (para uma lista), mas se você quiser – especialmente se sua equipe usa o FogBugz como um sistema de tarefas – você pode simplesmente abrir um caso no FogBugz 6. Tem uma API que permite abrir casos.Nesse caso, você poderia simplesmente configurá-lo para enviar o email para o endereço de envio de email do seu FogBugz, mas a API pode permitir que você faça mais, como atribuir o caso ao último committer.
BrianA resposta de me sugere que, se o seu IC encontrar uma falha em um commit que tinha um número de caso, você poderá simplesmente reabrir o caso existente.Porém, assim como codificar um campo de caso para cada pequena coisa, há um ponto em que a automação de CI pode ser “inteligente demais”, errar e ser simplesmente irritante.Abrir um novo caso pode ser suficiente.
E obrigado:isso me faz pensar se devo tentar integrar nossos Chimpanzés configure com nosso FogBugz!
Outras dicas
Na minha empresa, adotamos recentemente a pilha (comercial) Atlassian - incluindo JIRA para rastreamento de problemas e Bamboo para compilações.Muito parecido com o mundo da Microsoft (suponho - somos uma loja Java), se você adquirir todos os seus produtos de um único fornecedor, receberá o bônus de uma integração estreita.
Para obter um exemplo de como eles fizeram a interoperabilidade, veja seu página de interoperabilidade.
Chega de xelins.De modo geral, posso resumir sua abordagem geral como:
- Crie problemas em seu rastreador de bugs (ex:chave de emissão do PROJ-123).
- Ao confirmar o código, adicione "PROJ-123" ao seu comentário de confirmação para indicar qual bug essa alteração de código corrige.
- Quando o seu servidor CI verificar o código, verifique os comentários de commit das diferenças.Registre todas as strings que correspondam ao regex das suas chaves de problema.
- Quando a compilação for concluída, gere um relatório de quais chaves de problemas foram encontradas.
Especificamente para o seu segundo problema:
Seu CI não precisa colocar nada em seu rastreador de bugs.O Bamboo não coloca nada no JIRA.Em vez disso, o pessoal da Atlassian forneceu um plug-in para o JIRA que fará uma chamada remota da API no Bamboo, fazendo a pergunta "Bamboo, a quais compilações estou relacionado (um problema do JIRA)?".Isto é provavelmente melhor explicado com um captura de tela.
O CC vem com um utilitário que avisa quando as compilações falham, provavelmente não vale a pena registrar a compilação com falha no FogBugz - você não precisa rastrear problemas que são resolvidos imediatamente (como acontece com a maioria das compilações quebradas).
Para fazer o contrário (o FogBugz mostrando checkins que corrigiram o problema), você precisa de um navegador de repositório baseado na web - o FogBugz é fácil de configurar para mostrar as alterações corretas.