בדף הזה מוסבר איך לפרוס אפליקציות ל-Firebase באמצעות Cloud Build. אם אתם חדשים ב-Cloud Build, כדאי קודם לקרוא את המדריכים למתחילים ואת הסקירה הכללית על הגדרת Build.
לפני שמתחילים
מפעילים את Cloud Build, Firebase ו-Resource Manager APIs, אם אחד מהם לא מופעל.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, נדרשת ההרשאה
serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים
כדי להריץ את הפקודות
gcloudשבדף הזה, צריך להתקין את Google Cloud CLI.חשוב לשמור בהישג יד את קוד המקור של האפליקציה, כולל
firebase.json. קוד המקור צריך להיות מאוחסן במאגר, כמו Cloud Source Repositories, GitHub או Bitbucket.אם עדיין אין לכם פרויקט לפריסה ב-Firebase, אתם יכולים ליצור פרויקט ברירת מחדל על ידי התקנה ואתחול של Firebase.
הרשאות IAM נדרשות
-
במסוף Google Cloud , נכנסים לדף settings Cloud Build Permissions:
בוחרים את חשבון השירות של הגרסה.
מגדירים את הסטטוס של התפקידים הבאים למופעל:
- חשבון שירות של Cloud Build | מאפשר לחשבון השירות מדור קודם של Cloud Build לעדכן גרסאות build, לכתוב יומני build ולאחסן ארטיפקטים של build.
- Firebase Admin | מאפשר ל-Cloud Build לגשת ל-Firebase.
- API Keys Viewer | מאפשר ל-Cloud Build לגשת להגדרות הנוכחיות של Firebase Hosting במהלך פריסת ה-build.
שימוש בקובץ אימג' של Docker firebase
Cloud Build מספק קובץ אימג' של builder שאפשר להשתמש בו כדי להפעיל פקודות firebase ב-Cloud Build. כדי להשתמש בבונה הזה בקובץ הגדרות של Cloud Build, אפשר להשתמש בשלב ה-build firebase כדי לפרוס ל-Firebase:
יוצרים קובץ הגדרות build בשם
cloudbuild.yamlאוcloudbuild.json, כאשר PROJECT_ID הוא מזהה הפרויקט ב-Google Cloud ו-FIREBASE_PROJECT_ID הוא מזהה הפרויקט ב-Firebase:YAML
steps: - name: "us-docker.pkg.dev/firebase-cli/us/firebase" args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting'] ## Or, target a specific version of firebase-tools - name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.z args: ['deploy', '--project=FIREBASE_PROJECT_ID', '--only=hosting']JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "FIREBASE_PROJECT_ID", "--only", "hosting" ] } ] }אפשר לבחור גרסה ספציפית של
firebase-toolsבאמצעות
name: "us-docker.pkg.dev/firebase-cli/us/firebase":x.y.zמפעילים את ה-build באמצעות קובץ התצורה של ה-build:
gcloud builds submit --region=REGION --config CONFIG_FILE_PATH SOURCE_DIRECTORYכאשר:
- REGION הוא אחד מאזורי הבנייה הנתמכים.
- CONFIG_FILE_PATH הוא הנתיב לקובץ התצורה של ה-build.
- SOURCE_DIRECTORY הוא הנתיב או כתובת ה-URL של קוד המקור.
פריסה רציפה
כדי לבצע פריסה אוטומטית של התוכנה ב-Firebase, אפשר ליצור טריגרים של Cloud Build. אתם יכולים להגדיר טריגרים כדי לבצע build ולפרוס תמונות בכל פעם שאתם מעדכנים את קוד המקור.
כדי להפוך את הפריסה ל-Firebase לאוטומטית:
מאחסנים במאגר קובץ הגדרות build עם שלבים להפעלת הפקודה
firebase deploy, כאשר PROJECT_ID הוא מזהה הפרויקט Google Cloud :YAML
steps: - name: us-docker.pkg.dev/firebase-cli/us/firebase args: ['deploy', '--project=PROJECT_ID', '--only=hosting']JSON
{ "steps": [ { "name": "us-docker.pkg.dev/firebase-cli/us/firebase", "args": [ "deploy", "--project", "PROJECT_ID", "--only", "hosting" ] } ] }יוצרים טריגר באמצעות קובץ תצורת ה-build שנוצר בשלב הקודם:
פותחים את הדף Triggers במסוף Google Cloud :
בוחרים את הפרויקט מהתפריט הנפתח של בורר הפרויקטים בחלק העליון של הדף.
לוחצים על פתיחה.
לוחצים על Create trigger (יצירת ביטוי להפעלה).
בדף Create trigger, מזינים את ההגדרות הבאות:
מזינים שם לטריגר.
בוחרים את אירוע המאגר כדי להפעיל את הטריגר.
בוחרים את המאגר שמכיל את קובץ קוד המקור ואת קובץ ההגדרות של ה-build.
מציינים את הביטוי הרגולרי לשם הענף או התג שיפעיל את הטריגר.
Configuration: בוחרים את קובץ התצורה של ה-build שיצרתם קודם.
לוחצים על יצירה כדי לשמור את טריגר לפיתוח גרסת Build.
בכל פעם שתדחפו קוד חדש למאגר, תתחילו באופן אוטומטי פיתוח גרסת build ופריסה ב-Firebase.
מידע נוסף על יצירת טריגרים של Cloud Build זמין במאמר בנושא יצירה וניהול של טריגרים של Build.
קוד לדוגמה
כדי לראות קוד לדוגמה לפריסה ב-Firebase באמצעות Cloud Build, עוברים אל deploy-firebase-example.
המאמרים הבאים
- איך מבצעים פריסות כחולות/ירוקות ב-Compute Engine
- איך פורסים ב-Cloud Run
- איך פורסים ב-GKE
- איך פורסים ב-Cloud Run functions
- איך פורסים ב-App Engine
- איך פותרים בעיות שקשורות לבנייה