Cicada-projektet utvecklar ett automatiseringssystem för byggprocesser som liknar GitHub Actions.

Det finns ett öppet system för automatisering av byggprocesser, Cicada, som gör det möjligt att pÄ sin egen server implementera en infrastruktur som liknar GitHub Actions, Azure DevOps och GitLab CI utan att vara beroende av molntjÀnster. Projektets kod Àr skriven i Python och distribueras under AGPLv3-licensen.

Systemet kan automatiskt köra bygg- och testscript nÀr vissa hÀndelser intrÀffar, sÄsom mottagning av push-förfrÄgningar i Git, skapande av releaser, öppnande/stÀngning av Àrenden och öppnande/stÀngning av pull-förfrÄgningar. En sÀrskiljande egenskap hos Cicada Àr att det tillhandahÄller en logik för en domÀnspecifik funktionell programmeringssprÄk som stöder variabler, uttryck, loopar, villkorsblock och inbyggda funktioner. 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)

Det föreslagna sprÄket gör det enkelt att skapa hanterare som Àr svÄra att beskriva i konfigurationsfiler baserade pÄ YAML-format, och gör det möjligt att undvika att anvÀnda externa skript pÄ Shell eller Python. Denna implementerade metod löser ocksÄ problemet med inkompatibilitet hos YAML-konfigurationsformat som anvÀnds över olika byggautomatiseringsplattformar. I Cicada erbjuds plattformsoberoende universella hÀndelsetyper som gör det möjligt att koppla ett och samma automatiseringsscript till olika plattformar, till exempel kan en hanterare för push-förfrÄgningar kopplas till hÀndelser frÄn bÄde GitHub och GitLab.

SÀrskild uppmÀrksamhet Àgnas ocksÄ Ät sÀker lagring av tokens och lösenord som anvÀnds för att fÄ Ätkomst till API:er, repositoryn och miljöer för installation av resultatande byggen. SÄdan konfidentiell information lagras i krypterad form (AES-GCM med en 256-bitars nyckel) med hjÀlp av HashiCorp Vault-verktyget. För varje repository och installationspunkt skapas en separat krypteringsnyckel, och nycklarna uppdateras automatiskt var 30:e dag. Nyckellagret körs pÄ en separat servern.

Standarddata skickas inte genom miljövariabler, och ett repository fÄr endast lÀsbehörighet. Det finns inbyggt skydd mot kommandoinjektion i uttryck, vilket sÀkerstÀller automatisk escapering av farliga konstruktioner, till exempel kommer uttrycket 'let name = "; rm -rf /"; echo Hello, (name)' inte att utföra kommandot 'rm'. Bland optimeringarna finns ett inbyggt cache-system för kompilering och resursladdning.

KĂ€lla: opennet.ru

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster