יצירת חבילה של אינטגרציה רציפה

חבילת אינטגרציה רציפה (CI) היא קבוצה של הוראות אימות שמשויכת לפרויקט LookML. משתמש ב-Looker עם ההרשאה manage_ci יכול להגדיר את הדברים הבאים בחבילת CI:

לפני שמתחילים

כדי ליצור חבילת CI, צריך:

  • מכונה של Looker שעומדת בדרישות של CI ומופעלת ל-CI.
  • חשבון משתמש ב-Looker עם ההרשאה manage_ci (ההרשאה הזו כלולה בקבוצת ההרשאות של האדמין).
  • פרויקט של LookML עם לפחות commit אחד שנפרס בסביבת הייצור. שירותי CI שפועלים ברקע יכולים לאחזר את הגדרות ה-Git של הפרויקט רק אם הפרויקט נמצא במצב ייצור. אם הפרויקט קיים רק במצב פיתוח, ה-CI יחזיר שגיאות כשמגדירים טריגרים של webhook.

יצירת חבילת CI

אפשר להגדיר ולהריץ את כלי האימות בדף Suites ב-Looker IDE:

דף חבילות CI

כדי ליצור חבילת CI:

  1. ב-Looker IDE, לוחצים על הסמל Continuous Integration בסרגל הניווט של ה-IDE.
  2. לוחצים על הכרטיסייה Suites כדי לפתוח את הדף Suites.
  3. בדף Suites, אתם יכולים ליצור חבילה חדשה או לערוך חבילה קיימת:
    • כדי ליצור חבילה חדשה, לוחצים על הכפתור יצירת חבילה.
    • כדי לערוך חבילה קיימת, לוחצים על הכפתור עריכת החבילה של החבילה.
  4. מזינים שם בשדה Suite name. אם אתם עורכים חבילה קיימת, אתם יכולים ללחוץ על סמל העיפרון כדי לערוך את שם החבילה.
  5. (אופציונלי) אם רוצים להגדיר בדיקות אימות אוטומטיות לפי לוח זמנים קבוע, מפעילים את המתג הפעלה לפי לוח זמנים. מידע נוסף זמין בקטע הפעלה לפי לוח זמנים בדף הזה.
  6. (אופציונלי) מפעילים את המתג Trigger on pull requests from Looker אם רוצים להגדיר בדיקות אימות אוטומטיות בכל פעם שמפתח Looker שולח בקשת משיכה למאגר. מידע נוסף זמין בקטע הפעלה של בקשות משיכה מ-Looker בדף הזה.

    אם מפעילים הפעלה של בקשות משיכה לחבילת CI, אפשר להשתמש בשדה Only for target branch כדי לציין שרק בקשות משיכה לענפים ספציפיים במאגר יפעילו הרצה של חבילת ה-CI. מידע נוסף זמין בקטע הפעלה של בקשות משיכה מ-Looker בדף הזה.

  7. (אופציונלי) אם רוצים להגדיר בדיקות אימות אוטומטיות בכל פעם שמופעלת משימת CI ב-dbt Cloud, מפעילים את המתג Trigger on pull requests from dbt Cloud. מידע נוסף זמין בקטע הפעלה בבקשות משיכה מ-dbt Cloud בדף הזה.

  8. (אופציונלי) אם רוצים להגדיר בדיקת אימות אוטומטית בכל פעם שנשלחת בקשת משיכה לפרויקט upstream (מרכזי) מיובא, מבצעים את השלבים הבאים:

    1. מפעילים את המתג Trigger on pull requests from imported projects.
    2. בקטע Select upstream projects to subscribe to, מסמנים את התיבה של כל פרויקט Hub מיובא שאמור להפעיל את חבילת ה-CI הזו. צריך לבחור לפחות פרויקט אחד במעלה הזרם.

    מידע נוסף זמין בקטע הפעלה של בקשות משיכה מפרויקטים מיובאים בדף הזה.

  9. (אופציונלי) מפעילים את המתג Enable email alerts אם רוצים לקבל התראות באימייל על סמך הסטטוס של הרצת ה-CI. מידע נוסף זמין בקטע הגדרת התראות שבדף הזה.

  10. אם רוצים, אפשר להפעיל את המתגים של כלי האימות כדי להפעיל כלי אימות ולהגדיר את האפשרויות שלו. לפרטים נוספים, עיינו בדפי התיעוד הבאים של כל אחד מהמאמתים:

  11. שומרים את השינויים באחת מהשיטות הבאות:

    • אם אתם יוצרים חבילה חדשה, לוחצים על הכפתור יצירת חבילה.
    • אם עורכים חבילה קיימת, לוחצים על הכפתור עדכון החבילה.

טריגרים

אפשר להפעיל הרצות של CI בכמה דרכים:

הפעלה לפי לוח זמנים

כדי להגדיר חבילת CI שתופעל באופן אוטומטי לפי לוח זמנים, מפעילים את המתג Trigger on a schedule.

כשהמתג הזה מופעל, אתם יכולים לבחור את התדירות והפרטים להרצה אוטומטית של חבילת ה-CI:

  • כל חודש, ביום ובשעה ספציפיים
  • מדי שבוע, ביום ובשעה ספציפיים
  • מדי יום, בשעה ספציפית
  • כל שעה או כל 2, 3, 4, 6, 8 או 12 שעות, החל משעות מסוימות ביום ועד שעות מסוימות ביום
  • דקות כל 5, 10, 15, 20 או 30 דקות, החל משעות ספציפיות ביום ועד שעות ספציפיות ביום
  • חודשים ספציפיים בשנה, ביום ובשעה ספציפיים
  • בימים ספציפיים בשבוע בשעה ספציפית

הפעלה של בקשות משיכה מ-Looker

כדי להגדיר חבילת CI להפעלה אוטומטית בבקשת משיכה, מפעילים את המתג Trigger on pull requests from Looker. כדי להשתמש בהפעלה של בקשות משיכה, האדמין ב-Looker צריך להגדיר את מאגר Git בדף Continuous Integration Admin ב-Looker.

אם מפעילים טריגרים של בקשות משיכה לחבילת CI, אפשר לציין שבקשות משיכה רק לענפים ספציפיים במאגר יפעילו הרצה של חבילת ה-CI. כדי להגביל את הטריגרים האוטומטיים של בקשות משיכה של הרצות CI להסתעפויות ספציפיות במאגר, מזינים רשימה מופרדת בפסיקים של ההסתעפויות בשדה Only for target branch.

לדוגמה, אם למאגר יש שלושה ענפים בשמות main,‏ release_1 ו-dev, אתם יכולים להזין main, release_1 בשדה Only for target branch. כלומר, הרצות של CI יופעלו כשמפתח Looker ישלח בקשת משיכה להסתעפות main או release_1. אם מפתח Looker שולח בקשת משיכה להסתעפות dev, זה לא יפעיל הרצה אוטומטית של חבילת ה-CI.

הפעלה בבקשות משיכה מ-dbt Cloud

אם הגדרתם את השילוב של dbt Cloud במכונה שלכם, אתם יכולים להגדיר חבילת CI שתופעל באופן אוטומטי כשמשימת dbt Cloud CI מסתיימת. חבילת ה-CI בודקת אם שינויים במודלים של dbt יגרמו לשגיאות SQL ב-Looker Explores לפני פריסת השינויים ב-dbt.

כדי להגדיר את הטריגר הזה, צריך להפעיל את המתג Trigger on pull requests from dbt Cloud כשיוצרים או עורכים חבילת CI.

אחרי שמפעילים את הטריגר הזה, מגדירים את האפשרויות הבאות:

  • ‫dbt Cloud Job: בוחרים מהתפריט הנפתח את משימת ה-CI ב-dbt Cloud שאמורה להפעיל את חבילת הבדיקות הזו.

  • מאפיין משתמש של סכימה: בוחרים את מאפיין המשתמש ב-Looker שמכיל את שם הסכימה של החיבור למסד הנתונים. ברשימה הזו יופיעו רק מאפייני משתמשים שהופעלו עבור CI בחלונית הניהול.

כששומרים את חבילת הבדיקות כשהטריגר הזה מופעל, Looker רושם באופן אוטומטי webhook בחשבון dbt Cloud כדי להאזין לסיום המשימות.

בהרצות שמופעלות על ידי dbt Cloud,‏ Looker מזהה באופן דינמי את הסכימה הזמנית שנוצרה על ידי ההרצה של dbt Cloud, ומחליף את מאפיין המשתמש שנבחר בשם הסכימה הזמנית הזה למשך ההרצה של ה-CI.

הפעלה בבקשות משיכה מפרויקטים שיובאו

אם בפרויקט Looker שלכם אתם משתמשים בייבוא פרויקטים מקומיים כדי לייבא פרויקטים אחרים מאותו מכונה של Looker, אתם יכולים להגדיר חבילת CI לבדיקת פרויקטים במורד הזרם (הידועים כפרויקטים של spoke) בכל פעם שבקשת משיכה נפתחת או מתעדכנת בפרויקט מיובא במעלה הזרם (הידוע כפרויקט hub).

לדוגמה, נניח שיש לכם פרויקט מרכזי company_bi שיובא לפרויקטים המשניים marketing ו-finance. אפשר להגדיר טריגר בפרויקטים marketing ו-finance כדי לאמת את הפרויקטים האלה בכל פעם שנשלחת בקשת משיכה למאגר company_bi.

לפני שמגדירים את הטריגר הזה, חשוב להביא בחשבון את ההתנהגויות והדרישות המוקדמות הבאות:

  • ייבוא של פרויקטים מקומיים בלבד: כל הפרויקטים של ה-hub שרשומים כמנויים חייבים להיות מיובאים באופן מקומי לפרויקט ה-spoke באמצעות הפרמטר local_dependency ב-manifest.lkml באותו מכונה של Looker. אין תמיכה בפרויקטים מרוחקים (ייבוא שמשתמש בפרמטר remote_dependency בקובץ המניפסט של הפרויקט).
  • ‫Git ומצב ייצור: גם פרויקט ה-spoke וגם פרויקטי ה-hub המיובאים צריכים להיות פרוסים במצב ייצור, וצריך להגדיר את אפליקציית CI GitHub למאגרי Git שלהם.
  • הרשאות: לתפקיד Looker CI Users צריכה להיות ההרשאה develop למודלים גם בפרויקט ה-spoke וגם בפרויקטים המיובאים של ה-hub.
  • התנהגות כלי האימות: מכיוון שהפרויקט המיובא מאומת מול גרסת הייצור שלו ואין לו מצב Git של הסתעפות פיתוח להשוואה, אימות מצטבר מושבת באופן אוטומטי להרצות שמופעלות על ידי בקשות משיכה של פרויקטים מיובאים, ללא קשר להגדרת החבילה. בנוסף, מומלץ להשבית את CI LookML Validator ואת CI Style Validator בחבילות שמופעלות רק על ידי בקשות משיכה של פרויקטים מיובאים, כי כלי האימות האלה בודקים רק את הקבצים של פרויקט ה-spoke ולא מושפעים משינויים במעלה הזרם.

כדי להגדיר פרויקט משני להרצת אימות CI כשבקשות משיכה נשלחות לפרויקט מרכזי מיובא אחד או יותר, מבצעים את השלבים הבאים כשיוצרים או עורכים חבילת CI בפרויקט המשני:

  1. מפעילים את המתג Trigger on pull requests from imported projects.
  2. בקטע Select upstream projects to subscribe to, מסמנים את התיבה של כל פרויקט Hub מיובא שאמור להפעיל את חבילת ה-CI הזו. צריך לבחור לפחות פרויקט אחד במעלה הזרם.

אם רוצים ששינויים בפרויקט מרכזי יפעילו הרצות של אימות בכמה פרויקטים משניים, צריך להגדיר חבילת CI בכל פרויקט משני.

כששומרים את חבילת ה-CI, ‏ Looker יוצר באופן אוטומטי מינוי ל-webhook בכל מאגר של פרויקט מרכזי שנבחר לאירועים של בקשות משיכה. כשבקשת משיכה נשלחת למאגר של פרויקט Hub מנוי, Looker מפעיל הרצת CI בפרויקט Spoke. ההרצה מאמתת את גרסת הייצור של פרויקט ה-spoke, תוך הצמדה זמנית של פרויקט ה-hub המיובא ל-commit של בקשת משיכה (pull request). ‫Looker מדווח על התוצאה של הרצת ה-CI של פרויקט ה-spoke כסטטוס של השמירה בבקשת משיכה (pull request) של פרויקט ה-hub. אפשר גם לראות את פרטי ההרצה בדף Runs של פרויקט ה-spoke ב-Looker IDE, שבו בעמודה Trigger מוצג Project Import ובדף תוצאות ההרצה יש קטע Project Imports. מידע נוסף על אופן הביצוע של ההרצות האלה ועל אופן בדיקת התוצאות שלהן זמין במאמרים הרצת חבילות CI והצגת התוצאות של הרצת CI.

הגדרת התראות

כדי לקבל התראות באימייל על סמך הסטטוס של הרצות ה-CI, אתם יכולים להגדיר התראות לחבילת CI. כך אפשר לעקוב אחרי הרצות של Continuous Integration בלי לעיין בדף Runs ב-Looker IDE.

כדי להגדיר התראות באימייל לחבילת CI, מבצעים את השלבים הבאים כשיוצרים או עורכים חבילת CI:

  1. מפעילים את המתג הפעלת התראות באימייל.
  2. בשדה Email addresses, מזינים רשימה מופרדת בפסיקים של כתובות האימייל שאליהן רוצים לשלוח את ההתראות.
  3. מסמנים את התיבות לצד סטטוסי המשימות שרוצים שיפעילו התראה:
    • נכשל: הפעלת אימייל כשבדיקות האימות של הרצת CI נכשלות.
    • שגיאה: הפעלת אימייל כשבמהלך הרצת CI מתרחשת שגיאת מערכת או שגיאת הגדרה.
    • עבר: הפעלת אימייל כשהרצת CI מסתיימת בהצלחה.
    • בוטל: שליחת אימייל כשריצת CI מבוטלת.

מחיקת חבילה

כדי למחוק חבילת CI, מבצעים את השלבים הבאים:

  1. ב-Looker IDE, לוחצים על הסמל Continuous Integration בסרגל הניווט של ה-IDE.
  2. לוחצים על הכרטיסייה Suites כדי לפתוח את הדף Suites.
  3. בדף Suites, לוחצים על הכפתור Edit suite של החבילה.
  4. בדף של חבילת הבדיקות, לוחצים על הכפתור Delete suite.
  5. בתיבת הדו-שיח לאישור, לוחצים על הכפתור מחיקת החבילה.