À propos du projet
Freshmaker est un service conçu pour reconstruire automatiquement divers artefacts logiciels après que leurs dépendances ont changé. Par exemple, il peut reconstruire un module lorsqu'un fichier .spec d'un RPM est mis à jour ou lorsqu'un RPM est poussé vers la version stable via Bodhi. De même, il peut reconstruire des images de conteneurs lorsqu'un RPM à l'intérieur du conteneur est mis à jour. Le service fournit une API REST pour récupérer des informations sur les reconstructions d'artefacts et les raisons de ces reconstructions, et il envoie des messages au bus de messages à propos de ces événements.
Sur le plan architectural, Freshmaker est basé sur un modèle événement-déclencheur. Les événements sont des messages fedmsg reçus d'autres services tels que dist-git, Koji et Bodhi. Les déclencheurs sont de petites classes qui utilisent l'API de haut niveau fournie par le noyau de Freshmaker pour reconstruire les artefacts. Le système fournit également une API de haut niveau pour suivre les dépendances entre les artefacts, ce qui rend le processus de reconstruction efficace et fiable.
Le workflow consiste à attendre de nouveaux messages fedmsg à propos des mises à jour d'artefacts, à parser ces messages en objets Event, puis à gérer ces événements avec des déclencheurs spécifiques. Ces déclencheurs identifient la liste des artefacts qui doivent être reconstruits, planifient la reconstruction dans une structure arborescente pour garantir l'ordre de construction correct, préparent les prérequis (tels que la génération de référentiels RPM mis à jour), et enfin lancent la reconstruction. Freshmaker inclut une prise en charge intégrée pour les tâches courantes telles que la gestion des bases de données pour les artefacts et leurs dépendances, et l'intégration avec des systèmes tels que Koji et ODCS pour initier les constructions.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.