שער שמתבסס על אישור

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

בדף הזה מוסבר איך לאשר או לדחות באופן ידני גרסאות build. במאמר יצירת טריגר לפיתוח גרסת Build מוסבר איך להגדיר טריגר שדורש אישור.

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

  • מפעילים את Cloud Build API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, נדרשת ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק 'שימוש בשירות'' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

מתן הרשאות

אם למשתמש יש את התפקיד 'עורך ב-Cloud Build', יש לו הרשאות לעדכן טריגר כדי לדרוש או לא לדרוש אישור. מידע נוסף על הרשאות Cloud Build זמין במאמר IAM והרשאות. כדי להעניק למשתמש הרשאה לאשר בנייה בפרויקט, המשתמש צריך לקבל את התפקיד Cloud Build Approver.

כדי להוסיף את התפקיד Cloud Build Approver:

  1. פותחים את הדף IAM במסוף Google Cloud .

    פתיחת הדף IAM

  2. לוחצים על הענקת גישה.

    תופיע החלונית הענקת גישה.

  3. בקטע Add principals, מוסיפים משתמשים כדי לתת להם הרשאה לאשר בנייה בהמתנה בפרויקט.

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

  4. בקטע Assign roles, בוחרים באפשרות Cloud Build > Cloud Build Approver.

למשתמשים שציינתם יש עכשיו גישה לאישור או לדחייה של גרסאות build בהמתנה.

אישור גרסאות Build

המסוף

כדי לאשר גרסת build בהמתנה במסוף Google Cloud :

  1. פותחים את הדף Cloud Build Dashboard במסוף Google Cloud .

    פתיחת הדף Cloud Build Dashboard

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

  3. לוחצים על תיבות הסימון של הגרסאות שרוצים לאשר. אפשר לבחור כמה גרסאות build לאישור או גרסת build אחת לאישור.

  4. בחלק העליון של הדף, לוחצים על אישור כדי לאשר את הגרסאות שבחרתם.

  5. לפני שהגרסה תתחיל להיבנות, תוצג תיבת הדו-שיח אישור בניית הגרסה. בתיבת הדו-שיח, אפשר להוסיף הודעה אופציונלית וכתובת URL שיוצגו לצד האישור של הגרסה. כדי לכלול כתובת URL, לוחצים על הצגת אפשרויות נוספות ומזינים כתובת URL.

  6. בתיבת הדו-שיח, לוחצים על אישור כדי לאשר את הגרסה.

אחרי שתאשרו, הבנייה תתחיל מיד. אם המדיניות של הארגון (constraints/cloudbuild.allowedIntegrations) שוללת את הגישה למאגר המחובר, המדיניות תבטל את האישור. מידע נוסף מופיע במאמר בנושא Gate builds on organization policy.

gcloud

כדי לאשר בנייה בהמתנה באמצעות gcloud commands, מריצים את הפקודה הבאה בחלון המסוף:

gcloud builds approve BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

מחליפים את ערכי ה-placeholder בפקודות שלמעלה בערכים הבאים:

  • BUILD_ID הוא המזהה של הגרסה שרוצים לאשר.
  • PROJECT_ID הוא מזהה הפרויקט.
  • ‫[Optional] ‏ URL הוא ה-URL שמכיל מידע על האישור, כמו קישור לכרטיס JIRA.
  • [אופציונלי] COMMENT היא ההודעה שרוצים להציג אחרי אישור ה-build.

אחרי שתאשרו, הבנייה תתחיל מיד. אם מדיניות הארגון להגדרת גרסאות build לשילובים מותרים (constraints/cloudbuild.allowedIntegrations) מוגדרת, המדיניות תבטל את האישור. מידע נוסף זמין במאמר בנושא החלת מדיניות ארגונית על טריגרים של build.

דחיית בילדים

המסוף

כדי לדחות גרסת build בהמתנה במסוף Google Cloud :

  1. פותחים את הדף Cloud Build Dashboard במסוף Google Cloud .

    פתיחת הדף Cloud Build Dashboard

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

  3. אפשר לבחור כמה גרסאות build לדחייה או גרסת build אחת לדחייה. לוחצים על תיבות הסימון של הגרסאות שרוצים לדחות.

  4. כדי לדחות את הגרסה, לוחצים על דחייה בחלק העליון של הדף.

אם תדחו את הבנייה, היא לא תתחיל.

gcloud

כדי לדחות בנייה בהמתנה באמצעות gcloud commands, מריצים את הפקודה הבאה בחלון המסוף:

gcloud builds reject BUILD_ID \
  --project=PROJECT_ID \
  --url=URL \
  --comment=COMMENT

מחליפים את ערכי ה-placeholder בפקודות שלמעלה בערכים הבאים:

  • BUILD_ID הוא המזהה של הגרסה שרוצים לדחות.
  • PROJECT_ID הוא מזהה הפרויקט.
  • [אופציונלי] URL הוא ה-URL שמכיל מידע על הדחייה, כמו קישור לכרטיס JIRA.
  • [אופציונלי] COMMENT היא ההודעה שרוצים להציג כשדוחים את ה-build.

אם תדחו את הבנייה, היא לא תתחיל אף פעם.

קבלת התראות על גרסאות build שממתינות לאישור

אתם יכולים להשתמש ב-Cloud Build notifiers כדי לקבל התראות על בנייה בהמתנה באמצעות notifier שמתוחזק על ידי Cloud Build, כמו שרת Slack או SMTP, או על ידי יצירת notifier משלכם.

כדי להגדיר התראות:

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

  2. כשמגדירים התראות באמצעות אחד מהדפים שלמעלה, צריך להגדיר את כלי ההתראה כך שיסנן את הבנייה עם סטטוס PENDING. תקבלו התראות על גרסאות build שממתינות לאישור. בקובץ ההגדרות הבא של כלי ההתראה ב-SMTP, השדה filter משתמש ב-Common Expression Language ‏ (CEL) כדי לסנן אירועי build עם סטטוס PENDING:

    apiVersion: cloud-build-notifiers/v1
    kind: SMTPNotifier
    metadata:
      name: example-smtp-notifier
    spec:
      notification:
        filter: build.status == Build.Status.PENDING
        delivery:
          server: example.gmail.com
          port: 0000
          sender: sender@example.com
          ...
    

    כדי לראות את הדוגמה המלאה, אפשר לעיין בקובץ ההגדרות של כלי ההתראה עבור כלי ההתראה של SMTP.

  3. כדי לפרוס את כלי ההתראות, מריצים את הפקודה gcloud run במסוף. בדוגמה הבאה מוסבר איך לפרוס את כלי ההתראה של SMTP באמצעות Cloud Run.

    gcloud run deploy example.gmail.com \
      --image=us-east1-docker.pkg.dev/gcb-release/cloud-build-notifiers/smtp:latest \
      --update-env-vars=CONFIG_PATH=smtp.yaml, PROJECT_ID=my-project
    

מעכשיו תקבלו התראות על גרסאות build בהמתנה בשירות שלכם.

המאמרים הבאים