Sobre o projeto
Freshmaker é um serviço projetado para reconstruir automaticamente vários artefatos de software após suas dependências terem sido alteradas. Por exemplo, ele pode reconstruir um módulo quando o arquivo .spec de um RPM é atualizado ou quando um RPM é enviado para o stable via Bodhi. Da mesma forma, ele pode reconstruir imagens de container quando um RPM dentro do container é atualizado. O serviço fornece uma API REST para recuperar informações sobre reconstruções de artefatos e os motivos dessas reconstruções, e envia mensagens para o barramento de mensagens sobre esses eventos.
Arquitetonicamente, Freshmaker é baseado no padrão Event-Handler. Os eventos são mensagens fedmsg recebidas de outros serviços como dist-git, Koji e Bodhi. Os manipuladores são pequenas classes que utilizam a API de alto nível fornecida pelo núcleo do Freshmaker para reconstruir artefatos. O sistema também fornece uma API de alto nível para rastrear dependências entre artefatos, tornando o processo de reconstrução eficiente e confiável.
O fluxo de trabalho envolve aguardar novas mensagens fedmsg sobre atualizações de artefatos, analisar essas mensagens em objetos Event e, em seguida, manipular esses eventos com manipuladores específicos. Esses manipuladores identificam a lista de artefatos que devem ser reconstruídos, planejam a reconstrução em uma estrutura semelhante a uma árvore para garantir a ordem correta de construção, preparam os pré-requisitos (como gerar repositórios RPM atualizados) e, finalmente, iniciam a reconstrução. O Freshmaker inclui suporte integrado para tarefas comuns, como gerenciamento de banco de dados para artefatos e suas dependências, e integração com sistemas como Koji e ODCS para iniciar construções.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.