Projekt Cicada vyvíjí systém automatizace sestavení podobný GitHub Actions.

Dostupný je otevřený systém automatizace sestavovacího procesu Cikada, který umožňuje nasadit infrastrukturu na vašem serveru podobnou GitHub Actions, Azure DevOps a GitLab CI, bez závislosti na cloudových službách. Kód projektu je napsán v jazyce Python a šíří se pod licencí AGPLv3.

Systém je schopen automaticky spouštět skripty pro sestavení a testování kódových základů při vzniku určitých událostí, jako je příjem push žádosti v Gitu, vytvoření vydání, otevření/zavření issue a otevření/zavření pull žádostí. Charakteristickým rysem Cikada je poskytování pro definici logiky práce předmětně orientovaného funkčního programovacího jazyka, který podporuje proměnné, výrazy, cykly, podmínkové bloky a vestavěné funkce. 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)

Nabízený jazyk umožňuje snadno vytvářet zpracovatele, které je problematické popsat v konfiguračních souborech založených na formátu YAML, a dává možnost obejít se bez připojování externích skriptů v Shell nebo Pythonu. Realizovaný přístup také řeší problém s nekompatibilitou YAML formátů konfigurace používaných na různých platformách automatizace sestav. V Cikada jsou nabízeny univerzální typy událostí nezávislé na platformě, které umožňují připojit stejný scénář automatizace k různým platformám, například zpracovatel push žádostí může být připojen k událostem přicházejícím z GitHubu a GitLabu.

Zvláštní pozornost je také věnována bezpečnému ukládání tokenů a hesel používaných pro přístup k API, repozitářům a prostředím pro instalaci výsledných sestav. Takové důvěrné informace jsou uchovávány v zašifrované podobě (AES-GCM s 256bitovým klíčem) pomocí nástrojů HashiCorp Vault. Pro každý repozitář a instalační místo je vytvořen samostatný klíč šifrování, klíče se automaticky aktualizují každých 30 dní, úložiště klíčů běží na samostatném serveru.

Výchozí tajná data se nepřenášejí prostřednictvím proměnných prostředí a do repozitáře se otevírá pouze přístup pro čtení. Existuje integrovaná ochrana proti vkládání příkazů do výrazů, která zajišťuje automatické escapování nebezpečných konstrukcí. Například výraz ‘let name = «; rm -rf /»; echo Hello, (name)’ nezpůsobí vykonání příkazu „rm“. Mezi optimalizacemi se uvádí integrovaný systém缓存ování výsledků kompilace a načítání zdrojů.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster