Le projet Cicada développe un système d'automatisation des builds, similaire à GitHub Actions.

Le système d'automatisation des processus d'assemblage ouvert Cicada permet de déployer, sur son propre serveur, une infrastructure similaire à GitHub Actions, Azure DevOps et GitLab CI, sans dépendre des services cloud. Le code du projet est écrit en Python et est distribué sous la licence AGPLv3.

Le système peut automatiquement exécuter des scripts de construction et de test des bases de code en réponse à certains événements, tels que la réception d'une demande push dans Git, la création de versions, l'ouverture/la fermeture d'un problème et l'ouverture/la fermeture de demandes de tirage. Une caractéristique distinctive de Cicada est la fourniture d'un langage de programmation fonctionnel orienté domaine pour définir la logique de fonctionnement, prenant en charge les variables, les expressions, les boucles, les blocs conditionnels et les fonctions intégrées. on git.push fn test(compiler): env.CC = compiler echo Testing (compiler) shell make clean all let compilers = [«gcc», «clang»] for compiler in compilers: test(compiler)

Le langage proposé permet de créer facilement des gestionnaires difficilement décrivables dans les fichiers de configuration basés sur le format YAML, et offre la possibilité de se passer de scripts externes en Shell ou en Python. Par ailleurs, l'approche mise en œuvre résout également le problème d'incompatibilité des formats YAML de configuration utilisés sur différentes plateformes d'automatisation de builds. Cicada propose des types d'événements indépendants des plateformes, qui permettent de lier le même scénario d'automatisation à différentes plateformes, par exemple, un gestionnaire de demandes push peut être attaché aux événements provenant de GitHub et GitLab.

Une attention particulière est également accordée à la conservation sécurisée des jetons et des mots de passe utilisés pour accéder aux API, aux dépôts et aux environnements pour l'installation des builds résultants. Ces informations sensibles sont stockées sous forme chiffrée (AES-GCM avec une clé de 256 bits) à l'aide de l'outil HashiCorp Vault. Pour chaque dépôt et point d'installation, une clé de chiffrement distincte est créée, les clés étant automatiquement mises à jour tous les 30 jours, le stockage des clés étant exécuté sur un serveur séparé. le serveur.

Les données secrètes ne sont par défaut pas transmises via les variables d'environnement, et l'accès au dépôt est uniquement en lecture. Une protection intégrée contre l'injection de commandes dans les expressions assure l'échappement automatique des constructions dangereuses, par exemple, l'expression ‘let name = «; rm -rf /»; echo Hello, (name)’ ne conduira pas à l'exécution de la commande «rm». Parmi les optimisations, on remarque un système intégré de mise en cache des résultats de compilation et de chargement des ressources.

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster