
הטקסט המלא של הדקות הראשונות בהרצאה «Jenkins - חלק 1» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם, בשיעור הקרוב נעשה קריאות עם הג'נקינס. אז מהו הג'נקינס ואיך הוא עוזר לנו בפרויקט האוטומציה שלנו? במהלך הקורס הכרנו את היכולת שלנו להשפיע על Web-Element ולהפוך את היכולת הזאת של הסלניום לטסטים בעזרת ה-TestNG, לתת את הפעולות שלנו בעזרת לוק 4J, להציג את התוצאות של הריצה שלנו ב-ReportNG,
אבל כל זה עומד בעצם לבד. כשאנחנו רוצים לשלב את הטסטים שכתבנו, את הטסטים Sanity, את הטסטים של האינטגרציה, אנחנו בעצם צריכים לשלב אותם יחד עם התהליך של הפיתוח.
כדי לדבר על ג'נקינס אנחנו צריכים לדבר על כמה מושגי יסוד בעולם של הפיתוח. כשאני מדבר על פיתוח אני מדבר על תהליך בעצם של Deployment, תהליך של כתיבת קוד, קמפול והפצה.
זאת אומרת, אם יש לי סביבה שהקוד שלה מעודכן לפני יומיים והמפתחים כתבו איזשהו פיתוח ורוצים להעלות אותו, אז הם צריכים לעבור איזשהו, להעביר איזשהו deployment שיעדכן את הקוד במערכת שלנו, באתר או בסביבה הנבדקת לקוד המעודכן.
לתהליך הזה של עדכון הקוד אנחנו קוראים deployment, הפצה, והוא בדרך כלל מלווה גם בבדיקות. זאת אומרת, אנחנו נרצה לדעת שתהליך הדיפלוימנט, תהליך הוספת הקוד או שינוי הקוד שבוצע במערכת הקיימת, לא גררה שום רגרסיה ובוצע כראוי, זאת אומרת, לא נעשה שום נזק
וגם הקוד שנוסף מבצע את הפעולות שלו כמו שצריך. אז האוטומציה עומדת פה לשירות התהליך של הדיפלוימנט. בואו נדבר קצת על הג'נקינס ואיך הוא משתלב במושגים שדיברתי עליהם עכשיו.
הג'נקינס הוא Open Source, זאת אומרת הוא כלי של קוד פתוח, ניתן להוסיף אליו מלא פיתוחים והרבה תוספים, פלאגינים, והוא משמש ל-Continuous Integration.
Continuous Integration זה אומר סביבה של פיתוח דינמי. אם הכרנו את סביבת הפיתוח הקודמת או השמרנית יותר של ה-Waterfall, אז Continuous Integration הוא מושג שלקוח מעולם של אג'ייל, עולם של פיתוח מואץ, פיתוח אקסטרימי.
זאת אומרת, אנחנו נרצה לעדכן את הקוד שלנו בצורה יומית או בצורה שוטפת, כך שאנחנו נצטרך מערכת שתומכת ומאפשרת לנו בעצם להפיץ את הקוד החדש בצורה מהירה ויעילה.
אז ג'נקינס הוא בעצם מאפשר לבצע את התהליך של הבנייה או בעזרת המייבר או בעזרת כלי אחר שדואג לקמפל ולבנות, ולעשות deployment לקוד החדש. יחד עם היכולת הזאת של ג'נקינס להשתלב בתהליך ה-deployment, אנחנו יכולים לשלב בתוכו גם ג'ובים או יחידות הרצה שמבוססות על batch או על shell בסביבת
לינוקס, וכך אנחנו יכולים לשלב את היכולת שלנו להריץ את הטסטים מיד אחרי ה-deployment. שוב, התהליך הוא כזה, הצוות R&D מבצע הפרצה, ואילו אנחנו נרצה לוודא שההפצה, שתהליך הדיפלוימנט בוצע כראוי בעזרת הטסטים האוטומטיים.
אז ג'נקינס הוא בעצם הצומת שבו המערכת האוטומטית שלנו, אותם טסטים מבוססי סלניום טסט אנג'י, פוגשים את תהליך הפיתוח, תהליך הדיפלוימנט של הפיתוחים החדשים לתוך הסביבה הקיימת.
כך שאנחנו נרצה לוודא שהמערכת שעודכנה כל הטסטים שמבוססים על Sanity, על אינטגרציה, עברו בהצלחה ונבדקו בעזרת האוטומציה. ג'נקינס מאפשר לנו לעקוב אחרי התהליך הבנייה, תהליך ה-Deployments באופן כרונולוגי, זאת אומרת הוא מאפשר לנו לראות מה קרה מבחינת ה-Deployments, איזה קוד עודכן, איזה גרסאות הסביבה בעצם עברה וגם
הוא נותן לנו את היכולת לדעת אם ה-build עבר או נכשל, אם ה-deployment עבר או נכשל גם על בסיס של הערצה של טסטים. זאת אומרת, ב-Continuous Integration תקין יהיה לנו איזשהו תהליך של טסטים, תהליך של בדיקה מיד אחרי התהליך של ה-deployment
ג'נקינס מאפשר לנו לעשות את זה כתהליך אינטגרטיבי או תהליך אחד. אז למה אוטומציה בעצם צריכה ורוצה להשתמש בג'נקינס?
אז קל להתקין אותו, הוא מוצר ג'אוואי, מבוסס ג'אווה, קל לקנפג אותו, אנחנו תכף נראה את זה או בשיעורים הקרובים אנחנו נראה כמה קל לבצע בו פעולות ולשתול את אותו סקריפט שאנחנו רוצים על מנת להריץ את המייבן שלנו ואת הטסטים שלנו מתוכו.
הוא חינמי, זה חשוב, זה מוצר זול וקל להכניס