Continuous Integration یا به اختصار CI به معنای «ادغام مداوم» به فرآیندی اشاره دارد که طی آن سورسکد دولوپرهایی که به صورت تیمی روی پروژهای مشترک کار میکنند به صورت مداوم و بر اساس یکسری استاندارد خاص به منظور شناسایی ارورها و باگهای موجود تست میشود تا پیش از ادغام با ریپازیتوری اصلی رفع شده و در نهایت در قالب یک پروژۀ جامع یکپارچه شوند که برای کسب اطلاعات بیشتر در این رابطه میتوانید به لینک Continuous Integration مراجعه نمایید. حال آنچه در ادامۀ این مقاله قصد داریم مورد بررسی قرار دهیم معرفی برخی از ابزارهای اپنسورس CI و آشنایی با برخی ویژگیهای شاخص آنها است.
Jenkins
Jenkins یک ابزار اپنسورس به منظور تست کدها و ادغام آنها در قالب یک پروژۀ جامع بوده که به زبان جاوا نوشته شده است و از جمله ویژگیهای این ابزار میتوان به قابلیت تست سورسکد به صورت بلادرنگ اشاره کرد به طوری که ارورهای احتمالی را به صورت خودکار و سریع تشخیص داده و از همین روی امکان رفع سریع خطاها را برای دولوپرها فراهم میآورد. همچنین دولوپرها میتوانند با بهکارگیری این ابزار پروژههای توسعهیافته روی دیوایسهای Distributed (توزیعشده) را در قالب یک پروژه ادغام کنند و همچنین پلاگینهایی برای این ابزار طراحی شده است که منجر به خودکارسازی فرآیند ادغام مداوم در آن میشود مضاف بر اینکه ابزاری کراسپلتفرم بوده و قابلیت اجرا روی سیستمعاملهایی همچون گنو/لینوکس، مَک و ویندوز را دارا است.
Travis CI
Travis CI یکی از ابزارهای اپنسورس و رایگان به منظور «ادغام مداوم» است که یکسری API به همراه رابط کاربری کامندلاینی برای آن طراحی شده است که پیکربندی و کار با آن را تسهیل مینماید به علاوه اینکه Travis روی به اصطلاح Virtual Machine (ماشین مجازی) اجرا شده و امکان تست سورسکدهای مختلف را به صورت موازی برای دولوپرها فراهم میآورد و قابلیت اجرا روی سیستمعاملهایی همچون گنو/لینوکس، مَک، ویندوز و غیره را دارا است (جهت آشنایی بیشتر با مفهوم ماشین مجازی، میتوانید به مقالهٔ درآمدی بر رایانش ابری و مجازیسازی: دو مقولهٔ مرتبط اما کاملاً متفاوت مراجعه نمایید.)
GoCD
GoCD یکی دیگر از ابزارهای اپنسورس به منظور انجام فرآیند CI روی پروژههای تیمی است که مدلسازی و به اصطلاح ویژوالایز کردن گردشکار در پروژههای پیچیده را تسهیل میکند مضاف بر اینکه GoCD قابلیت هندل کردن فرآیند Continuous Delivery را نیز دارا است که برای آشنایی با سایر ویژگیهای این ابزار توصیه میکنیم به مقالۀ GoCD: ابزاری اپنسورس و رایگان برای Continuous Delivery مراجعه نمایید.
Buildbot
Buildbot یک ابزار توسعهیافته با زبان برنامهنویسی پایتون است که برای پیادهسازی CI طراحی شده و به منزلۀ فریمورکی جهت تست سورسکد در پروژههای تیمی مورد استفاده قرار میگیرد که فرآیند تست و کامپایل را در پروسۀ CI خودکارسازی میکند مضاف بر اینکه امکان موازیسازی عملیات تست و تشخیص خطا در سورسکدهای مربوطه را فراهم میآورد و یک ابزار کراسپلتفرم بوده و قابلیت اجرای روی سیستمعاملهای مختلف را دارا است.
StriderCD
StriderCD یکی دیگر از ابزارهای اپنسورس مرتبط با CI میباشد که دولوپرها به منظور نصب و اجرای آن میباید محیط اجرای NodeJs به همراه سیستم مدیریت پایگاه دادهٔ MongoDB را روی دیوایس خود نصب داشته باشند.
در پایان هم لازم به یادآوری است که یکسری ابزار غیررایگان نیز به منظور انجام فرآیند CI روی پروژههای تیمی وجود دارد که از آن جمله میتوان به Buildkite ،Nevercode و Codeship یا سرویسهای دیگری همچون Bamboo ،Circle CI ،Gitlab CI و TeamCity اشاره کرد.