Cicada on avatud automaatikaseade, mis vĂ”imaldab teie serveris ĂŒles seada infrastruktuuri, mis sarnaneb GitHub Actions'i, Azure DevOps'i ja GitLab CI'ga, ilma pilveteenustest sĂ”ltumata. Projekti kood on kirjutatud Pythonis ja levitatakse AGPLv3 litsentsi alusel.
SĂŒsteem suudab automaatselt kĂ€ivitada ehitus- ja testimisstsenaariume, kui teatud sĂŒndmused kĂ€ivituvad, nagu push-pĂ€ringu vastuvĂ”tmine Git'is, versioonide loomine, ĂŒlesannete avamine/sulgemine ja pull-pĂ€ringute avamine/sulgemine. Cicada eripĂ€ra on selle suutlikkus anda kindlaks objekti-orienteeritud funktsionaalse programmeerimiskeele loogika, mis toetab muutujaid, vĂ€ljendeid, tsĂŒkleid, tingimuslikke plokke ja sisseehitatud funktsioone. 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)
Pakutud keel vĂ”imaldab kergesti luua töötlejaid, mida on keeruline kirjeldada YAML-formaadiga konfiguratsioonifailides, ja annab vĂ”imaluse vĂ€ltida vĂ€liste Shell vĂ”i Python skriptide kasutamist. Samal ajal lahendab rakendatud lĂ€henemine ka probleemid, mis on seotud YAML-formaatide mitteĂŒhilduvusega, mida kasutatakse erinevates ehituse automatiseerimise platvormides. Cicadas pakutakse platvormist sĂ”ltumatuid universaalseid sĂŒndmuste tĂŒĂŒpe, mis vĂ”imaldavad sama automatiseerimisskeemi siduda erinevate platvormidega, nĂ€iteks push-pĂ€ringute töötleja vĂ”ib olla seotud sĂŒndmustega, mis pĂ€rinevad GitHub'ist ja GitLab'ist.
Eriti suurt tĂ€helepanu pööratakse tokenite ja paroolide turvalisele hoidmisele, mida kasutatakse API-de, hoidlate ja keskkondade ligipÀÀsu jaoks tulemuslike ehituste paigaldamiseks. Selline konfidentsiaalne teave hoitakse krĂŒpteeritud kujul (AES-GCM 256-bitise vĂ”tmega) HashiCorp Vault'i tööriistade abil. Iga hoidla ja paigalduspunkti jaoks luuakse eraldi krĂŒpteerimisvĂ”ti, vĂ”tmeid uuendatakse automaatselt iga 30 pĂ€eva tagant, vĂ”tihoidla kĂ€ivitatakse eraldi. serveris.
KasutajatĂ”enduse andmeid ei edastata vaikimisi keskkonna muutuja kaudu, ja repositooriumisse antakse ainult lugemisĂ”igus. On olemas sisseehitatud kaitse kĂ€skude asendamise eest vĂ€ljendites, mis tagab ohtlike konstruktsioonide automaatse eskapeerimise, nĂ€iteks vĂ€ljend âlet name = «; rm -rf /»; echo Hello, (name)â ei too kaasa kĂ€su «rm» tĂ€itmist. Optimeeringutest on mĂ€rgitud sisseehitatud sĂŒsteem kompileerimise ja ressursside laadimise tulemuste vahemĂ€lu.
Allikas: opennet.ru
