لذت برنامه نویسی: نحوه کار ما با jenkins

اینم یه تجربه پراکنده دیگه!

خب حدودا سه سال قبل من از جای خالی continues integration نوشتم. حالا حدود بعد از سه سال میخوام دوباره به موضوع رجوع کنم و درباره jenkins بنویسم

توی این سه سال اتفاقات زیادی افتاده. ما روند build رو با استفاده از cmake بهتر کردیم. یادگرفتیم که چی به چیه. حدودا انتهای سال قبل بود که توی شرکت منابع و علم کافی برای پیاده‌سازی روند ci بوجود اومد و ما شروع کردیم به استفاده از jenkins.

نصب و راه‌اندازی jenkins به نسبت آسون و راحت بود. کاری که jenkins برای ما میکرد این بود که به یه دلیلی(بخونید ماشه) شروع به کامپایل کد میکرد. روند کامپایل هم آسون بود. یعنی اینکه یه سری پروژه معمول رو میشناسه مثل cmake, make, gradle, maven داره که کار رو راحت میکنه

ما اول به یه پروژه معمولی که بصورت ساعتی اجرا میشد شروع کردیم فقط نکتش اینه که ما با سخت‌افزارهای مختلف کار میکنیم و این تنها برای یکی از سخت‌افزارهامون کار میکرد. بعدش یه پروژه معمولی دیگه اضافه کردم که با cppcheck کار static analysis رو روی کدمون بصورت ساعتی انجام میداد.

در مرحله بعد با استفاده امکانی از jenkins pipeline تمامی سخت‌افزارها رو باهم کامپایل کردیم و cppcheck هم به عنوان یک مرحله از این خط لوله ما انتخاب شد.

در قدم بعدی هم این ماجرا رو به git وصل کردیم و به ازای هر کامیت یا هر درخواست بررسی که روی کدمون انجام میدیم شروع به کامپایل میکنه و ما میدونیم که دیگه تغییرمون چیزی رو خراب نمیکنه.

در قدم‌های بعدی میخوایم تست اتوماتیک و تست روی سخت‌افزار رو هم پیاده کنیم که اون داستان‌های خودش رو داره. ما آهسته و پیوسته حرکت کردیم تا به این نقطه رسیدیم. شاید کند بودیم شاید هم خوب عمل کردیم ولی خوبیش اینه که راه روشنی پیش رو داریم.

فعلا همین!

openwrt و اضافه کردن یک پکیج جدید

اینم یه تجربه پراکنده!

توی پست قبل من OpenWrt رو معرفی کردم. بعد از یه مدت متوجه شدم که یه پروژه جدید به نام LEDE ایجاد شده که انگار همونه و الان حدود ۲ سال هست که OpenWrt زیاد بروزرسانی نمی‌شه. حالا با توجه به علاقه‌ام به کارهای نزدیک سخت‌افزار و مسائل مرتبط به cross compile سعی کردم که کل OpenWrt رو کامپایل کنم و سعی کنم یه پکیج جدید بهش اضافه کنم.

البته پکیجی که من دنبالش بودم tun2socks بود که پکیجش بصورت غیر رسمی وجود داشت. کاری که من کردم این بود که آدرس‌ها رو عوض کردم و یادگرفتم که چطور میتونم اون رو برای روترم کامپایل کنم. نتیجه کار من رو میتونید توی گیت‌هاب من پیدا کنید

روند کار به ترتیب اینجوریه که:

  1. اول سورس کد رو با گیت از گیت‌هاب میگیرید
  2. دوم با توجه به راهنمای آنلاین تمام پکیج‌ها رو دانلود میکنید
  3. پکیج رو اضافه می‌کنید
  4. با استفاده از نوع معماری سیستم و نوع دستگاه و پکیج‌ها رو انتخاب می‌کنید
  5. و از ابتدا کامپایلر و کل لینوکس و پکیج رو کامپایل میکنید

پینشهاد میکنم که برای شروع اینها بخونید:

امیدوارم به دردتون خورده باشه!

همین!