בדף הזה מוסבר איך מציינים תלות בגרסת build. בעזרת Cloud Build אפשר לנהל את יחסי התלות של קוד המקור בנפרד מתהליך build.
בקובץ הגדרות ה-build, אפשר לציין מאגר אחד או יותר לשיבוט עבור ה-build, ואת הסדר שבו הם יאוחזרו. הגדרת יחסי תלות בדרך הזו מפרידה בין אחזור יחסי התלות לבין תהליך הבנייה עצמו.
אם לא כוללים תלות בקובץ תצורת ה-build, Cloud Build משכפל את מאגר המקורות של הקוד שמכיל את קובץ תצורת ה-build (במקרה של build שמופעל על ידי טריגר) או את המאגר שמכיל את קוד המקור (במקרה של build שמופעל משורת הפקודה). אם כוללים יחסי תלות בקובץ תצורת ה-build, Cloud Build משכפל רק מאגרים שמצוינים בשדה dependencies.
התלויות משוכפלות לפי הסדר שבו אתם מציינים אותן. בנוסף, אחזור התלות מתרחש לפני שמופעלת לוגיקה שצוינה על ידי המשתמש. לכן, אפשר לסמוך על אחזור התלות.
יחסי התלות מוצגים בכרטיסייה Build dependencies בדף Build details.
לפני שמתחילים
ההוראות בדף הזה מניחות שיש לכם לפחות אחד משני סוגי המאגרים הבאים:
כדי לוודא של- יש את ההרשאות שנדרשות להוספת מאגר Developer Connect כתלות, צריך לבקש מהאדמין לתת ל- את תפקיד ה-IAM Developer Connect Read Token Accessor (developerconnect.readTokenAccessor) בחשבון השירות.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שהאדמין גם יוכל לתת את ההרשאות שנדרשות באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
ציון יחסי תלות
כדי לציין יחסי תלות, מוסיפים את השדה dependencies לקובץ התצורה של ה-build. dependencies הוא נכס ברמה העליונה בהגדרת ה-build, אבל אפשר להציב אותו בכל מקום בקובץ.
ציון יחסי תלות ב-GitHub
כדי לציין תלות במאגר GitHub, מוסיפים את ההגדרות הבאות של dependencies לקובץ ההגדרות של ה-build:
YAML
dependencies:
- gitSource:
repository:
url: 'URL'
developerConnect: 'DC_RESOURCE_PATH'
revision: 'REVISION'
recurseSubmodules: 'true|false'
fetchTags: 'true|false'
depth: 'DEPTH'
destPath: 'DEST_PATH'
JSON
{
"dependencies": {
"gitSource": {
"repository": {
"url": "URL"
"developerConnect": "DC_RESOURCE_PATH"
},
"revision": "REVISION",
"recurseSubmodules": true|false,
"fetchTags": true|false,
"depth": "DEPTH",
"destPath": "DEST_PATH",
},
},
}
מחליפים את הערכים הבאים:
URL: כתובת ה-URL מסוג HTTPS של המאגר שאותו רוצים לאחזר. העמודה הזו נדרשת אלא אם המאגר שלכם מחובר ל-Cloud Build באמצעות Developer Connect.
DC_RESOURCE_PATH: נתיב Google Cloud המשאב למאגר Developer Connect. לדוגמה:
projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo. העמודה הזו נדרשת אם המאגר שלכם מחובר ל-Cloud Build באמצעות Developer Connect.אם המאגר שלכם מקושר באמצעות Developer Connect, תצטרכו את הפרטים הבאים:
- לחשבון השירות של Cloud Build צריך להיות מוקצה התפקיד
Developer Connect Read Token Accessor.
- לחשבון השירות של Cloud Build צריך להיות מוקצה התפקיד
REVISION: שדה חובה. הגרסה, הגיבוב של הקומיט, התג או שם הענף שיש לאחזר מהמאגר.
recurseSubmodules: 'true|false': האם לאחזר מודולי משנה.
fetchTags: 'true|false': אופציונלי. הערך True אם צריך לאחזר גם תגים מרוחקים (ברירת המחדל היאfalse). הערה: כשהערך שלdepthהוא1(ברירת המחדל),git fetchמאחזר רק תגים שמפנים להתחייבויות בתוך הגבול הרדוד. כדי לאחזר את כל התגים ההיסטוריים, מגדירים אתdepthלערך-1.DEPTH: אופציונלי, כמה עמוק בהיסטוריית המאגר צריך לבצע אחזור. אם לא מציינים, מתבצע אחזור של הקומיט האחרון.
-
1: הקומיט האחרון -
2: שתי ההתחייבויות האחרונות -
3: שלוש ההתחייבויות האחרונות -
-1: כל הקומיטים
-
DEST_PATH: שדה חובה. הנתיב לספרייה שאליה משכפלים את המאגר. לדוגמה,
my/repo.כשמגדירים את
dest_path, המאגר נטען ב-/workspace/<dest_path>. הערך שלdest_pathחייב להיות נתיב יחסי לספריית העבודה של ה-build.
הגדרת ארטיפקט גנרי כתלות
כדי לציין ארטיפקט כללי כתלות, מוסיפים את הגדרת dependencies הבאה לקובץ ההגדרות של ה-build:
YAML
dependencies:
- genericArtifact:
resource: RESOURCE
destPath: PATH
JSON
{
"dependencies": [
{
"genericArtifact": {
"resource": "RESOURCE",
"destPath": "PATH"
}
}
]
}
כאשר:
RESOURCE היא הכתובת המלאה של הארטיפקט הכללי במאגר הכללי של Artifact Registry, בפורמט הבא:
projects/PROJECT/locations/LOCATION/repositories/REPOSITORY/packages/PACKAGE/versions/VERSIONמומלץ מאוד לכלול את טביעת האצבע של הארטיפקט בכתובת המשאב, כדי ש-Cloud Build יוכל לאמת שההפניה לארטיפקט היא בלתי ניתנת לשינוי. גרסת חבילה עם טביעת אצבע מצורפת מפורמטת באופן הבא:
VERSION@dirsum_sha256=HASH_VALUEכדי למצוא את טביעת האצבע של ארטיפקט במאגר Artifact Registry, אפשר לעיין במאמר בנושא אחזור טביעת האצבע של גרסת חבילה במאגר.
PATH היא הכתובת של התיקייה שאליה Cloud Build מוריד את החבילה מהמאגר. אם התיקייה עדיין לא קיימת, Cloud Build יוצר אותה באופן אוטומטי.