« לעמוד הראשי

האם החיבור הבא אפשרי? GitHub + GitLab CI/CD

בתקופה האחרונה ישנה התעניינות גוברת ב- GitLab ובפרט ברכיב ה- CI/CD המתקדם  שמגיע built-in במוצר.
לאור זאת כתבנו לאחרונה כמה תכנים בנושא וקיימנו כמה מפגשים בנושא (כולם מוקלטים), וקיבלנו הרבה שאלות מעניינות.

במאמר להלן אני מתמקד באחת השאלות שנשאלנו כמה פעמים, והיא: האם אפשר לחבר בין GitHub ל- GitLab CI/CD ? ולמעשה ואריציה של השאלה היא "האם החיבור Jira + GitHub + GitLab CI/CD אפשרי? " (הואיל ולעתים משתמשי GitHub גם עובדים עם Jira) .

והתשובה לכך חיובית.

github gitlab logo

בדקנו את הנושא לעומק ובפוסט הזה נסביר כיצד זה מתאפשר.
ממה שראינו , בסיטואציות בהן השאלה נשאלת – בחברה יש כבר GitHub ולרוב גם Jenkins , והרצון הוא להחליף את Jenkins לפתרון מודרני יותר, ויחד עם זאת לא רוצים להחליף את GitHub כי הושקעה בו עבודת התאמה לארגון (ולמרות שכידוע GitLab הוא תחליף מודרני ומתקדם גם ל- GitHub – אך על כך כבר כתבנו כמה מאמרים בעבר וגם הקלטנו case study של חברה שעשתה את המעבר הנ"ל [קישור בהמשך]).

החיבור אפשרי הן בגירסת ענן ציבורי (github.com)  והן בגירסת self-hosted שבו השרת בבעלותכם (דהיינו on-premises כאשר השרת מתארח אצלכם או באירוח פרטי בענן כלשהו). למעשה החיבור אפשרי בכל צורות ההפצה של GitLab CI/CD ושל GitHub.
החיבור ביניהם מתאפשר בעזרת שני פיצ'רים שקיימים ב- GitLab :

  • GitLab CI/CD for external repositories (נוסף במרץ 2018)
  • Remote repository pull mirroring (קיים מאז 2017)

מנסיוננו, מומלץ לבצע תכנון לפני השימוש בהם (לדוג': כיצד יראו תהליכי העבודה וה- pipelines ; הדרכות למשתמשים וכו').
השימוש בפיצ'ר השני (pull mirroring) גם מצריך התאמה תכנונית נוספת ע"מ לנצל נכון את הפיצ'ר ואת ה- best practices הטמונים בו.

איך יראה תהליך העבודה יחד?

בתרשים להלן תהליך עבודה בסיסי שבנינו ואותו אנו מציגים לחברות להן אנו מסייעים בפיתוח תהליכי פיתוח ו- pipelines.
(כאמור, התהליך להלן הינו בסיסי יחסית, אך כולל את כל השלבים ב "רביעיה הקלאסית" (קישור למאמר בהמשך), וניתן לשנות בו דברים רבים בהתאם לצרכים ספציפיים בכל חברה)

github gitlab jira flow

הסבר לתרשים לעיל:

  1. The group leader creates an issue in JIRA to fix a bug or develop a feature and assigns it to a developer. The issue is in the “To Do” status.
  2. The developer starts working. He moves the issue to status “Doing”, then creates a branch and clones or pulls the repo to his workstation.
  3. After the feature is developed/the bug is fixed, the developer pushes his work to the GitHub server, which triggers a CI pipeline.
  4. If the pipeline succeeds, the developer creates a Pull Request, thus starting a code review.
  5. As a result of the code review, the developer may be requested to do a number of changes before the Pull Request is merged,  with each change triggering a CI pipeline.
  6. At last, the Pull Request is merged into the master branch, and again a CI pipeline runs to check the merge result.
  7. Some changes may be needed on the master branch, after which the software is marked as a new baseline and the JIRA issue is marked as “Done”
  8. Note that there can be many variations on this flow. E.g., there can be an additional JIRA status, “QA Testing” to which the issue moves when a Pull Request is merged.

לסיכום (ונקודות נוספות שלמדנו מהבדיקה שביצענו):

  • ניתן לחבר בין GitHub ל- GitLab CI/CD (וכך מקבלים את כל הפונקציונליות והפיצ'רים הקיימים ב- GitLab CI/CD)
  • ניתן לחבר בין Jira + GitHub + GitLab CI/CD
  • ניתן גם לחבר בין Jira + GitLab (בעבר כתבנו מאמר בנושא וגם הוצאנו וידאו המדגים זאת)
  • לחילופין ניתן להשתמש ב- GitLab לכל הפונקציונליות שמגיעה מ- Jira ו- GitHub
    (דהיינו ש- GitLab יכול לשמש ככלי אחד שמחליף את Jira + GitHub + Jenkins)
  • למעשה אפשרי לחבר באופן דומה את GitLab CI/CD מול כל שרת git (כגון Bitbucket, gitolite, gerrit וכו')
  • האם כדאי מבחינת חסכון כספי להשאר עם GitHub? לא בטוח – הדבר תלוי בכמה גורמים (אפשר להתייעץ איתנו בנושא)

 

חברת ALM-Toolbox מציעה פתרונות מקצה לקצה בתחומי ALM, Kubernetes, DevOps, ובפרט Bitbucket, GitHub, Jira, GitLab, Jenkins , בניית סביבות פיתוח ובדיקות והעברתם לקונטיינרים ולענן, מיגרציה בין כלים, הדרכות על הכלים, התאמת רישוי לצרכי הלקוח ומכירת רשיונות תוכנה מתאימים ועוד.
שאלות? נשמח לענות על כל שאלה – אפשר לפנות אלינו במייל devops@almtoolbox.com או טלפונית 072-240-5222

 

קישורים רלבנטים:

רוצים להשאר מעודכנים כאשר נוסיף לאתר מידע נוסף על GitLab CI/CD ? שלחו לנו את המייל הבא. אנו מתחייבים לא לשלוח SPAM .