Sistemi i hapur i automatizimit të proceseve të ndërtimit Cicada ofron mundësinë për të implementuar infrastrukturën në serverin tuaj, të ngjashëm me GitHub Actions, Azure DevOps dhe Gitlab CI, pa varësi nga shërbimet në cloud. Kodi i projektit është shkruar në gjuhën Python dhe shpërndahet nën licencën AGPLv3.
Sistemi është në gjendje të aktivizojë automatikisht skenarë ndërtimi dhe testimi për bazat e kodit kur ndodhin ngjarje të caktuara, siç janë ndëshkimi i kërkesave push në Git, krijimi i lirimeve, hapja/mbyllja e çështjeve dhe hapja/mbyllja e kërkesave pull. Një tipar dallues i Cicada është ofrimi i një gjuhë programimi funksionale të orientuar nga subjekti për të përcaktuar logjikën e procesit, e cila mbështet variablat, shprehjet, ciklet, blloqet kushtore dhe funksionet e integruara. 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)
Gjuha e propozuar lejon krijimin e lehtë të menaxherëve që është problematike të përshkruhen në skedarët e konfigurimit të bazuar në formatin YAML dhe jep mundësinë për të shmangur lidhjen e skripteve të jashtme në Shell ose Python. Në të njëjtën kohë, qasja e zbatuar zgjidh edhe problemin e mosndërmarrjes së formateve YAML të konfigurimit, të përdorura në platforma të ndryshme të automatizimit të ndërtimit. Në Scicada ofrohen lloje universale ngjarjesh të pavarura nga platformat, të cilat lejojnë lidhjen e të njëjtit skenar automatizimi me platforma të ndryshme, për shembull, një menaxher i kërkesave push mund të lidhet me ngjarje që vijnë nga GitHub dhe Gitlab.
Vëmendje e veçantë gjithashtu i jepet ruajtjes së sigurt të tokeneve dhe fjalëkalimeve, të përdorura për qasje në API, depo dhe mjedise për instalimin e ndërtimeve përfundimtare. Një informacion i tillë konfidencial ruhen në formë të koduar (AES-GCM me çelës 256-bit) duke përdorur mjetet e HashiCorp Vault. Për çdo depo dhe pikë instalimi krijohet një çelës i veçantë kodimi, çelësat automatikisht përditësohen çdo 30 ditë, depoja e çelësave aktivizohet në një mjedis të veçantë. serveri.
TĂ« dhĂ«nat sekrete nga default nuk kalojnĂ« pĂ«rmes variablave tĂ« ambientit, dhe nĂ« depo hapet vetĂ«m akses nĂ« mĂ«nyrĂ« leximi. Ekziston njĂ« mbrojtje e integruar kundĂ«r injektimit tĂ« komandave nĂ« shprehje, qĂ« garanton ekranuarjen automatikisht tĂ« konstruksioneve tĂ« rrezikshme, pĂ«r shembull, shprehja âlet name = «; rm -rf /»; echo Hello, (name)â nuk do tĂ« shkaktojĂ« ekzekutimin e komandĂ«s «rm». Nga optimizimet, pĂ«rmendet njĂ« sistem i integruar pĂ«r ruajtjen nĂ« cache tĂ« rezultateve tĂ« kompilimit dhe ngarkimit tĂ« burimeve.
Burimi: opennet.ru
