راه اندازی اصلی جنکینز برای CI/CD

مقدمه
جنکینز یک سرور اتوماسیون منبع باز است که ادغام مداوم و استقرار مداوم (CI/CD) را تسهیل می کند. این راهنما یک رویکرد گام به گام برای نصب ، پیکربندی و عیب یابی جنکینز بر روی یک سیستم مبتنی بر لینوکس ارائه می دهد.
1. نصب جنکینز
پیش نیازهای
اطمینان حاصل کنید که سیستم شما قبل از نصب جنکینز به روز است:
Sudo Apt Update && sudo apt نصب -y OpenJDK-11-JDK
جنکینز را بارگیری و نصب کنید
دستورات زیر را برای نصب جنکینز اجرا کنید:
wget -q -o -https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc>/dev/null
اکو “دب [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/”| sudo tee /etc/apt/source.list.d/jenkins.list>/dev/null
Sudo Apt Update && sudo apt نصب -y جنکینز
شروع و فعال کردن جنکینز
دستورات زیر را برای شروع جنکینز اجرا کنید و آن را فعال کنید تا در راه اندازی راه اندازی شود:
sudo systemctl شروع جنکینز
sudo systemctl جنکینز را فعال کنید
وضعیت جنکینز را بررسی کنید
برای تأیید اینکه جنکینز به درستی در حال اجرا است:
Sudo Systemctl وضعیت جنکینز
2. نصب افزونه های مورد نیاز
برای استفاده کامل جنکینز ، افزونه های لازم را نصب کنید:
- برای مدیریت جنکینز> مدیریت افزونه ها حرکت کنید
- موارد زیر را نصب کنید: o git plugin o افزونه خط لوله o افزونه ادغام qt (در صورت وجود)
برای اطمینان از نصب QT:
sudo apt نصب -y qtbase5-dev qtchooser qt5-qmake qttools5-dev-tools
qmake -مجدداً
3. پیکربندی مخزن GIT برای جنکینز
تنظیم مخزن از راه دور
git از راه دور -v
Git Remote Set-url Origin https://github.com/new-repo.git
4. پیکربندی فایروال و دسترسی خارجی
به جنکینز از طریق فایروال اجازه دهید
SUDO UFW اجازه 8080 / TCP را می دهد
بارگیری مجدد ufw sudo
دسترسی به جنکینز از یک سیستم از راه دور
IP عمومی خود را پیدا کنید:
curl ifconfig.me
دسترسی به جنکینز از طریق:
http: //: 8080
جنکینز را برای دسترسی خارجی پیکربندی کنید
پرونده پیکربندی جنکینز را ویرایش کنید:
sudo nano/etc/default/jenkins
تنظیمات http_host را اصلاح کنید:
http_host = 0.0.0.0
شروع مجدد جنکینز:
sudo systemctl Jenkins را مجدداً راه اندازی کنید
5. تنظیم NGROK برای دسترسی خارجی
در حال اجرا ngrok
NGROK HTTP 8080
URL ارسال را از NGROK کپی کنید (به عنوان مثال ، https://xyz.ngrok-free.app).
پیکربندی وب سایت GitHub
- حرکت به GitHub → مخزن → تنظیمات → وب سایت ها.
- روی افزودن Webhook کلیک کنید.
- URL Webhook را روی آن تنظیم کنید:
- https://xyz.ngrok-free.app/github-webhook/
- برنامه/json را به عنوان نوع محتوا انتخاب کنید.
- فقط رویداد فشار را انتخاب کنید.
- روی افزودن Webhook کلیک کنید (اطمینان حاصل کنید که وضعیت به رنگ سبز تبدیل می شود).
6. تنظیم خط لوله جنکینز با GitHub
ایجاد یک جنکینزفیل
با محتوای زیر پرونده ای به نام Jenkinsfile را در ریشه مخزن خود ایجاد کنید:
خط لوله {
نماینده هر
مراحل
مرحله ('پرداخت') {
مراحل {git 'https://github.com/anujgupta345/cpp_qt_multithithreading_linux.git'
}
مرحله ('ساخت') {
مراحل
SH Export Qthil = / usr / lib / qt5 '
sh 'مسیر صادرات = $ qtdir/bin: $ path'
sh 'qmake ipc.pro'
sh 'mkdir -p build'
sh 'Clean && make -j $ (nproc)
}
}
مرحله (“آثار باستانی”) {
مراحل {Archiveartifacts Artifacts: 'Build/Desktop_QT_6_8_3-DEBUG/IPC' ، اثر انگشت: TRUE
}
مرحله (“استقرار”) {
مراحل
sh 'chmod +x build/desktop_qt_6_8_3-debug/ipc'
sh 'mkdir -p $ فضای کاری/ساخت'
sh 'cp build/desktop_qt_6_8_3-debug/ipc $ فضای کاری/ساخت'
برنامه “اکو” با موفقیت مستقر شد! “
}
}
مرحله ('اجرای برنامه') {
مراحل {sh 'nohup $ فضای کاری/build/ipc> $ workspace/build/app.log 2> & 1 &'
}
}
}
Jenkinsfile را به مخزن GitHub خود در پوشه ریشه فشار دهید.
7. پیکربندی اضافی جنکینز
• مدیریت جنکینز را تغییر دهید → تنظیمات سیستم را در صورت لزوم پیکربندی کنید.
در صورت نیاز به متغیرهای محیط ، پرونده .bashrc خود را به روز کنید.
8. مراحل عیب یابی
بررسی گزارش ها
sudo journalctl -u جنکینز -f
تأیید جنکینز در بندر 8080 در حال اجرا است
ss -tulnp | GREP 8080
بررسی قوانین فایروال
وضعیت ufw sudo
تنظیم NGROK در لینوکس
- اجرا ngrok:
- NGROK HTTP 8080
- URL ارسال شده را کپی کنید (به عنوان مثال ، https://d776-2409-40f2-216c.ngrok-free.app).
- از این URL در تنظیمات GitHub Webhook خود استفاده کنید.
- بدون استفاده از LocalHost به جنکینز خارجی دسترسی پیدا کنید. ________________________________________
پایان
با دنبال کردن این راهنما ، یک خط لوله کاملاً کاربردی Jenkins CI/CD با GitHub یکپارچه خواهید کرد. این تنظیم اتوماسیون یکپارچه برای پروژه های مبتنی بر QT شما ، از جمله ساخت ، آزمایش و استفاده از برنامه های کاربردی را تضمین می کند.
به کمک نیاز دارید؟
اگر با هر مشکلی روبرو شدید ، به پرونده های جنکینز و تنظیمات فایروال یا مجدداً پیکربد NGROK مراجعه کنید. برای تنظیمات پیشرفته ، با مستندات جنکینز مشورت کنید.
تصاویر: