סקריפטים למאגר
סקריפטים של מאגר הם סקריפטים של מעטפת שתגדירו לכל מאגר בנפרד (הגדרות →
מאגרים → סמל הטרמינל בשורה של המאגר) ושהשרת של Control Center מריץ כנגד עץ
העבודה של מרחב של אותו מאגר — ה-checkout המבודד תחת
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ שבו הסוכנים עובדים.
יש שני סוגים:
| סקריפט | מתי הוא רץ | למה הוא משמש |
|---|---|---|
| הקמה | מיד לאחר שמוקצה עץ עבודה למרחב | התקנת תלויות, יצירת קבצים, העתקת .env |
| ארכוב | ממש לפני שעץ עבודה נהרס או נאסף באשפה | ניקוי משאבים מחוץ לעץ העבודה (רשתות Docker, מנהרות, מצב חיצוני) |
היכן הסקריפטים רצים
קטע בשם “היכן הסקריפטים רצים”שני הסקריפטים רצים דרך bash -lc (מעטפת התחברות, כך שכלים שהותקנו עם
Homebrew/nvm נמצאים ב-PATH), כשעץ העבודה הוא תיקיית העבודה, ועם משתני
הסביבה האלה:
| משתנה | ערך |
|---|---|
CC_WORKSPACE_PATH |
עץ העבודה (ה-cwd של הסקריפט) |
CC_ROOT_PATH |
המאגר המקורי הרשום — ה-checkout שלכם |
CC_SPACE_ID |
המרחב שעץ העבודה שייך אליו |
CC_SPACE_NAME |
שם התצוגה של המרחב |
CC_REPO_NAME |
שם התצוגה של המאגר |
לדוגמה, סקריפט הקמה שמתקין תלויות ומביא את ה-.env שנמצא ב-gitignore של
המאגר:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildהתנהגות בעת כשל
קטע בשם “התנהגות בעת כשל”- סקריפט הקמה שיוצא עם קוד שונה מאפס (או חורג מהזמן הקצוב של 5 דקות) מכשיל את ההקצאה של המרחב: המרחב מציג את מצב הכשל עם ניסיון חוזר, וזנב הפלט של ההרצה נרשם. ניסיון חוזר מקצה עץ עבודה נקי ומריץ את הסקריפט שוב — כתבו סקריפטי הקמה כך שהרצה חוזרת אחרי התקנה חלקית תעבוד (מנהלי חבילות כבר מתנהגים כך).
- סקריפט ארכוב פועל במאמץ מיטבי: כשל (או פקיעת הזמן הקצוב של 2 דקות) נרשם, אבל לעולם אינו חוסם מחיקה. הארכוב רץ בנתיבי איסוף אשפה שאין בהם מי שיענה לבקשה (מרחב שנמחק, בקשת משיכה שמוזגה, ניקוי מתוזמן).
ההקמה רצה רק על עץ עבודה חדש: שליחה חוזרת של סוכנים למרחב חם עושה שימוש חוזר ב-checkout הקיים ואינה משלמת שוב על ההתקנה.
היסטוריית הרצות
קטע בשם “היסטוריית הרצות”כל הרצה נרשמת עם הסטטוס, משך הזמן, קוד היציאה וזנב פלט באורך מוגבל, והכול
גלוי באותו דיאלוג הגדרות תחת “הרצות אחרונות” (המנוי repos.watchScriptRuns
משדר אותה בזמן אמת).
הרשאות
קטע בשם “הרשאות”הסקריפטים הם מעטפת שהשרת מריץ, ולכן כתיבתם שמורה למנהלי סביבת עבודה
בלבד ומאובטחת על ידי מחלקת הפעולה processSpawn — אותה רשת מעקות בטיחות
שחוסמת כל פעולה אחרת שמפעילה תהליך.