יצירה אוטומטית באמצעות Cloud Build

בדף הזה מוסבר איך להשתמש ב-Cloud Build כדי ליצור אוטומטית.

‫Cloud Build משתמש בטריגרים של גרסאות build כדי להפעיל אוטומציות של CI/CD. אתם יכולים להגדיר טריגרים שיאזינו לאירועים נכנסים, למשל כששולחים קומיט חדש למאגר או כשיוזמים בקשת משיכה, ואז להפעיל אוטומטית בנייה כשמתקבלים אירועים חדשים.

תצרו טריגר ותגדירו אותו כך שיפעיל build בכל פעם שתדחפו שינוי למאגר ב-GitHub.


בלחיצה על תראו לי איך תקבלו הסבר מפורט על המשימה ישירות ב-Cloud Shell Editor:

תראו לי איך


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

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. התקינו את ה-CLI של Google Cloud.

  7. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  8. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  9. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  10. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

  11. Verify that billing is enabled for your Google Cloud project.

  12. Enable the Cloud Build API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  13. התקינו את ה-CLI של Google Cloud.

  14. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  15. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  16. אם עדיין אין לכם חשבון, אתם צריכים ליצור חשבון ב-GitHub.

  17. אם הגדרתם אימות דו-שלבי ב-GitHub, אתם צריכים ליצור טוקן גישה אישי כדי להשתמש בו במקום סיסמה של GitHub בשורת הפקודה.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות בשביל להגדיר אוטומציה של בנייה באמצעות Cloud Build, אתם צריכים לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בחשבון השירות של Cloud Build:

להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

שכפול מאגר לדוגמה ב-GitHub

כדי לבנות, תצטרכו קוד מקור לדוגמה. בקטע הזה תשכפלו מאגר מקור קיים שמכיל דוגמה של Hello World ב-Go לחשבון המשתמש שלכם ב-GitHub.
  1. אם עדיין אין לכם חשבון, אתם צריכים ליצור חשבון ב-GitHub.

  2. אם הגדרתם אימות דו-שלבי ב-GitHub, אתם צריכים ליצור טוקן גישה אישי כדי להשתמש בו במקום סיסמה של GitHub בשורת הפקודה.

  3. יוצרים Fork של מאגר cloud-build-samples לחשבון GitHub שלכם:

    1. עוברים אל מאגר הדוגמאות cloud-build-samples ב-Cloud Build.

    2. לוחצים על סמל Fork בפינה השמאלית העליונה של הדף.

    3. לוחצים על חשבון המשתמש ב-GitHub שאליו רוצים ליצור Fork של המאגר.

      תופנו אוטומטית לדף עם הגרסה המפוצלת של מאגר cloud-build-samples.

  4. פותחים טרמינל בסביבה המקומית.

  5. משכפלים את המאגר שחובר על ידי הרצת הפקודה הבאה, כאשר GITHUB_USERNAME הוא שם המשתמש בחשבון GitHub:

    git clone https://github.com/GITHUB_USERNAME/cloud-build-samples.git

חיבור Cloud Build למאגר

כדי ליצור קוד מקור ב-GitHub באמצעות טריגרים, קודם צריך לחבר את Cloud Build למאגר שלכם ב-GitHub. בקטע הזה נסביר איך לקשר את מאגר cloud-build-samples ל-Cloud Build.
  1. בתפריט הניווט של מסוף Google Cloud , לוחצים על Cloud Build > Triggers.

    פתיחת הדף Triggers

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

  3. לוחצים על Connect repository (קישור מאגר).

  4. בקטע Select source (בחירת מקור), בוחרים באפשרות GitHub (Cloud Build GitHub App) (GitHub (אפליקציית Cloud Build GitHub)).

  5. לוחצים על המשך.

  6. מאמתים את החשבון ב-GitHub.

  7. בקטע Select repository, בוחרים את שם המשתמש של החשבון ב-GitHub. אם שם המשתמש שלכם לא מופיע ברשימה:

    1. ברשימה GitHub account (חשבון GitHub), לוחצים על +Add (הוספה).

      יופיע חלון קופץ להתקנת אפליקציית Cloud Build GitHub.

    2. לוחצים על שם המשתמש ב-GitHub.

    3. לוחצים על Only certain repositories כדי להתקין את אפליקציית Cloud Build GitHub במאגרים מסוימים.

    4. בתפריט הנפתח, בוחרים באפשרות GITHUB_USERNAME/cloud-build-samples, כאשר GITHUB_USERNAME הוא שם המשתמש בחשבון GitHub.

    5. לוחצים על התקנה.

      יכול להיות שתתבקשו להזין את הסיסמה שמשויכת לחשבון GitHub לפני שתמשיכו.

    6. אחרי שתתקינו את אפליקציית Cloud Build GitHub, תוכלו לראות את שם המשתמש שלכם בתפריט הנפתח בשדה GitHub account. בוחרים את שם המשתמש.

  8. בקטע Repository, בוחרים באפשרות GITHUB_USERNAME/cloud-build-samples בתור המאגר.

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

  10. לוחצים על התחברות.

  11. לוחצים על סיום.

בקטע הבא תיצור טריגר.

יצירת טריגר

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

    פתיחת הדף Triggers

  2. בוחרים את הפרויקט מהתפריט הנפתח של בורר הפרויקטים בחלק העליון של הדף.

  3. לוחצים על פתיחה.

  4. בדף Triggers, לוחצים על Create trigger.

  5. בדף Create trigger, מזינים את ההגדרות הבאות:

    • שם: מזינים hello-world-trigger כשם של הטריגר.

    • Event: בוחרים באפשרות Push to a branch בתור אירוע המאגר להפעלת הטריגר.

    • מקור: בוחרים במאגר cloud-build-samples כמקור, שמכיל את קוד המקור ואת קובץ הגדרות ה-build.

    • תצורת build: בוחרים באפשרות Cloud Build configuration file כקובץ התצורה של ה-build.

    • Cloud Build configuration file location: מציינים את הנתיב לקובץ תצורת ה-build של Cloud Build בתור quickstart-automate/cloudbuild.yaml.

  6. לוחצים על יצירה כדי לשמור את טריגר לפיתוח גרסת Build.

ביצוע שינוי

בקטע הזה, תבצעו קומיט של שינוי במאגר cloud-build-samples המשוכפל בחשבון GitHub שלכם.

  1. בטרמינל, עוברים לספרייה quickstart-automate:

    cd cloud-build-samples/quickstart-automate
  2. פותחים את הקובץ main.go ומעדכנים את השורה שמכילה את הטקסט Hello, world!‎. ל-"Hello, universe!‎"

      package main
    
      import (
          "fmt"
      )
    
      func main() {
          fmt.Println("Hello, universe!")
      }
      
  3. בודקים את cloudbuild.yaml, שהוא קובץ הגדרות ה-build שבו משתמש Cloud Build. כשמפעילים build באמצעות טריגר, שלב ה-build בקובץ הזה מורה ל-Cloud Build להשתמש בקובץ האימג' golang מ-Docker Hub כדי ליצור ולהפעיל את הקובץ main.go.

       steps:
       - name: golang
         script: go run quickstart-automate/main.go
       
  4. מנווטים חזרה לספריית הבסיס (root) של המאגר:

       cd ..
  5. מבצעים Commit של השינויים ב-GitHub על ידי הרצת הפקודות הבאות:

        
        git add quickstart-automate/main.go
        git commit -m "update text"
        git push

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

העברתם שינוי למאגר. הפעולה push תגרום לטריגר ליצור גרסת build באופן אוטומטי.

הצגת פרטי גרסת ה-Build

בקטע הזה מוצגים פרטי הגרסה שמשויכים לגרסה שהופעלה אחרי ביצוע שינוי.
  1. בתפריט הניווט של מסוף Google Cloud , לוחצים על Cloud Build > History.

    כניסה לדף Cloud Build

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

    יוצג הדף היסטוריית בנייה:

    צילום מסך של הדף 'היסטוריית בנייה' ב-Automate

  3. בעמודה Build (גרסת Build), לוחצים על השם של גרסת Build.

  4. בדף Build details (פרטי הבנייה), לוחצים על Build Artifacts (פריטי מידע של הבנייה).

    הפלט אמור להיראות כך:

    צילום מסך של פריטי מידע שנוצרו בתהליך פיתוח (Artifact)

  5. כדי לראות את יומן הבנייה, לוחצים על סמל ההורדה וצופים בקובץ שהורד.

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

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

  1. בתפריט הניווט של מסוף Google Cloud , לוחצים על Cloud Build > Triggers.

    פתיחת הדף Triggers

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

  3. בשורה hello-world-trigger, לוחצים על תפריט הפעולות (סמל האליפסות האנכיות) שנמצא בקצה השמאלי של השורה.

  4. בוחרים את האפשרות Delete.

מחקתם את הטריגר שמשויך למאגר המשוכפל.

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