איך ליצור צינור CI CD של Jenkins

האם ידעת שב-Jenkins יש תמיכה מובנית ל-Continuous Integration/Continuous Delivery CI/CD? מימוש מנהרת CI CD של Jenkins עם הפרויקט שלך יכול לשפר משמעותית את תהליך פיתוח התוכנה שלך.

Jenkins הוא אחד מכלי האוטומציה של DevOps הפופולריים ביותר עד היום. ואם אתה מחפש להתחיל עם מנהרת CI CD של Jenkins, הגעת למקום הנכון.

המשך לקרוא, ובמדריך זה, אתה הולך ללמוד איך להגדיר מנהרת CI CD של Jenkins עם GitHub.

דרישות מוקדמות

מדריך זה מניח שיש לך את הדרישות הבאות להמשיך לעקוב אחר הדוגמאות.

אתה כבר צריך להיות עם התקנה של Jenkins. הדוגמאות במדריך זה יהיו באמצעות Jenkins v2.319.1 על מחשב Windows 10 20H2.

  • הקונסולה האינטרנטית שלך של Jenkins חייבת להיות נגישה דרך האינטרנט.
  • A Github account to which you’ll connect with the Jenkins CI CD pipeline.
  • גיט SCM. במדריך זה אנו משתמשים בגירסה האחרונה (2.34.1) ביטים 64 של Git עבור Windows.

הכנת המאגר של GitHub

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

1. ראשית, פתח דפדפן והתחבר לחשבון ה-GitHub שלך.

2. לאחר מכן, נווט אל כתובת ה-MY של המאגר (אפליקציית MyShuttle2 ממסיב Connect 2016 של Microsoft). כאשר אתה נמצא בעמוד המאגר, לחץ על הכפתור לעקוב שבחלקו העליון-ימני של העמוד.

Forking a repo

חכה שתסיים תהליך העקיפה. בסיום, יהיה לך את המאגר הנקרא "שם משתמש/MyShuttle2" בחשבון ה-GitHub שלך לו יש גישה מלאה.

3. כעת, הוסף קובץ חדש למאגר בשם Jenkinsfile. Jenkinsfile הוא קובץ טקסט שמכיל את ההגדרה של צינור Jenkins. הקובץ צריך להיות בתוך מאגר קוד המקור.

בעמוד המאגר שלך, לחץ על הוספת קובץ -> יצירת קובץ חדש.

Adding a new file

4. הקלד את Jenkinsfile כשם הקובץ החדש. לאחר מכן, העתק את הקוד למטה והדבק אותו לתוך קובץ ה-Jenkins שלך.

  • המונח צינור הוא סט של הוראות שנכתבות בקוד למטרת מסירה רציפה.
  • A stage block contains a series of steps in a pipeline, visualizing the Jenkins pipeline process.
  • A step is a single task that executes a specific process at a defined time. A pipeline contains a series of steps.

קובץ ה-Jenkinsfile הזה הוא דוגמה בסיסית רק של סקריפט צינור. בייצור, סקריפטי צינור יהיו מורכבים יותר ויכלולו פעולות מרובות על שלבים אחדים או על כל השלבים.

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Building..'
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying....'
            }
        }
    }
}

לאחר כתיבת הקוד, הקובץ שלך יראה כמו התמונה למטה.

Jenkinsfile pipeline script

5. גלול לתחתית העמוד ולחץ על Commit new file.

Committing the new file

כעת יש לך קובץ Jenkinsfile במאגר שלך.

New Jenkinsfile on the GitHub repo

6. לבסוף, העתק את כתובת ה-URL של המאגר. כדי לעשות זאת, לחץ על Code ולחץ על הלחצן העתק. תצטרך את כתובת ה-URL התוצאה בעת יצירת צינור ה- Jenkins CI CD.

Copying the repository URL

יצירת צינור CI CD של Jenkins

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

שירותי אוטומציה כגון Jenkins עוזרים להפוך את השלבים הללו למהירים וללא שגיאות.

1. פתח דפדפן, נווט לכתובת ה-URL שלך של Jenkins והתחבר.

2. בלוח הבקרה של Jenkins, לחץ על אפשרות פריט חדש בתפריט הצד שמאל.

Creating a new item in Jenkins

3. הזן את שם צינור החדש. למדריך זה, נתתי לו את השם demoPipeline ובחרתי בתבנית ה-Pipeline. לחץ על אישור כדי לסיים.

Creating a Pipeline project

4. בדוק את תיקיית הפרויקט ב-GitHub תחת הלשונית כללי בדף התצורה. לאחר מכן, הדבק את כתובת ה-URL שהעתקת מראש לתיקיית כתובת הפרויקט.

Specifying the GitHub repository URL

5. גלול למטה אל המקטע גורמי הבנייה ובדוק את תיבת ה-GitHub hook trigger for GITScm polling, כמו שמוצג בתמונה למטה.

Specifying the build trigger

6. לאחר מכן, גלול יותר למטה למקטע צינור העבודה ובחר/ציין את הערכים הבאים:

  • הגדרה: תסריט צינור מ-SCM
  • SCM: Git
  • כתובת ה-Repository: כתובת ה-Repository שלך
Specifying the pipeline values

7. גלול לתחתית הדף ווודא שערך נתיב התסריט הוא Jenkinsfile. ערך זה מתייחס ל-Jenkinsfile שיצרת בשלב הכנה של ה-Repo שלך ב-GitHub. לבסוף, לחץ על שמירה.

Saving the pipeline configuration

הגדרת Webhook ב-GitHub

כדי ש-Jenkins יריץ משימה חדשה, עליך ליצור תפקיד ב-GitHub. תפקיד זה יודיע ל-Jenkins ברגע שיתרחש דחיפה חדשה ב-Repository.

למעקב אחר השלבים ליצירת Webhook עקוב אחר השלבים למטה.

1. נווט לדף הגדרות ולחץ על לשונית Webhooks ב-Repository שלך ב-GitHub. בדף Webhooks, לחץ על Add webhook.

Adding a webhook

2. ציין את כתובת ה-URL של Jenkins שלך והוסף את /github-webhook/ בשדה Payload URL. לדוגמה, HTTP://jenkinsURLhere/github-webhook/.

כמו כן, שנה את הערך של Content type ל-application/json.

Setting the webhook URL and content type

3. בבחירת אירועים אילו תרצה להפעיל את פסק הזמן הזה, לחץ על האפשרות אני רוצה לבחור אירועים יחידים.

Selecting individual events

4. גלול למטה וסמן את התיבות Pushes ו-Pull requests. אפשרויות אלו יבטיחו ש-GitHub ישלח payload ל-Jenkins במהלך אירועים אלו.

Enabling Pushes and Pull requests events

5. אמת את ה-webhook על ידי לחיצה על הכפתור Add webhook בתחתית העמוד. אם אימות ה-webhook התבצע בהצלחה, תראה הודעה בחלק העליון של העמוד דומה לתמונה למטה.

Webhook creation notification

ביצוע והפעלת העבודה של צינור CI CD ב-Jenkins

עכשיו שיצרת והגדרת את הצינור שלך, איך תדע שהצינור עובד? Jenkins מספקת תוסף ל-Pipeline Stage View שיעזור לך לראות את מצב הצינור.

1. כדי לפתוח את מצב הצינור, פתח את הצינור ב-Jenkins ולחץ על Status. כפי שאתה יכול לראות למטה, מצב ה-Stage View מציין No data available מכיוון שלא הייתה אירוע שיפעיל את הצינור.

Jenkins pipeline stage view

שלב 2. כדי ליצור נתוני בנייה ראשוניים, לחץ על בנה כעת והמתן עד שתשלים תהליך הבנייה. כפי שניתן לראות למטה, מצב השלב כעת מציין רשומה אחת, אומרת שאין שינויים בבנייה זו.

To generate initial build data, click Build Now

שלב 3. כעת, נבדוק את הצינור על ידי קביעת קובץ דמי למחסור במאגר הקוד. כדי לעשות זאת, חזור למאגר ה-GitHub שלך ולחץ על הוסף קובץ —> צור קובץ חדש.

הכנס את dummy כשם הקובץ החדש ווודא שתוסיף תוכן.

Creating a new file

לבסוף, לחץ על בצע קובץ חדש בתחתית העמוד.

שלב 4. חזור לדף מצב הצינור שלך ב-Jenkins, ואתה צפה לראות רשומת בנייה חדשה עם פעולה אחת, כפי שמוצג למטה.

Jenkins pipeline build status

סיכום

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

האם אתה חושב שצינור CI/CD של Jenkins הוא אסטרטגיה שתחיל ליישם בפרויקטים שלך? או שיש לך כבר אחת שאתה מאמין שהיא פתרון יותר טוב ל- CI/CD?

Source:
https://adamtheautomator.com/jenkins-ci-cd/