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.
Секретные данные по умолчанию не передаются через переменные окружения, а в репозиторий открывается только доступ на чтение. Имеется встроенная защита от подстановки команд в выражения, обеспечивающая автоматическое экранирование опасных конструкций, например, выражение ‘let name = «; rm -rf /»; echo Hello, (name)’ не приведёт к выполнению команды «rm». Из оптимизаций отмечается встроенная система кэширования результатов компиляции и загрузки ресурсов.
Burimi: opennet.ru
