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

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

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

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

  • מפעילים את Cloud Build API, אם הוא עדיין לא מופעל.

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

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

    להפעלת ה-API

  • מתקינים את Google Cloud CLI.

  • אם עדיין לא עשיתם זאת, צרו טריגר לפיתוח גרסת Build שמוגדר לדרוש אישור.

מתן הרשאות

אם למשתמש יש את התפקיד Cloud Build Editor, למשתמש יש הרשאות לעדכן טריגר כדי לדרוש או לא לדרוש אישור. מידע נוסף על הרשאות 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 בהמתנה במסוף 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) דוחה את הגישה למאגר המחובר, המדיניות תבטל את האישור. מידע נוסף זמין במאמר בנושא שערים שמבוססים על מדיניות הארגון.

gcloud

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

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

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

  • ‫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

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

  • ‫BUILD_ID הוא המזהה של הגרסה שרוצים לדחות.
  • ‫PROJECT_ID הוא מזהה הפרויקט.
  • ‫[Optional] ‏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) כדי לסנן אירועי בנייה עם סטטוס 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
    

עכשיו אמורות להתקבל התראות על בנייה בהמתנה בשירות.

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