מבוא לבזל

Bazel הוא כלי מבוסס קוד פתוח לבדיקה וליצירה, כגון Maven, Maven ו-Garedle. הוא משתמש בשפת build ברמה אנושית שניתנת לקריאה. Bazel תומכת בפרויקטים בשפות מרובות ויוצרת פלט עבור פלטפורמות מרובות. Bazel תומכת במאגרי קוד גדולים במספר מאגרים, ובמספר רב של משתמשים.

יתרונות

Bazel מציעה את היתרונות הבאים:

  • שפת build ברמה גבוהה. בזל משתמשת בשפה מופשטת שניתנת לקריאה על ידי אנשים כדי לתאר את מאפייני ה-build של הפרויקט שלך ברמה סמנטית גבוהה. שלא כמו כלים אחרים, Bazel פועלתקונספטים בספריות, בקבצים בינאריים, בסקריפטים ובמערכי נתונים, כדי להגן עליך מהמורכבות של כתיבת קריאות בודדות לכלים כגון מהדרים וקישורים.

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

  • Bazel הוא פלטפורמה מרובת פלטפורמות. Bazel פועלת ב-Linux, ב-macOS וב-Windows. Bazel יכולה לבנות בינאריות וחבילות פריסה לכמה פלטפורמות, כולל מחשבים שולחניים, שרתים ומכשירים ניידים, מאותו פרויקט.

  • קנה מידה של Bazel. Bazel שומרת על גמישות בזמן הטיפול ב-build עם יותר מ-100,000 קובצי מקור. הוא פועל עם מאגרים ובסיסי משתמשים מרובים בעשרות אלפים.

  • הבריסה ניתנת להרחבה. שפות רבות נתמכות, וניתן להרחיב את Bazel לתמיכה בכל שפה או מסגרת אחרת.

שימוש בבזל

כדי לבנות או לבדוק פרויקט עם Bazel, בדרך כלל מבצעים את הפעולות הבאות:

  1. הגדרת Bazel. מורידים ומתקינים את Bazel.

  2. הגדרת סביבת עבודה עבור פרויקט, שהיא ספרייה שבה Bazel מחפשת קלט של גרסאות ו-BUILD קבצים, ומקום שבו היא שומרת פלטי build.

  3. כתיבה של BUILD קובץ, שמספרה ל-Bazel מה לבנות ואיך לבנות אותה.

    כתיבת קובץ ה-BUILD מתבצעת על ידי הצהרה על יעדי build באמצעות Starlark, שפה ספציפית לדומיין. (ראו דוגמה כאן).

    יעד build מציין קבוצה של פריטי קלט שנוצרו על ידי Bazel, יחד עם יחסי התלות שלהם, כלל ה-Bazel שישמש לבנייתו ואפשרויות מגדירות את כלל ה-build.

    כלל build מציין את כלי ה-build שבהם תשתמש ב-Bazel, כגון מהדרים וקישורים, ובהגדרות שלהם. ב Baזelל כוללת כמה כללי בנייה, המכסים את הסוגים הנפוצים ביותר של פריטי מידע שנוצרו בתהליך פיתוח (Artifact) בשפות הנתמכות בפלטפורמות נתמכות.

  4. הפעל את Bazel משורת הפקודה. Bazel ממקם את הפלטים שלך בתוך סביבת העבודה.

בנוסף לבנייה, אפשר להשתמש גם ב-Bazel כדי להריץ בדיקות ושאילתה של ה-build כדי לאתר יחסי תלות בקוד.

תהליך בנייה של Bazel

בעת הפעלת build או בדיקה, Bazel מבצעת את הפעולות הבאות:

  1. טוען את BUILD הקבצים הרלוונטיים ליעד.

  2. ניתוח הקלט וקלט יחסי תלות , מחיל את כללי ה-build שצוינו ומפיקפעולה graph.

  3. הפעלת פעולות ה-build בקלט עד הפקת הפלט הסופי של ה-build.

מכיוון שכל עבודת הבנייה הקודמת נשמרה במטמון, Bazel יכולה לזהות שימוש חוזר בפריטי מידע שנוצרו בתהליך פיתוח (Artifact) ולשמור על שימוש חוזר, וליצור מחדש או לבדוק מחדש מה השתנה. כדי לאכוף את התיקון בצורה נכונה יותר, אפשר להגדיר ב-Bazel להריץ בדיקות ובדיקה באופן הרמטי באמצעות ארגז חול, למזער את ההטיה ולמקסם את השחזור.

גרף פעולה

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

מדריכים לתחילת העבודה

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