Proiectul Cicada dezvoltă un sistem de automatizare a compilărilor, similar cu GitHub Actions

Sistemul deschis de automatizare a proceselor de construire Cicada permite desfășurarea unei infrastructuri asemănătoare cu GitHub Actions, Azure DevOps și Gitlab CI pe serverul propriu, fără a depinde de serviciile cloud. Codul proiectului este scris în limbajul Python și este distribuit sub licența AGPLv3.

Sistemul este capabil să ruleze automat scripturi de construire și testare a codului la declanșarea anumitor evenimente, cum ar fi primirea de solicitări push în Git, crearea de versiuni, deschiderea/închiderea de issue-uri și deschiderea/închiderea de solicitări pull. Cicada se distinge prin furnizarea unei logici de lucru pentru un limbaj de programare funcțional, orientat pe subiect, care suportă variabile, expresii, bucle, blocuri condiționale și funcții încorporate. 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)

Limbajul propus permite crearea ușoară a handlerelor care sunt dificil de descris în fișierele de configurare bazate pe formatul YAML și oferă posibilitatea de a nu utiliza scripturi externe în Shell sau Python. Abordarea realizată rezolvă, de asemenea, problema incompatibilității formatelor YAML de configurare utilizate în diferite platforme de automatizare a construirilor. În Cicada sunt oferite tipuri de evenimente universale, independente de platformă, care permit legarea aceluiași script de automatizare la diferite platforme, de exemplu, un handler pentru solicitări push poate fi atașat la evenimentele provenite din GitHub și Gitlab.

De asemenea, se acordă o atenție deosebită stocării în siguranță a token-urilor și parolelor utilizate pentru accesul la API-uri, repo-uri și medii pentru instalarea construcțiilor rezultate. Informațiile confidențiale sunt stocate în formă criptată (AES-GCM cu o cheie de 256 de biți) folosind instrumentele HashiCorp Vault. Pentru fiecare repo și punct de instalare este creată o cheie de criptare separată, iar cheile sunt actualizate automat la fiecare 30 de zile, iar depozitul de chei este rulat pe un server separat. server.

Datele secrete nu sunt transmise implicit prin variabilele de mediu, iar accesul la depozit se face doar în mod de citire. Există o protecție integrată împotriva substituției comenzilor în expresii, care asigură escaparea automată a construcțiilor periculoase; de exemplu, expresia ‘let name = «; rm -rf /»; echo Hello, (name)’ nu va duce la executarea comenzii ‘rm’. Printre optimizări se numără un sistem integrat de cache pentru rezultatele compilării și încărcarea resurselor.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster