ক্রমাগত ইন্টিগ্রেশন বেসিক

কন্টিনিউয়াস ইন্টিগ্রেশন (CI) হল একটি সফ্টওয়্যার ডেভেলপমেন্ট অনুশীলন যেখানে ডেভেলপাররা ঘন ঘন তাদের কোড পরিবর্তনগুলিকে একটি কেন্দ্রীয় সংগ্রহস্থলে একত্রিত করে, যার পরে স্বয়ংক্রিয় বিল্ড এবং পরীক্ষা চালানো হয়।

আপনি নতুন পরিবর্তনগুলি প্রতিরোধ করতে একটি মৌলিক CI সিস্টেম সেট আপ করতে পারেন যা একত্রিত হওয়ার পরে বিল্ডটি ভেঙে ফেলবে৷ আপনি অ্যাপটিকে স্বয়ংক্রিয়ভাবে পরীক্ষা করার জন্য একটি আরও উন্নত CI সিস্টেম প্রোগ্রাম করতে পারেন এবং নিশ্চিত করতে পারেন যে এটি বিভিন্ন পরিবেশে যেমন প্রত্যাশিত আচরণ করে, যেমন API স্তরগুলি, পর্দার আকার, এবং প্ল্যাটফর্ম।

একটি ডায়াগ্রাম দেখায় যে কিভাবে একাধিক বিকাশকারীরা কোড পরিবর্তনের জন্য অনুরোধ করে এবং মূল কোড রিপোজিটরিতে একত্রিত হওয়ার আগে কীভাবে তারা CI সিস্টেম দ্বারা চেক করা হয়।
চিত্র 1. একটি CI সিস্টেম মার্জ করার আগে চেক চালানোর মাধ্যমে একটি কোড রিপোজিটরিকে সুস্থ রাখে।

এই নথিটি সাধারণ কৌশলগুলি প্রদর্শন করে যা বিকাশকারীরা Android প্রকল্পগুলির জন্য কার্যকর CI সিস্টেম সেট আপ করতে ব্যবহার করে৷ এই নির্দেশিকাগুলি জেনেরিক এবং বেশিরভাগ সমাধানের ক্ষেত্রে প্রযোজ্য।

আদর্শ উদাহরণ

একটি সাধারণ CI সিস্টেম একটি ওয়ার্কফ্লো বা পাইপলাইন অনুসরণ করে, যা দেখতে নিম্নরূপ হতে পারে:

  1. CI সিস্টেম কোডে পরিবর্তন শনাক্ত করে, সাধারণত যখন একজন বিকাশকারী একটি পুল অনুরোধ তৈরি করে, যাকে "পরিবর্তন তালিকা" বা "একত্রীকরণ অনুরোধ"ও বলা হয়।
  2. এটি ওয়ার্কফ্লো চালানোর জন্য একটি সার্ভারের বিধান এবং সূচনা করে।
  3. এটি কোডের পাশাপাশি প্রয়োজনে Android SDK বা এমুলেটর ইমেজের মতো টুল নিয়ে আসে।
  4. এটি একটি প্রদত্ত কমান্ড চালানোর মাধ্যমে প্রকল্পটি তৈরি করে, উদাহরণস্বরূপ। /gradlew build
  5. এটি একটি প্রদত্ত কমান্ড চালানোর মাধ্যমে স্থানীয় পরীক্ষা চালায়, উদাহরণস্বরূপ চলমান। /gradlew test
  6. এটি এমুলেটর শুরু করে এবং যন্ত্রযুক্ত পরীক্ষা চালায়।
  7. এটি পরীক্ষার ফলাফল এবং APK-এর মতো শিল্পকর্ম আপলোড করে।
একটি মৌলিক CI কর্মপ্রবাহ দেখানো একটি চিত্র
চিত্র 2. একটি মৌলিক CI কর্মপ্রবাহ

সিআই এর সুবিধা

CI এর সুবিধার মধ্যে রয়েছে:

  • সফ্টওয়্যারের উন্নত গুণমান : CI সমস্যাগুলি শনাক্ত ও সমাধানের মাধ্যমে সফ্টওয়্যারের গুণমান উন্নত করতে সাহায্য করতে পারে। এটি সফ্টওয়্যার রিলিজে বাগ সংখ্যা কমাতে এবং সামগ্রিক ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সাহায্য করতে পারে।
  • ভাঙা বিল্ডগুলির ঝুঁকি হ্রাস : আপনি যখন CI এর সাথে আপনার বিল্ড প্রক্রিয়া স্বয়ংক্রিয় করেন তখন আপনি প্রক্রিয়ার আগে সমস্যাগুলি সমাধান করে ভাঙা বিল্ডগুলি এড়াতে পারেন।
  • রিলিজের প্রতি আস্থা বৃদ্ধি : প্রতিটি রিলিজ স্থিতিশীল এবং উৎপাদনের জন্য প্রস্তুত কিনা তা নিশ্চিত করতে CI সাহায্য করতে পারে। স্বয়ংক্রিয় পরীক্ষা চালানোর মাধ্যমে, আপনি জনসাধারণের কাছে প্রকাশ করার আগে CI যেকোনো সম্ভাব্য সমস্যা চিহ্নিত করতে পারে।
  • উন্নত যোগাযোগ এবং সহযোগিতা : ডেভেলপারদের কোড এবং পরীক্ষার ফলাফল শেয়ার করার জন্য একটি কেন্দ্রীয় স্থান প্রদান করে, CI ডেভেলপার এবং অন্যান্য দলের সদস্যদের একসাথে কাজ করা এবং অগ্রগতি ট্র্যাক করা সহজ করতে সাহায্য করতে পারে।
  • বর্ধিত উত্পাদনশীলতা : CI স্বয়ংক্রিয় কাজগুলির মাধ্যমে বিকাশকারীর উত্পাদনশীলতা বাড়াতে সাহায্য করতে পারে যা অন্যথায় সময় সাপেক্ষ এবং ত্রুটি-প্রবণ হতে পারে।

আরও পড়া

আপনি কীভাবে আপনার অ্যাপের উন্নয়নের উন্নতি করতে ধ্রুবক একীকরণ ব্যবহার করতে পারেন সে সম্পর্কে আরও তথ্য, নিম্নলিখিত পৃষ্ঠাগুলি পড়ুন: