זמינה מערכת פתוחה לאוטומציה של תהליכי הרכבה, Cicada, המאפשרת לך לפרוס על השרת שלך תשתית דומה ל-GitHub Actions, Azure DevOps ו-Gitlab CI, ללא תלות בשירותי ענן. קוד הפרויקט כתוב ב-Python ומופץ תחת רישיון AGPLv3.
המערכת מסוגלת להפעיל אוטומטית סקריפטים לבנות ולבדוק עבור בסיסי קוד כאשר אירועים מסוימים מופעלים, כגון קבלת בקשת דחיפה ב-Git, יצירת מהדורות, פתיחה/סגירה של בעיה ופתיחה/סגירה של למשוך בקשות. מאפיין ייחודי של Cicada הוא אספקת שפת תכנות פונקציונלית מוכוונת תחום התומכת במשתנים, ביטויים, לולאות, בלוקים מותנים ופונקציות מובנות להגדרת היגיון ההפעלה. ב-git.push fn test(compiler): env.CC = מהדר הד בדיקה (מהדר) מעטפת לעשות נקי כל תן מהדרים = ["gcc", "clang"] עבור מהדר במהדרים: test(compiler)
השפה המוצעת מקלה על יצירת מטפלים שבעייתיים לתאר אותם בקבצי תצורה המבוססים על פורמט YAML, ומאפשרת לעשות בלי חיבור סקריפטים חיצוניים ב-Shell או Python. במקביל, הגישה המיושמת פותרת גם את בעיית חוסר ההתאמה של פורמטים של תצורת YAML המשמשים בפלטפורמות אוטומציה שונות של הרכבה. Cicada מציעה סוגי אירועים אוניברסליים בלתי תלויים בפלטפורמה המאפשרים לך לאגד את אותו סקריפט אוטומציה לפלטפורמות שונות, לדוגמה, ניתן לצרף מטפל בקשות דחיפה לאירועים המגיעים מ-GitHub ו-Gitlab.
תשומת לב מיוחדת ניתנת גם לאחסון מאובטח של טוקנים וסיסמאות המשמשים לגישה ל-APIs, מאגרים וסביבות התקנה עבור ה-builds שנוצרו. מידע רגיש כזה מאוחסן מוצפן (AES-GCM עם מפתח 256 סיביות) באמצעות HashiCorp Vault. מפתח הצפנה נפרד נוצר עבור כל מאגר ונקודת התקנה, המפתחות מתעדכנים אוטומטית כל 30 יום, ומאגר המפתחות פועל על מופע נפרד. שרת.
כברירת מחדל, נתונים סודיים אינם מועברים באמצעות משתני סביבה, ורק גישת קריאה ניתנת למאגר. קיימת הגנה מובנית מפני החלפת פקודות בביטויים, המספקת בריחה אוטומטית של מבנים מסוכנים, למשל, הביטוי 'תן שם = "; rm -rf /"; echo Hello, (name)' לא יבצע את הפקודה "rm". בין האופטימיזציות מצוינת המערכת המובנית לאחסון תוצאות הידור במטמון וטעינת משאבים.
מקור: OpenNet.ru
