Github Actions – הכירות ומושגי בסיס

github actions

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

שימוש ב Github Actions מאפשר לנו כמפתחים יכולות לשילוב מתמשך (CI) וכן פריסה רציפה (CD) ותכונות רבות אחרות ישירות מתוך המאגר (Repo) שלך.

במאמר זה, אעבור על מושגי הליבה של Github Actions ואף אדגים שימוש ב Action בסיסי.

למה אכפת מ-Github Actions?

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

מובנה ב Github

Github Actions משולבת במלואה ב-Github ולכן אינה דורשת אתר חיצוני. זה אומר שניתן לנהל אותו באותו מקום כמו כל שאר התכונות הקשורות למאגר שלך כמו בקשות משיכה ובעיות.

תבניות CI מרובות

Github מספקת תבניות מרובות עבור כל מיני תצורות CI (Integration Continous Integration) אשר מקלות מאוד על תחילת העבודה. אתה יכול גם ליצור תבניות משלך שאותן תוכל לפרסם כפעולה ב-Github Marketplace.

תוכנית חינמית נהדרת

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

מושגי ליבה

להלן רשימה של מושגי הליבה המשמשים ב-Github Actions שכדאי להכיר בעת השימוש בו או בקריאת התיעוד.

פעולות(Actions)

פעולות הן אבן הבניין הקטנה ביותר של זרימת עבודה וניתן לשלב אותן כשלבים ליצירת עבודה. אתה יכול ליצור פעולות משלך או להשתמש בפעולות ששותפו לציבור מה-Marketplace.

אירוע (Event)

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

רץ (Runner)

Runner הוא מכונה שמותקנת בה אפליקציית Github Actions runner. ואז ה runner ממתין לעבודות זמינות שהוא יכול לבצע. לאחר איסוף עבודה הם מריצים את פעולות העבודה ומדווחים על ההתקדמות והתוצאות בחזרה ל-Github. ניתן לארח runners ב- Github או להתקין על שרתים שלנו.

עבודה(Job)

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

שלב (Step)

שלב הוא קבוצה של משימות המבוצעות על ידי עבודה (Job). שלבים יכולים להפעיל פקודות או פעולות.

זרימת עבודה (Workflow)

זרימת עבודה היא תהליך אוטומטי המורכב מעבודה אחת או ממספר עבודות וניתן להפעיל אותו על ידי אירוע. זרימות עבודה מוגדרות באמצעות קובץ YAML בספריית .github/workflows.

דוגמא: שימוש ב Action ליצירת Release

אחד השימושים הנפוצים ב Github Actions הוא יצירת Release לאחר ביצוע Pull Request. בחלק זה של המדריך אדגים כיצד ניתן לשלב את ה Action הזה בריפו שלכם בצורה פשוטה וקלה.

בשלב הראשון, ניגש לריפו וניכנס ללשונית Actions. אתרו את כפתור ה New workflow ולחצו עליו:

Github actions

כעת תוכלו לבחור Actions מתוך רשימת הצעות שמותאמות ל Repo שלכם. במקרה הזה נבחר ביצירת חדש בעצמנו:

Choose Workflow

במסך הבא נקבל קוד לדוגמא עם אפשרות לשנות את שם הקובץ וכן את הקוד שלו:

New Action

שנו את שם הקובץ מ main.yml ל release.yml והדביקו פנימה את הקוד הבא:

זרימת עבודה זו תתחיל ברגע שהשינויים ישולבו אל תוך ה Master Branch ולאחר הפעלת השלבים לבנייה ובדיקה של הפרויקט שלך:

  • יווצר/יוחלף תג Git בשם latest.
  • יווצר יומן שינויים הכולל את כל ה Commits בין התג הקודם לזה.
  • יווצר Release חדש עם הכותרת שצויינה.
  • יסמן את השחרור הזה כ Release אלא אם הגדרת את ה pre-release כ true.

כעת, כל שנשאר הוא לבצע commit ו push אל ה Master Branch ולראות את ה Action נכנס לפעולה.
במידה והכל תקין, תוכלו לראות שהריצה הסתיימה בהצלחה וכי נוצר Release חדש:

שימוש מועיל!

2 Comments

Leave a Reply

כתובת האימייל שלך לא תפורסם


*