תצורת עבודה ממוקדת עם תוסף DSL של Jenkins

הארגונים ממשיכים ומאמצים לאדוט את Jenkins כדי לאוטומטזיה את תהליכי הבניה והבדיקה שלהם, מה שהופך את ניהול העבודות של Jenkins באופן ידני לקשה. החדשות הטובות הן שתוסף DSL של Jenkins מאפשר לך להגדיר עבודות של Jenkins בתחביר שפת תחום (DSL).

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

קרא הלאה, כך שלא תצטרך ללחוץ באופן מיידי דרך ממשק המשתמש של Jenkins כדי ליצור עבודה באופן מעייף!

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

מדריך זה יהיה הדגמה מעשית. אם ברצונך לעקוב, וודא שיש לך את הפריטים הבאים.

  • A Linux machine – This guide uses Ubuntu 20.04.
  • גit לשלב את Jenkins עם ספריות Git.
  • צינור: עבודה כדי להוסיף את אוסף התוספים של צינור השילוח הרציף שמשמש ליישומים ושילוח מתמיד ב-Jenkins.

התקנת תוסף Jenkins DSL

שמירה על עקביות בין עבודות יכולה להיות מאתגרת, אך תוסף Jenkins DSL פותר את הבעיה הזו. איך? על ידי התירה לך להגדיר עבודות בצורה תכנותית, בקובץ שניתן לקריאה על ידי אדם.

אבל לפני שתיצור עבודות, עליך להתקין את תוסף Jenkins DSL תחילה:

1. התחבר ב-SSH לשרת ה-Jenkins שלך והרץ את הפקודה הבאה כדי לוודא שיש לך את הגרסה הנדרשת של Java מותקנת ושהשירות של Jenkins פועל.

java -version && systemctl status jenkins

אתה מוכן להתקין את תוסף Jenkins DSL אם אתה רואה פלט דומה למטה.

Checking Java version and Jenkins status

2. לאחר מכן, פתח את הדפדפן האינטרנט המועדף עליך ונווט אל http://your_server_ip:8080/pluginManager/available. החלף את your_server_ip:8080 בכתובת ה-IP האמיתית של שרת ה-Jenkins שלך ובמספר הפורט.

3. לבסוף, התקן את התוסף Jenkins DSL באמצעות השלבים הבאים:

  • כפי שמוצג למטה, הקלד Job DSL בתיבת החיפוש בפינה הימנית העליונה.

אם כבר מותקן לך תוסף Job DSL וביצעת שדרוג מגרסה ישנה יותר, הסקריפטים של Job DSL לא יופיעו ברשימה בעת חיפוש ל-Job DSL. ניתן לנווט אל http://your_server_ip:8080/pluginManager/installed כדי לבדוק האם התוסף Job DSL קיים שם.

  • סמן את תיבת הסימון ליד האפשרות Job DSL.
  • לחץ על Install without restart בתחתית הדף כדי להתקין את תוסף Jenkins Job DSL.
Installing the Jenkins DSL plugin

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

Viewing Jenkins DLS Plugin Installation Progress

יצירת עבודת זרע Jenkins באמצעות תוסף Jenkins DSL

עכשיו שהתקנת את תוסף Jenkins DSL, תרגיש חופשי ליצור עבודת זרע Jenkins. כתוב סקריפט יסודי של Job DSL ושבץ את הסקריפט בעבודת זרע Jenkins. תיצור עבודה חופשית שמדפיסה הודעת 'Hello World!' לקונסולת ה-Jenkins.

כדי לשבץ סקריפט Job DSL לתוך משימת השקת Jenkins:

1. נווט ללוח בקרת Jenkins שלך ולחץ על פריט חדש בסרגל הצד השמאלי. הדפדפן שלך מופנה אותך לדף בו תוכל ליצור פריט חדש (שלב שני).

Adding a New Item

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

  • הזן שם פריט, כמו שמוצג למטה. אך שם הפריט מוגדר להיות seed במדריך זה.
  • בחר ב פרוייקט חופשי (משימת בנייה חוזרת, סקריפט או צינור) מהאפשרויות למטה.
  • לחץ על אישור למטה כדי ליצור את הפריט החדש, והדפדפן שלך מופנה לדף התצורה של הפריט החדש.
Creating seed job

3. שמור על הגדרות ברירת המחדל לכל קטע אחר בדף ההגדרות החדש של הפריט.

גלול למטה לקטע הבנייה, לחץ על כפתור הרשימה הנפתחת "הוסף שלב בנייה" ובחר ב״Process Job DSLs״. כך תפתח אפשרות בה תזין סקריפט DSL (שלב רביעי).

Selecting process job DSLs

4. כעת, בחר באפשרות "השתמש בסקריפט DSL שסופק", כפי שמוצג למטה, ומלא את בלוק הקוד הבא בשדה.

בלוק קוד זה הוא הגדרת משימת פרוייקט חופשי בשם jenkins-job-demo-1 שמשתמשת בשלב shell להדפסת הודעת "שלום עולם". שם המשימה הוא מה שיפיקר בממשק ה-UI של Jenkins.

// Sets the API method you want to use (job)
job('jenkins-job-demo-1') { // Sets the name of the job to jenkins-job-demo-1
	// Define what the job does
  steps {
		// Prints a message
    shell('echo Hello World! This job is working!!')
  }
}

ישנם דרכים רבות זמינות ליצירת סוגים שונים של עבודות Jenkins, שאתה יכול למצוא במסמך הרשמי התיעוד.

Providing the DSL Script

5. לחץ על שמירה בחלק התחתון של העמוד כדי לשמור את התצורה עבור הפריט (הזרע).

Saving Configuration

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

Verifying the seed Job

הפעלת עבודה זרעית

יצרת ווידאת בהצלחה את העבודה הזרעית. אבל איך תדע שהעבודה עובדת? תפעיל את העבודה הזרעית נגד סקריפט DSL שסיפקת בשלב הרביעי של קטע "יצירת עבודה זרעית של Jenkins באמצעות תוסף DSL של Jenkins".

1. בלוח המחוונים שלך של Jenkins, לחץ על העבודה הזרעית כדי לנווט לדף התצורה שלה.

Navigating into the seed Job Page

2. לאחר מכן, לחץ על בניית עכשיו בסרגל הצד שמאל כדי להפעיל את העבודה.

Running the Seed Job

3. לחץ על F5 כדי לרענן את העמוד. תראה כי יופיע בנייה חדשה מתחת לחלק ההיסטוריה עם סטטוס הצלחה (סימן ירוק) בקצה השמאלי התחתון, כפי שמוצג למטה.

הפלט הזה מציין שהעבודה הזרעית פועלה בהצלחה, יצרה עבודה חדשה של Jenkins (jenkins-job-demo-1) תחת המקטע שנוצר.

Viewing the See Job Works and Generated a New Job

4. כעת, נווט ללוח המחוונים שלך של Jenkins. כפי שמוצג למטה, תראה את העבודה החדשה של Jenkins (jenkins-job-demo-1) שנוצרה על ידי העבודה הזרעית.

לחץ על העבודה החדשה שנוצרה לגישה לדף התצורה שלה.

Verifying See Job’s Generated Job

5. לחץ על בנייה עכשיו כדי להפעיל את העבודה שנוצרה (jenkins-job-demo-1).

Running the Generated Job (jenkins-job-demo-1)

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

Accessing Console Output of the Generated Job (jenkins-job-demo-1)

במידה והמשימה עובדת תפורסם ההודעה שאומרת "שלום עולם! המשימה עובדת!!", כפי שמוצג למטה, שהיא ההודעה שהוגדרה בתסריט Job DSL.

עד כאן, יצרת והרצת בהצלחה משימת Jenkins באמצעות תוסף Job DSL!

Viewing Console Output

יצירת משימה עבור צינור CI/CD באמצעות תוסף Jenkins DSL

עד כה, למדת כיצד ליצור ולהפעיל משימת Jenkins בסגנון חופשי באמצעות התוסף Job DSL. תפעל את החלק שלא אנושי בתהליך פיתוח התוכנה על ידי יצירת משימת Jenkins עבור צינור CI/CD.

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

כדי ליצור משימת Jenkins עבור צינור CI/CD:

1. נווט אל http://your_server_ip:8080/job/seed/configure בדפדפן האינטרנט שלך כדי להגדיר את המשימה שלך. החלף את your_server_ip בכתובת ה-IP של שרת Jenkins שלך, והחלף את seed בשם המשימה שלך.

2. לאחר מכן, גלול למטה אל חלק הבנייה, מצא את שדה תסריטי ה-DSL והחלף את התוכן הקיים בקוד הבא.

job('jenkins-job-demo-2') {
    steps {
        shell('echo Hello World!')
    }
}

pipelineJob('github-demo') {
    definition {
        cpsScm {
            scm {
                git {
                    remote {
                        github('jenkinsci/pipeline-examples')
                    }
                }
            }
            scriptPath('declarative-examples/simple-examples/environmentInStage.groovy')
        }
    }
}

לחץ על שמירה לאחר שהוספת את הקוד כדי לשמור את השינויים.

Providing DSL Script for a Pipeline

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

לחץ על בנייה חדשה (#2) כדי לגשת לדף התצורה של הבנייה החדשה.

Rerunning the seed Job

שלב 4: עכשיו, נווט לפלט הקונסולה של הבנייה החדשה. תראה הודעת "הפריטים נוספים" ושם המשימה החדשה, כפי שמוצג למטה.

הפלט הזה מציין שהמשימה בצינור העבריה החדש נוספה בהצלחה.

Verifying the New Pipeline Job was Added Successfully

שלב 5: חזור ללוח המחוונים של Jenkins, ותראה שהמשימה בצינור העבריה החדשה (jenkins-job-demo-2) נוספה לרשימת המשימות. לחץ על הצינור החדש הזה כדי לגשת לדף התצורה של המשימה.

Verifying the New Jenkins Job Exists

שלב 6: לבסוף, לחץ על "בנייה כעת" כדי להפעיל את משימת הצינור החדש. תראה שהמשימה הופעלה בהצלחה, כפי שמוצג בחלק ההיסטוריה של הבנייה.

לחץ על החץ הנפתח ליד המשימה ובחר בפלט הקונסולה.

Running the New Jenkins Job

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

Viewing Console Output of the Pipeline Job

מסקנה

במדריך זה, למדת כיצד ליצור משימות Jenkins עם תוסף Job DSL. נגעת בשיפור פיתוח היישומים על ידי יצירת צינור CI/CD עם תוסף Jenkins Pipeline.

התוסף Job DSL והתוסף של צינור Jenkins פועלים בצד אחד לצד כדי להציע דרך עוצמתית שבה תוכל לנהל עבודות Jenkins וצינורות בנייה. למה לא להגדיר את התוספים הללו כך שיצורו צינורות בנייה מורכבים שמפעילים אוטומטית עבודות Jenkins כחלק מתהליך הבנייה?

Source:
https://adamtheautomator.com/jenkins-dsl/