কন্টিনিউস ইন্টিগ্রেশন (সিআই) সম্পর্কে একটি মৌলিক সমস্যা রয়েছে যা আপনার প্রশ্নে নিখুঁতভাবে মিরর হয়েছে: সিআই অনুশীলনগুলি কার্যকর করা এবং রক্ষা করা শক্ত কারণ সিআই সার্ভার সফ্টওয়্যার সেটআপের জন্য তুচ্ছ নয়, বা আপনার প্রকল্পগুলি সিআইয়ের মাধ্যমে চালিত করাও তুচ্ছ নয় projects সার্ভার। এটির সাথে, আসলে সিআইকে আলিঙ্গন করার ক্ষেত্রে লাভ কোথায় তা বাস্তবে দেখা কঠিন হয়ে পড়ে becomes
প্রথমত, সিআই অন্তর্দৃষ্টি এবং গুণমান সম্পর্কে। গুড সিআই আপনাকে আপনার প্রকল্পের আরও কাছাকাছি নিয়ে আসে, আপনাকে গুণমানের মেট্রিক্স, ডকুমেন্টেশন, কোডিং স্ট্যান্ডার্ড সম্মতি ইত্যাদির উপর যথাযথ প্রতিক্রিয়া দেয় It এটি আপনাকে এগুলি সহজেই দৃশ্যমান করার জন্য সরঞ্জাম সরবরাহ করতে হবে এবং আপনাকে এক নজরে স্বীকৃতি দেবে এবং সহজেই অনুমতি দেবে এই সমস্ত প্রকল্পের মেট্রিকের নির্দিষ্ট স্ন্যাপশটের সাথে পরিবর্তনের একটি সেটকে সংযুক্ত করুন।
এটি কেবল ইউনিট পরীক্ষা চালানোর বিষয়ে নয় । একদমই না! যা আমাকে গুণে নিয়ে আসে। সিআই ত্রুটিগুলি আলিঙ্গন করে, এটি এড়ানো বা এড়িয়ে যায় না। এটি যা করে তা হ'ল আপনাকে পরবর্তীতে পরিবর্তে ত্রুটি করার একটি সরঞ্জাম সরবরাহ করে to সুতরাং আপনি সত্যই সিআই সার্ভারে পূর্ববর্তী পরীক্ষিত কোডটি প্রতিশ্রুতিবদ্ধ করবেন না। যদিও আপনার ক্লিন এবং ভাঙা কোড নয়, প্রতিশ্রুতিবদ্ধ হওয়া উচিত, আপনি প্রকৃতপক্ষে আপনার কোডের মাধ্যমে একটি ইন্টিগ্রেশন বিল্ডারকে স্বয়ংক্রিয়ভাবে চালানোর জন্য সিআই সার্ভারটি ব্যবহার করেন এবং সবকিছু ঠিকঠাক বেরিয়ে আসে কিনা তা নির্ধারণ করে নিতে পারেন। যদি তা হয়, ঝরঝরে! যদি তা না হয় তবে কোনও সমস্যা নেই - ভাল সিআই অনুশীলন করে যে আপনার পরবর্তী অগ্রাধিকারটি যা ভাঙা হয়েছে তা ঠিক করা উচিত। কোন, ভাল সিআই সার্ভারে আপনার পক্ষে সহজেই নির্দেশ করা উচিত।
একটি দলের আকার বাড়ার সাথে সাথে প্রত্যেকের কোডের একীকরণ স্বাভাবিকভাবেই শক্ত হয়ে ওঠে। সমস্ত ইন্টিগ্রেটেড অংশ পরীক্ষা করা এবং দলের সদস্যদের কাছ থেকে এই বোঝা নেওয়ার জন্য সেন্ট্রালাইজড সিআই সার্ভারের কাজ হওয়া উচিত। সুতরাং আপনার অবশ্যই প্রত্যেককে অবশ্যই তাড়াতাড়ি (এবং যতটা সম্ভব পরিষ্কারভাবে) কমিট করা উচিত এবং তারপরে পর্যবেক্ষণ স্থিতি তৈরি করে (সাধারণত বিজ্ঞপ্তিগুলি কল্পনা করে থাকে)। এবং আবারও, যদি কিছু বিকাশকারীর প্রতিশ্রুতির কারণে কোনও কিছু ভেঙে যায় তবে তাৎক্ষণিকভাবে এটি সংশোধন করা এবং সেই স্বয়ংক্রিয় বিল্ডগুলি অবিলম্বে ঠিক অবস্থানে ফিরিয়ে আনার জন্য তার দায়বদ্ধতা হয়ে ওঠে।
সুতরাং আপনি দেখুন, আমার মতে প্রতিটি একক প্রকল্প অবিচ্ছিন্নভাবে সংহত হওয়ার থেকে উপকৃত হয়। জিনিসটি এখনও অবধি এবং আমার জানা প্রতিটি সিআই সার্ভারের মন-উদ্বেগজনক জটিলতার কারণে লোকেরা ছোট / সরল প্রকল্পগুলিতে সত্যই সিআই অনুশীলনকে বিরত রাখে। কারণ, আসুন, লোকেরা কুরুচিপূর্ণ, অতি-জটিল, কম-বিতরণকারী, ব্লাটেড সফ্টওয়্যারটি কনফিগার করার চেয়ে দিন কাটাতে বেশি ভাল কাজ করে।
আমার ঠিক একই সমস্যা ছিল এবং প্রায় এক বছর আগে থেকে আমার অবসর সময়ে সিন্টিয়েন্টের বিকাশ ঘটায় এটি। আমার ভিত্তিটি ছিল এটি ইনস্টল করা, কনফিগার করা এবং ব্যবহার করা সহজ এবং সহজতর করা এবং সেই মানের মানের মেট্রিকগুলি সরবরাহ করা যা প্রত্যেকে একেবারে ব্যর্থ হয় বা আন্ডার ডিলিভারগুলি। সুতরাং, এই দীর্ঘ উত্তরের পরে আমার লজ্জাজনক প্লাগটি প্রকল্পটির জন্য গিটহাব লিঙ্কটি নির্দেশ করে (যা নিখরচায় ও মুক্ত-উত্স, ন্যাচ)। স্পষ্টতই এর কিছু দুর্দান্ত স্ক্রিনশটও রয়েছে। :-) https://github.com/matamouros/cintient
আশা করি আমি আপনাকে সাহায্য করেছি।
(দ্রষ্টব্য: ব্রায়ান ওকলির মন্তব্যের পরে সম্পাদিত, আরও ভাল উত্তর তৈরি করতে আমার আরও বেশি সময় নেওয়া উচিত ছিল বলে আমি মনে করি তিনিও ঠিক বলেছিলেন।)