אתם יכולים להשתמש בטריגר לפיתוח גרסת Build של Cloud Build כדי להתחיל באופן אוטומטי בבנייה ולפרוס תהליך עבודה ממאגר Git. אפשר להגדיר את הטריגר כך שיפרוס את זרימת העבודה בכל שינוי במאגר המקור, או לפרוס את זרימת העבודה רק כשהשינוי תואם לקריטריונים ספציפיים.
הגישה הזו יכולה לעזור לכם לנהל את מחזור החיים של הפריסה. לדוגמה, אפשר לפרוס שינויים בתהליך עבודה בסביבת ביניים, להריץ בדיקות בסביבה הזו ואז להטמיע את השינויים האלה בהדרגה בסביבת הייצור.
לפני שמתחילים
ההוראות האלה מניחות שיש לכם את התפקיד 'עריכה' ב-Cloud Build (roles/cloudbuild.builds.editor) ב Google Cloud פרויקט, כדי שתוכלו ליצור טריגרים. צריך גם תהליך עבודה במאגר מקור כמו GitHub או Bitbucket.
המסוף
מפעילים את Cloud Build API ואת Workflows API.
מקצים לחשבון השירות של Cloud Build את התפקיד 'אדמין של Workflows' (
roles/workflows.admin):נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
בשורה של חשבון השירות של Cloud Build (
PROJECT_NUMBER@cloudbuild.gserviceaccount.com), לוחצים על עריכת חשבון משתמש.לוחצים על הוספת תפקיד נוסף.
ברשימה תפקיד, בוחרים בתפקיד Workflows Admin.
לוחצים על Save.
מקצים את התפקיד 'משתמש בחשבון שירות' (
roles/iam.serviceAccountUser) בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine לחשבון השירות של Cloud Build. אם הפעלתם את Compute Engine API, חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine הואPROJECT_NUMBER-compute@developer.gserviceaccount.com.נכנסים לדף Service Accounts במסוף Google Cloud .
בוחרים את הפרויקט הרצוי.
לוחצים על כתובת האימייל של חשבון השירות של Compute Engine שמוגדר כברירת מחדל (
PROJECT_NUMBER-compute@developer.gserviceaccount.com).לוחצים על הכרטיסייה Permissions.
לוחצים על הלחצן Grant access.
כדי להוסיף חשבון משתמש חדש, מזינים את כתובת האימייל של חשבון השירות (
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com).ברשימה Select a role בוחרים בתפקיד Service Accounts > Service Account User.
לוחצים על Save.
gcloud
מפעילים את Cloud Build API ואת Workflows API.
gcloud services enable cloudbuild.googleapis.com \ workflows.googleapis.comמקצים לחשבון השירות של Cloud Build את התפקיד 'אדמין של Workflows' (
roles/workflows.admin):PROJECT_NUMBER=$(gcloud projects describe PROJECT_ID --format='value(projectNumber)') gcloud projects add-iam-policy-binding PROJECT_ID \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/workflows.adminמחליפים את
PROJECT_IDבמזהה הפרויקט ב- Google Cloud.מקצים את התפקיד 'משתמש בחשבון שירות' (
roles/iam.serviceAccountUser) בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine לחשבון השירות של Cloud Build. אם הפעלתם את Compute Engine API, חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine הואPROJECT_NUMBER-compute@developer.gserviceaccount.com.gcloud iam service-accounts add-iam-policy-binding \ $PROJECT_NUMBER-compute@developer.gserviceaccount.com \ --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \ --role=roles/iam.serviceAccountUser
התחברות למאגר המקור
צריך לקשר את Cloud Build למאגר המקור כדי ש-Cloud Build יוכל לבצע אוטומציה של בנייה בתגובה לאירועים שמתרחשים במאגר.
כדי להתחבר ל-GitHub או ל-Bitbucket:
במסוף Google Cloud , נכנסים לדף Triggers של Cloud Build:
אם צריך, בוחרים את הפרויקט ולוחצים על Open (פתיחה).
ברשימה אזור, בוחרים את האזור שבו רוצים ליצור את הטריגר.
לוחצים על קישור מאגר.
בוחרים את מאגר המקור שבו שמרתם את קוד המקור.
לדוגמה: GitHub (אפליקציית GitHub של Cloud Build)
לוחצים על Continue.
מאמתים את עצמכם למאגר המקור באמצעות שם המשתמש והסיסמה.
אם אתם נכנסים ל-GitHub, תתבקשו לאשר לאפליקציית Google Cloud Build GitHub לגשת לחשבון שלכם ב-GitHub כדי להמשיך.
ברשימת המאגרים הזמינים, בוחרים את המאגר הרצוי ולוחצים על אישור.
במאגרים חיצוניים כמו GitHub ו-Bitbucket, צריכות להיות לכם הרשאות ברמת הבעלים בפרויקט Google Cloud שבו אתם עובדים.
קוראים את כתב הוויתור ומסמנים את תיבת הסימון שלידו כדי לציין שאתם מסכימים לתנאים.
לוחצים על Connect.
כדי להמשיך ליצור טריגר לפיתוח גרסת build כדי לבצע אוטומציה של גרסאות build לקוד המקור במאגר, לוחצים על Create a trigger. אחרת, לוחצים על סיום.
יצירת קובץ תצורה של Cloud Build
קובץ תצורת build מגדיר את השדות שנדרשים כשמשתמשים בטריגר לפיתוח גרסת Build כדי להתחיל build. יוצרים את קובץ ההגדרות בתיקיית השורש של הפרויקט וכותבים אותו בפורמט YAML או JSON.
לדוגמה, קובץ ההגדרות הבא פורס ומריץ תהליך עבודה לבדיקה, ואז משתמש בסקריפט כדי לבדוק את הפלט. אם הבדיקה עוברת, תהליך העבודה נפרס:
המשתנים $BRANCH_NAME ו-$SHORT_SHA
substitution variables מאוכלסים על ידי Cloud Build כש-build מופעל ממאגר Git. הם מייצגים את שם הענף ואת שבעת התווים הראשונים של מזהה הקומיט שמשויך ל-build, בהתאמה.
המשתנה $_WORKFLOW_NAME מאפשר לעשות שימוש חוזר בקובץ הגדרה עם ערכים שונים של משתנים. אפשר לציין את הערך שלו כשיוצרים את טריגר לפיתוח גרסת Build.
מידע נוסף זמין במאמר בנושא יצירת קובץ הגדרות build.
יצירת טריגר לפיתוח גרסת Build
אפשר ליצור טריגר לפיתוח גרסת Build ב-Cloud Build כדי לבצע אוטומציה של הפריסה של תהליך העבודה.
כדי ליצור טריגר לפיתוח גרסת Build לקובץ התצורה שבקטע הקודם:
במסוף Google Cloud , נכנסים לדף Triggers של Cloud Build:
לוחצים על Create trigger (יצירת ביטוי להפעלה).
בשדה שם, מזינים שם לטריגר.
בקטע Event (אירוע), בוחרים את האירוע שיפעיל את הטריגר.
לדוגמה: Push to a branch
בקטע Source (מקור), בוחרים את המאגר, את שם הענף או את שם התג שיתחילו את הטריגר. אפשר להשתמש בביטוי רגולרי כדי לציין התאמה לענף או לתג.
לדוגמה:
GoogleCloudPlatform/workflows-demos(מאגר) ו-^main$|^staging$(תואם לענפיםmainו-staging)מרחיבים את הקטע Show included and ignored files filters (הצגת מסננים של קבצים שנכללים וקבצים שהמערכת מתעלמת מהם) ומציינים את זרימת העבודה כקובץ שנכלל, כדי שכשיהיו שינויים בה, יופעל build.
לדוגמה:
gitops/workflow.yamlבקטע Configuration (הגדרה), בוחרים באפשרות Cloud Build configuration file (YAML or JSON) (קובץ הגדרה של Cloud Build (YAML או JSON)) בתור הסוג, ובאפשרות Repository (מאגר) בתור המיקום.
בשדה Cloud Build configuration file location (המיקום של קובץ תצורת ה-build של Cloud), מציינים את המיקום של הקובץ.
לדוגמה:
gitops/cloudbuild.yamlאופציונלי: כדי להוסיף משתנה חלופי, לוחצים על הוספת משתנה ומציינים שילוב של מפתח וערך.
לדוגמה:
_WORKFLOW_NAME(משתנה) ו-workflows-gitops(ערך)כדי לשמור את טריגר לפיתוח גרסת Build, לוחצים על יצירה.
כשדוחפים שינויים לזרימת עבודה בענף שצוין במאגר Git, השינויים מפעילים באופן אוטומטי את Cloud Build כדי לפרוס את זרימת העבודה.
מידע נוסף זמין במאמר בנושא יצירה וניהול של טריגרים לבנייה.
בדיקת טריגר לפיתוח גרסת Build
אפשר לבדוק את טריגר לפיתוח גרסת Build ואת קובץ תצורה מהקטעים הקודמים.
בענף
stagingשל מאגר Git, עורכים אתworkflow.yamlומשנים אתHello Worldל-Bye World:שומרים ודוחפים את השינוי להסתעפות
staging.git add workflow.yaml git commit -m "Update workflow.yaml in staging" git pushהטריגר של Cloud Build מופעל ומתחיל build.
כדי לוודא שהבנייה הצליחה, במסוף Google Cloud עוברים לדף Build history:
אחרי ש-build מסתיים, Cloud Build מספק סטטוס כללי של ה-build ושל כל שלב ב-build. מידע נוסף מופיע במאמר בנושא הצגת תוצאות של בנייה.
כדי לוודא שתהליך העבודה של סביבת הבדיקה הועבר לפריסה, במסוף Google Cloud עוברים לדף Workflows:
אמור להופיע תהליך עבודה בשם
workflows-gitops-staging.כדי לפרוס את תהליך העבודה של סביבת הבדיקה בסביבת הייצור, ממזגים את הענף
stagingעם הענףmain:git checkout main git merge staging git pushשימו לב: מכיוון ש-
test-main.shמצפה ל-Hello Worldבפלט של תהליך העבודה, הבנייה תיכשל:כדי לפרוס בהצלחה תהליך עבודה של ייצור, בענף
staging, עורכים שוב אתworkflow.yamlומשנים את המחרוזת בחזרה ל-Hello World.שומרים ודוחפים את השינוי להסתעפות
staging, ואז ממזגים את ההסתעפותstagingעם ההסתעפותmain.כדי לוודא שפריסת תהליך העבודה של הייצור בוצעה, במסוף Google Cloud נכנסים לדף Workflows:
אמור להופיע תהליך עבודה בשם
workflows-gitops-main.