Mfumo wazi wa michakato ya mkusanyiko wa kiotomatiki, Cicada, inapatikana, ambayo hukuruhusu kupeleka kwenye seva yako miundombinu inayofanana na GitHub Actions, Azure DevOps na Gitlab CI, bila huduma za wingu. Nambari ya mradi imeandikwa kwa Python na inasambazwa chini ya leseni ya AGPLv3.
Mfumo unaweza kuzindua kiotomatiki hati za kujenga na kujaribu misingi ya misimbo wakati matukio fulani yameanzishwa, kama vile kupokea ombi la programu katika Git, kuunda matoleo, kufungua/kufungwa kwa suala, na kufungua/kufungwa kwa maombi ya kuvuta. Kipengele tofauti cha Cicada ni utoaji wa lugha ya utendakazi yenye mwelekeo wa kikoa ambayo inasaidia vigeu, misemo, vitanzi, vizuizi vyenye masharti na vitendakazi vilivyojumuishwa ili kufafanua mantiki ya uendeshaji. kwenye git.push fn test(compiler): env.CC = compiler echo Jaribio (mkusanyaji) ganda safisha vikusanyaji vyote = [“gcc”, “clang”] kwa mkusanyaji katika vikusanyaji: test(compiler)
Lugha inayopendekezwa hurahisisha kuunda vidhibiti ambavyo vina shida kuelezea katika faili za usanidi kulingana na umbizo la YAML, na hurahisisha kufanya bila kuunganisha hati za nje katika Shell au Python. Wakati huo huo, mbinu iliyotekelezwa pia hutatua tatizo la kutopatana kwa miundo ya usanidi ya YAML inayotumiwa katika majukwaa tofauti ya uwekaji otomatiki ya kusanyiko. Cicada hutoa aina za matukio ya ulimwengu mzima zinazojitegemea ambazo hukuruhusu kuunganisha hati sawa ya otomatiki kwenye mifumo tofauti, kwa mfano, kidhibiti cha ombi la kushinikiza kinaweza kuambatishwa kwa matukio yanayotoka GitHub na Gitlab.
Uangalifu maalum pia hulipwa kwa hifadhi salama ya tokeni na manenosiri yanayotumika kufikia API, hazina, na mazingira ya usakinishaji kwa ajili ya miundo inayotokana. Taarifa nyeti kama hizo huhifadhiwa kwa njia fiche (AES-GCM yenye ufunguo wa biti 256) kwa kutumia HashiCorp Vault. Ufunguo tofauti wa usimbaji fiche huzalishwa kwa kila hazina na sehemu ya usakinishaji, funguo husasishwa kiotomatiki kila baada ya siku 30, na duka la funguo huendeshwa kwa mfano tofauti. seva.
Kwa chaguo-msingi, data ya siri haisambazwi kupitia vigeu vya mazingira, na ufikiaji wa kusoma pekee ndio unapewa hazina. Kuna ulinzi uliojengwa ndani dhidi ya uingizwaji wa amri katika misemo, ikitoa kutoroka kiotomatiki kwa miundo hatari, kwa mfano, usemi 'let name = "; rm -rf /"; echo Hello, (jina)' haitatekeleza amri ya "rm". Miongoni mwa uboreshaji, mfumo uliojengwa wa matokeo ya mkusanyiko wa caching na rasilimali za upakiaji umebainishwa.
Chanzo: opennet.ru
