Jenkins
أداة مفتوحة المصدر بتساعدك تبني Pipelines عشان تختبر وتبني الكود بشكل مستمر مع كل إضافة وتتأكد من عمله بطريقة صحيحة ودي بتسمي بعملية CI/CD.
المقدمة
Jenkins هو أداة مفتوحة المصدر بتساعدك تبني Pipelines عشان تختبر وتبني الكود بشكل مستمر مع كل إضافة وتتأكد من عمله بطريقة صحيحة ودي بتسمي بعملية CI/CD.
قبل ال CI/CD كان كل فرد من الفريق بيشتغل على الجزء الخاص بيه و نتجمع في النهاية ونضيف الكود على بعضه ونحل المشاكل اللي بتظهر من عدم توافقه,طبعًا دي كانت عملية مرهقة وبتكلف وقت ومجهود واحم احم أعصاب.
فعملية التكامل المستمر تقوم بتجميع الكود الجديد والقديم و تختبرهم سوا في عدة خطوات أو ما يسمى بال Pipeline عشان تتأكد من عملهم وتظهر لك المشاكل علطول فبالتالي كفريق تقدروا تشتغلوا على التعديلات وتكتشفوا مواضع الخطأ.
Pipeline Stages
Jenkins بيساعدك تكون Pipeline بسهولة عن طريق كتابة Jenkins File باستخدام لغة Groovy بتحدد فيه كل مرحلة ومفروض يعمل فيها ايه :
- مرحلة البناء ( Build Stage)
- مرحلة الاختبار (Testing Stage )
- مرحلة النشر على السيرفر ( Deploy Stage )
مثال:
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'mvn clean install'
}
}
stage('Test') {
steps {
sh 'mvn test'
}
}
}
بكدا تكون عملت Automation لبناء واختبار ونشر المشروع الخاص بك بدل مع كل تغيير بدل ما تقوم بالمراحل دي كلها بشكل يدوي.

مميزات Jenkins
- مفتوح المصدر ومجاني – لا يحتاج إلى ترخيص مدفوع.
- دعم كبير للإضافات (Plugins) – بيتيح عدد كبير من الـ Plugins لتوسيع وظائفه (مثل دعم Git، Docker، Kubernetes، وغيرها).
- بيتشغل مع معظم الأدوات مثل GitHub، GitLab، Bitbucket، Maven، Docker، وغيرها.
- يدعم CI/CD بالكامل – من البناء إلى الاختبار إلى النشر.
- مجتمع نشط ودعم فني قوي – بسبب شعبيته هتلاقي Community قوي وكذلك الكثير من الأمثلة والدعم
عيوب Jenkins
- واجهة المستخدم قديمة: أي حد اشتغل مع Jenkins هيواجه في الأول صعوبة معرفة منين بيودي على فين, بينما الوضع أسهل في البدائل الحديثة من ناحية الـ UI
- تعلم منحنى متوسط: بيحتاج شوية وقت عشان تفهمه بالكامل، خاصةً عند استخدام Jenkinsfile.
البدائل المتاحة
في بدائل أكثر حداثة ل Jenkins ولكنه لا يزال واحد من أكثر أدوات الـ CI/C استخدامًا وبالأخص للشركات اللي بتحتاج Scaling.
البدائل -مفتوحة المصدر- مثل: Openshift pipelines, Gitlab CI/CD, Circle CI
شاركونا خبراتكم في التعامل مع جينكينز ايه المميزات اللى بتحبوها فيه وايه العيوب من وجهة نظركم والبدايل اللي بتأخذوها في عين الاعتبار 👋
Discussion