Cicada-prosjektet utvikler et byggeautomatiseringssystem som ligner på GitHub Actions

Et åpent system for automatisering av monteringsprosesser, Cicada, er tilgjengelig, som lar deg distribuere på serveren din en infrastruktur som ligner på GitHub Actions, Azure DevOps og Gitlab CI, uavhengig av skytjenester. Prosjektkoden er skrevet i Python og distribueres under AGPLv3-lisensen.

Systemet er i stand til automatisk å starte bygge- og teste skript for kodebaser når visse hendelser utløses, for eksempel mottak av en push-forespørsel i Git, opprettelse av utgivelser, åpning/lukking av et problem, og åpning/lukking av pull forespørsler. Et særtrekk ved Cicada er tilbudet av et domeneorientert funksjonelt programmeringsspråk som støtter variabler, uttrykk, løkker, betingede blokker og innebygde funksjoner for å definere driftslogikken. på git.push fn test(kompilator): env.CC = kompilator ekko Testing (kompilator) shell make clean all let compilers = [“gcc”, “clang”] for kompilator i kompilatorer: test(compiler)

Det foreslåtte språket gjør det enkelt å lage behandlere som er problematiske å beskrive i konfigurasjonsfiler basert på YAML-formatet, og gjør det mulig å gjøre uten å koble til eksterne skript i Shell eller Python. Samtidig løser den implementerte tilnærmingen også problemet med inkompatibilitet av YAML-konfigurasjonsformater som brukes i forskjellige monteringsautomatiseringsplattformer. Cicada tilbyr plattformuavhengige universelle hendelsestyper som lar deg binde det samme automatiseringsskriptet til forskjellige plattformer, for eksempel kan en push request-behandler kobles til hendelser som kommer fra GitHub og Gitlab.

Особое внимание также уделяется безопасному хранению токенов и паролей, применяемых для доступа к API, репозиториям и окружениям для установки результирующих сборок. Подобная конфиденциальная информация хранится в зашифрованном виде (AES-GCM c 256-разрядным ключом) при помощи инструментария HashiCorp Vault. Для каждого репозитория и точки установки создаётся отдельный ключ шифрования, ключи автоматически обновляются каждые 30 дней, хранилище ключей запускается на отдельном server.

Som standard overføres ikke hemmelige data gjennom miljøvariabler, og kun lesetilgang gis til depotet. Det er innebygd beskyttelse mot kommandoerstatning i uttrykk, som gir automatisk unnslipping av farlige strukturer, for eksempel uttrykket ‘la navn = “; rm -rf /"; echo Hei, (navn)' vil ikke utføre "rm"-kommandoen. Blant optimaliseringene er det innebygde systemet for caching av kompileringsresultater og lasting av ressurser notert.

Kilde: opennet.ru

Kjøp pålitelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere 🔥 Kjøp pålitelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster