Cicada նախագիծը մշակում է կառուցման ավտոմատացման համակարգ, որը նման է GitHub Actions-ին

Հասանելի է կառուցման գործընթացների ավտոմատացման բաց համակարգ՝ Cicada-ն, որը թույլ է տալիս ձեր սերվերի վրա տեղակայել GitHub Actions-ի, Azure DevOps-ի և Gitlab CI-ի նման ենթակառուցվածք՝ անկախ ամպային ծառայություններից: Նախագծի կոդը գրված է Python լեզվով և տարածվում է AGPLv3 լիցենզիայով:

Համակարգը կարող է ավտոմատ կերպով գործարկել կոդի հիմքերի կառուցման և թեստավորման սկրիպտներ, երբ ակտիվանում են որոշակի իրադարձություններ, ինչպիսիք են Git push հարցումը, թողարկումները, խնդիրները և pull հարցումները: Cicada-ի առանձնահատկությունն այն է, որ այն տրամադրում է տիրույթին հատուկ ֆունկցիոնալ ծրագրավորման լեզու՝ աշխատանքի տրամաբանությունը սահմանելու, փոփոխականներ, արտահայտություններ, ցիկլեր, պայմանական բլոկներ և ներկառուցված ֆունկցիաներ աջակցելու համար: git.push-ի վրա fn test(compiler): env.CC = compiler echo Testing (compiler) shell make clean all let compilers = [«gcc», «clang»] compiler-ի համար compilers-ում. test(compiler)

Առաջարկվող լեզուն թույլ է տալիս հեշտությամբ ստեղծել մշակիչներ, որոնք դժվար է նկարագրել կազմաձևման ֆայլերում՝ հիմնված YAML ձևաչափի վրա, և դա հնարավոր է դարձնում առանց արտաքին սկրիպտները միացնելու Shell-ում կամ Python-ում: Միևնույն ժամանակ, ներդրված մոտեցումը լուծում է նաև շինարարական ավտոմատացման տարբեր հարթակներում օգտագործվող YAML կոնֆիգուրացիայի ձևաչափերի անհամատեղելիության խնդիրը: Cicada-ն առաջարկում է հարթակից անկախ համընդհանուր իրադարձությունների տեսակներ, որոնք թույլ են տալիս նույն ավտոմատացման սցենարը կապվել տարբեր հարթակների հետ, օրինակ՝ push հարցումների մշակիչը կարող է կցվել GitHub-ից և Gitlab-ից եկող իրադարձություններին:

Հատուկ ուշադրություն է դարձվում նաև API-ներին, պահոցներին և արդյունքում ստացված կառուցվածքների տեղադրման միջավայրերին մուտք գործելու համար օգտագործվող տոկենների և գաղտնաբառերի անվտանգ պահպանմանը: Նման զգայուն տեղեկատվությունը պահվում է կոդավորված (AES-GCM՝ 256-բիթանոց բանալիով)՝ օգտագործելով HashiCorp Vault-ը: Յուրաքանչյուր պահոցի և տեղադրման կետի համար ստեղծվում է առանձին կոդավորման բանալի, բանալիները ավտոմատ կերպով թարմացվում են յուրաքանչյուր 30 օրը մեկ, և բանալիների պահոցը աշխատում է առանձին օրինակի վրա: սերվեր.

Լռելյայնորեն, զգայուն տվյալները չեն փոխանցվում շրջակա միջավայրի փոփոխականների միջոցով, և պահեստը միայն կարդալու է: Կա ներկառուցված պաշտպանություն հրամանները արտահայտություններով փոխարինելու դեմ, որն ապահովում է վտանգավոր կոնստրուկցիաների ավտոմատ փախուստը, օրինակ՝ «let name = "; rm -rf /» արտահայտությունը; echo Hello, (անուն)» չի կատարի «rm» հրամանը: Օպտիմալացումները ներառում են ներկառուցված համակարգ՝ հավաքագրման արդյունքների քեշավորման և ռեսուրսների բեռնման համար:

Source: opennet.ru

Գնեք հուսալի հոստինգ DDoS պաշտպանությամբ կայքերի, VPS VDS սերվերների համար 🔥 Գնեք հուսալի կայքերի հոսթինգ՝ DDoS պաշտպանությամբ, VPS VDS սերվերներով | ProHoster