ג׳נקינס – החלופה הבוגרת ל-TravisCI – מבוא

מבוא ל-Jenkins, החלופה הבוגרת ל-TravisCI. וכן, כדאי למתכנתים להכיר אותה.
Jenkins logo

כתבתי לא מעט פעמים פה על TravisCI. כלי שמסייע לי לבנות ׳בילד׳. אנחנו מזהים בילד בדרך כלל כמשהו שקשור לכל מיני שפות תכנות שצריכות קימפול על מנת לעבוד. אבל בילד הוא רלוונטי גם לשפות סקריפט כמו PHP או ג׳אווהסקריפט (ונילה). למה? כי בתהליך הבילד אני מכניס המון תהליכים אוטומטיים שעוברים על הקוד ומבצעים בו פעולות שונות. למשל בדיקת קוד סטטית שמוודאת תקינות של קוד, או בדיקות אוטומטיות, או בדיקת מורכבות של קוד. מלא תהליכים שרק אם הם עוברים אני מאשר את הקוד החדש ואפשר למזג אותו עם הקוד הקיים.
עם השנים נוספו עוד פעולות שניתן לעשות בתהליכי בילד. כמו למשל טרנספילציה של קבצי SASS\LESS לקבצי CSS. הוספה של prefixes לתכונות CSS. מיניפקציה, אגרגרציה ועוד. כש-babel ו-typescript נכנסו לסיפור הזה, גם קבצי הג׳אווהסקריפט עוברים טרנספילציות שונות.

ה-כלי בה״א הידיעה למפתחים בודדים וצוותים קטנים הוא TravisCI שמסייע ליישם תהליך של בילד בכל פעם שאני דוחף קוד לתוך branch בגיט.

אבל TravisCI יכול להיות בעייתי במיוחד כשאנחנו עולים בסקיילינג ובמורכבות של התוכנה שבה היא צריכה לתמוך. הכוח של TravisCI היא בכך שהיא פשוטה. זו גם הבעיה שלה. בדיוק בשביל זה יש לנו את Jenkins. כלי הרבה יותר מתקדם, עם הרבה יותר פונקציונליות ויותר חשוב: ניתן לכתוב לו הרחבות ותוספים בדיוק כמו וורדפרס לצורך העניין. המורכבות שלו תהפוך את Jenkins ללא רלוונטית למפתח הבודד, וזו גם הסיבה שאני לא מתייחס הרבה ל-Jenkins כאן אבל זה הכל שבו אני משתמש בעבודה שלי כאשר אני מייצר בילד כיוון שיש בו פונקציונליות שאין ב-TravisCI. מן הסתם, בגלל שאנחנו עובדים עם המון מתכנתים, יש לנו אנשי devops שמתפעלים אותו. אני לא מכיר הרבה מתכנתים שיצא להם להתקין ג׳נקינס. אבל הכרות עם הכלי הזה היא קריטית לכל מתכנת שחושב, רוצה לעבוד או כבר עובד בחברה גדולה.

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

ג׳נקינס - ממשק ניהול
ג׳נקינס – ממשק ניהול

אז איך מתחילים לעבוד איתו? צריך להתקין אותו. לא מדובר בשירות כמו TravisCI אלא בתוכנה שרצה על שרת שאתה אמור להפעיל. Jenkins מותקן על שרת נפרד on premise או בענן עצמו. אצלנו מתקינים אותו על אמאזון. אבל אפשר סתם לקחת שרת ולהתקין אותו עליו. אפשר להתקין את Jenkins על כל סביבה. גם על חלונות. גם עם דוקר. כמובן שעל סביבת פרודקשן חייבים להגן על השרת שנושא את Jenkins – עדיף עם firewall רציני.

Jenkins logo
Jenkins logo

במאמר הבא אני עומד להסביר על התקנה של Jenkins על דוקר ונראה קצת מה אפשר לעשות איתו.

ביום חמישי הקרוב, ה-18 לינואר בשעה 18:00, מתקיים מיטאפ ב-Oath על Jenkins עם אדריאן וויס, ארכיטקט ב-cloud bees – החברה מאחורי Jenkins שמסביר על Jenkins enterprise – השירות המנוהל שלהם. נראה לי שכדאי להגיע אם זה מעניין אתכם מספיק>.

פוסטים נוספים שכדאי לקרוא

גלילה לראש העמוד