איך יוצרים מאגרי מידע מ-Bitbucket Cloud

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

בדף הזה מוסבר איך להפעיל טריגרים של build במכונה של Bitbucket Cloud. מידע נוסף זמין במאמרים בנושא טריגרים של Cloud Build ומאגרי Cloud Build.

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

פועלים לפי ההוראות להתחברות למארח Bitbucket Cloud.
  • מפעילים את Cloud Build API ואת Secret Manager API, אם הם עדיין לא מופעלים.

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

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

    הפעלת ממשקי ה-API

כדי ליצור טריגר למאגר Bitbucket Cloud, צריך ליצור חיבור בין Google Cloud למאגר. כדי ליצור חיבור דרך אפליקציית Bitbucket Cloud ב- Google Cloud, אפשר לעיין במאמר חיבור למאגר Bitbucket Cloud.

יצירת טריגר Bitbucket Cloud

בקטע הזה מוסבר איך ליצור טריגר ולקשר אותו להתקנה של Bitbucket Cloud.

מסוף Google Cloud

כדי ליצור טריגרים של Bitbucket Cloud באמצעות מסוף Google Cloud :

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

    פתיחת הדף Triggers

  2. בוחרים את הפרויקט Google Cloud ולוחצים על Open.

  3. לוחצים על Create trigger (יצירת ביטוי להפעלה).

  4. מזינים את הגדרות הטריגר הבאות:

    • שם: מזינים שם לטריגר.

    • אזור: בוחרים את האזור של הטריגר.

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

    • תיאור (אופציונלי): מזינים תיאור לטריגר.

    • אירוע: בוחרים את אירוע המאגר להפעלת הטריגר.

      • Push to a branch: מגדירים את הטריגר להתחלת בנייה של קומיטים בענף מסוים.

      • Push new tag: מגדירים את הטריגר להתחלת בנייה בביצועי Commit שמכילים תג מסוים.

      • בקשת משיכה: מגדירים את הטריגר להתחלת בנייה בהתחייבויות לבקשת משיכה.

    • מקור: מגדירים את המידע על מאגר Bitbucket Cloud:

      • Repository service: בוחרים באפשרות Cloud Build repositories.

      • יצירת מאגר: בוחרים באפשרות דור שני כמקור.

      • מאגר: בוחרים מאגר מתוך רשימת המאגרים הזמינים.

      • Branch או Tag: מציינים ביטוי רגולרי עם ערך הענף או התג להתאמה. כאן אפשר לקרוא מידע על התחביר המקובל של ביטויים רגולריים.

      • שליטה בהערות: אם בחרתם באפשרות בקשת משיכה בתור אירוע, אתם יכולים לבחור באחת מהאפשרויות הבאות כדי לקבוע אם הטריגר יפעיל את הבנייה באופן אוטומטי:

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

        • חובה: כשמשתמש יוצר או מעדכן בקשת מיזוג, תהליכי הבנייה מופעלים רק אחרי שהבעלים או משתף הפעולה מגיבים /gcbrun לבקשת המיזוג. תהליכי Build מופעלים בכל פעם שמבוצע שינוי בבקשת משיכה.

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

    • Configuration (הגדרה): בוחרים את קובץ הגדרת ה-build שנמצא במאגר או מגדירים את ה-build בשורה בטריגר.

    • סוג: בוחרים את סוג ההגדרה שרוצים להשתמש בו ב-build.

      • קובץ תצורת Cloud Build (yaml או json): משתמשים בקובץ תצורת build להגדרה.
      • ‫Dockerfile: משתמשים ב-Dockerfile להגדרה.
    • מיקום: מציינים את המיקום של ההגדרה.

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

      • בתוך השורה: אם בחרתם באפשרות קובץ הגדרות של Cloud Build (yaml או json), תוכלו לציין את הגדרות ה-build בתוך השורה. לוחצים על Open Editor כדי לכתוב את קובץ ההגדרות של ה-build בGoogle Cloud מסוף באמצעות תחביר YAML או JSON. לוחצים על Done (סיום) כדי לשמור את הגדרות ה-build.

  5. לוחצים על Create (יצירה) כדי ליצור את הטריגר של Bitbucket Cloud.

‫CLI של gcloud

כדי ליצור טריגרים של Bitbucket Cloud באמצעות פקודות gcloud, מריצים את הפקודה הבאה:

    gcloud builds triggers create bitbucket-cloud \
      --name=TRIGGER_NAME \
      --repository=projects/PROJECT_ID/locations/REGION/connections/CONNECTION_NAME/repositories/REPO_NAME \
      --branch-pattern=BRANCH_PATTERN # or --tag-pattern=TAG_PATTERN \
      --build-config=BUILD_CONFIG_FILE \
      --region=REGION \
      --service-account=SERVICE-ACCOUNT

כאשר:

  • ‫TRIGGER_NAME הוא השם של הטריגר.
  • ‫PROJECT_ID הוא Google Cloud מזהה הפרויקט.
  • ‫REGION הוא האזור של הטריגר.
  • ‫CONNECTION_NAME הוא השם של החיבור ל-Bitbucket Cloud.
  • ‫REPO_NAME הוא שם המאגר
  • ‫BRANCH_PATTERN הוא שם הענף במאגר שבו רוצים להפעיל את ה-build.
  • ‫TAG_PATTERN הוא שם התג במאגר שמשמש להפעלת ה-build.
  • ‫BUILD_CONFIG_FILE הוא הנתיב לקובץ התצורה של ה-build.
  • ‫SERVICE-ACCOUNT הוא חשבון השירות שבו יש להשתמש לפעולות של הפעלה ובנייה.

API

כדי ליצור טריגר של Bitbucket Cloud באמצעות ה-API, משתמשים בתבנית ה-JSON הבאה:

{
    "filename": "cloudbuild.yaml",
    "name": "curl-trigger",
    "description": "curl trigger",
    "repository_event_config": {
      "repository": "REPO_NAME",
      "repository_type": "BITBUCKET_CLOUD",
      // Field filter must be only one of the following:
      "pullRequest": "PULL_REQUEST_FILTER",
      "push": "PUSH_FILTER"
    }
}

כאשר:

  • ‫REPO_NAME הוא שם המאגר.
  • ‫PULL_REQUEST_FILTER הוא מופע של PullRequestFilter, שמגדיר את המסנן שמאפשר ל-Cloud Build להפעיל build כשמתבצעת בקשת משיכה תואמת ב-Bitbucket Cloud.
  • ‫PUSH_FILTER הוא מופע של PushFilter, שמגדיר את המסנן שמאפשר ל-Cloud Build להפעיל build כשמתבצעת פעולת push תואמת ב-Bitbucket Cloud.

מזינים את הפקודה curl הבאה במסוף:

  curl -X POST -H "Authorization: Bearer "$(gcloud auth print-access-token) -H "Content-Type: application/json; charset=utf-8" -H "x-goog-user-project: PROJECT_NUMBER" https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/triggers -d @trigger.json

כאשר:

  • ‫PROJECT_NUMBER הוא Google Cloud מספר הפרויקט.
  • ‫PROJECT_ID הוא Google Cloud מזהה הפרויקט.

שיתוף נתונים

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

הנתונים הבאים משותפים בין Cloud Build לבין המארח שלכם ב-Bitbucket Cloud:

  • Google Cloud מזהה הפרויקט
  • שם הטריגר

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