שיפור זמני ריצת GitLab CI/CD Pipelines – יש כעת דרך נוספת (DAG)
כדאי להכיר:
בין עשרות הפיצ'רים החדשים בגירסא 12.2 של GitLab שיצאה לפני כמה ימים – ישנו אחד שהרבה אנשים ביקשו אותו וחיכו לו, משום שהוא יכול לקצר את זמני הריצה של ה- GitLab CI/CD pipelines .
הכנו סרטון הסבר קצר על הפיצ'ר הזה – מוזמנים לצפות:
ובפרט Bitbucket, Jira, GitLab, Jenkins , בניית סביבות פיתוח ובדיקות והעברתם לקונטיינרים ולענן,
מיגרציה בין כלים (כגון מ- Jenkins ל- GitLab CI/CD), הדרכות על הכלים, התאמת רישוי לצרכי הלקוח ומכירת רשיונות תוכנה מתאימים ועוד.
שאלות? נשמח לענות על כל שאלה – אפשר לפנות אלינו במייל gitlab@almtoolbox.com או טלפונית 072-240-5222
למעוניינים – המלל של הוידאו (transcription) נמצא כאן:
אז ממש לאחרונה יצאה גירסא חדשה 12.2 של GitLab CI/CD
ובין עשרות הפיצ'רים החדשים, יש אחד מאוד מעניין וראיתי שהרבה אנשים חיכו לו
(למעשה מאות אם מסתכלים בדיונים הפנימיים של פיתוח הפיצ'ר הזה).
זה פיצ'ר חינמי שזמין בכל הגירסאות – גם בענן וגם ב- on-premises
הפיצ'ר בעצם יכול לחסוך בזמן ריצה של ה- CI/CD ובכך גם לעזור לסיים את ה- deployment וה- CD בפחות זמן.
אז מה עושה הפיצ'ר הזה בעצם ?
בשמו המלא הוא:
Directed Acyclic Graphs (DAG) for GitLab Pipelines . ובתרגום לעברית – גרף מכוון לא מעגלי. שם קצת מדעי ומזכיר את מדעי המחשב למי שזוכר…
רציתי בעצם להסביר מה ת'כלס הוא נותן.
נניח ויש לכם כמה stages (כמו שמקובל כמעט בכל הפרוייקטים שאני רואה).
וכידוע אם יש בכל stage כמה וכמה jobs, אז GitLab CI יריץ את כל ה- jobs באותו stage ורק אז יעבור ל- jobs ב- Stage הבא.
אז לא עוד!
הפיצ'ר החדש הזה מאפשר להריץ job ספציפי מ- stage מתקדם יותר, אפילו שריצת ה- stage הקודם טרם הסתיימה – מה שעד כה לא היה אפשרי ב- GitLab CI .
איך זה עובד?
ע"י מילת מפתח חדשה בשם needs , ובה מגדירים עבור job מסויים – מיהו ה- job בו הוא תלוי.
היכן זה שימושי?
יכולים להיות כל מיני שימושים . אני אראה דוגמא אחת.
נניח יש לנו repo אחד שאנחנו משתמשים בו לבניה של אותו קוד גם ל- linux וגם ל- mac , וה- בניה של ה- linux מוגדרת להיות הראשונה שתרוץ.
מבחינתנו כאשר הבניה של ה- linux הסתיימה אפשר כבר להריץ jobs של בדיקות ששייכים ללינוקס, בלי לחכות לכך שהבניה של ה- mac תסתיים.
אז בקובץ ההגדרות אנו עושים כך: < תמונה בוידאו הנ"ל >
וה- pipeline עצמו יראה כך:
ולמעשה אפשר לראות בתמונה (שלקחנו אותה תוך-כדי-ריצה עוד לפני שהסתיים mac:build) – ורואים שה- jobs של ה- linux בעמודה הימנית (Test) כבר הסתיימו (עם V ירוק) עוד לפני ש- mac:build הסתיים. . וזה בעצם ממחיש את העניין.
קישורים רלבנטים:
- אתר GitLab (עברית)
- רשימה מלאה של כל הפיצ'רים הקיימים ב- GitLab (הוזכר בוידאו)
- מה חדש ב- GitLab 12.2