নিম্নলিখিত কিছু বৈশিষ্ট্য যা আপনি বেশিরভাগ CI সিস্টেমে খুঁজে পেতে পারেন।
পরিবেশ
হার্ডওয়্যার এবং সফ্টওয়্যার পরিবেশ বাছাই করা এবং বোঝা গুরুত্বপূর্ণ যেখানে সিস্টেম ওয়ার্কফ্লো চালায়। অ্যান্ড্রয়েড অ্যাপ্লিকেশনগুলির জন্য গুরুত্বপূর্ণ বিবেচনাগুলি হল:
- প্ল্যাটফর্ম : লিনাক্স, ম্যাক, উইন্ডোজ এবং তাদের সংস্করণ।
- উপলব্ধ মেমরি : অ্যাপ তৈরি করা এবং এমুলেটর চালানোর জন্য প্রচুর RAM ব্যবহার করা যেতে পারে এবং মেমরির বাইরের ত্রুটিগুলি এড়াতে প্রায়শই JVM-এর হিপ সাইজের মতো প্যারামিটারগুলিকে টুইক করা প্রয়োজন৷
- প্রি-ইনস্টল করা সফ্টওয়্যার : CI সিস্টেমগুলি সাধারণত ইতিমধ্যে উপলব্ধ সরঞ্জামগুলির একটি বৃহৎ সংগ্রহের সাথে ছবিগুলি প্রদান করে, যেমন জাভা ডেভেলপমেন্ট কিট (JDK), Android সফ্টওয়্যার ডেভেলপমেন্ট কিট (SDK), বিল্ড টুল, প্ল্যাটফর্ম এবং এমুলেটর।
- রানার আর্কিটেকচার এবং নির্দেশনা সেট : ARM, x86। এমুলেটর ব্যবহার করার সময় এটি গুরুত্বপূর্ণ।
- এনভায়রনমেন্ট ভেরিয়েবল : কিছু CI সিস্টেম দ্বারা সেট করা হয় (উদাহরণস্বরূপ:
ANDROID_HOME
) এবং আপনি আপনার নিজের সেট করতে পারেন, উদাহরণস্বরূপ, আপনার ওয়ার্কফ্লোতে হার্ডকোডিং শংসাপত্রগুলি এড়িয়ে চলুন৷
অন্যান্য অনেক দিক রয়েছে যা আপনার বিবেচনা করা উচিত, যেমন উপলব্ধ কোরের সংখ্যা এবং এমুলেটর চালানোর জন্য ভার্চুয়ালাইজেশন সক্ষম কিনা।
লগ এবং রিপোর্ট
যখন একটি পদক্ষেপ ব্যর্থ হয়, তখন CI সিস্টেম আপনাকে অবহিত করে এবং সাধারণত আপনাকে পরিবর্তনটি একত্রিত করতে দেয় না। কী ভুল হয়েছে তা খুঁজে বের করতে, লগগুলিতে ত্রুটিগুলি দেখুন৷
উপরন্তু, বিল্ডিং এবং টেস্টিং রিপোর্ট তৈরি করে যা সাধারণত সেই নির্দিষ্ট বিল্ডের আর্টিফ্যাক্ট হিসাবে সংরক্ষণ করা হয়। CI সিস্টেমের উপর নির্ভর করে, আপনি সেই রিপোর্টগুলির ফলাফলগুলি কল্পনা করতে প্লাগইনগুলি ব্যবহার করতে পারেন।
ক্যাশে এবং সিআই রান সময়
CI সিস্টেমগুলি প্রক্রিয়াটি দ্রুত করার জন্য একটি বিল্ড ক্যাশে ব্যবহার করে। এর সহজতম আকারে, তারা একটি সফল বিল্ডের পরে সমস্ত Gradle ক্যাশে ফাইল সংরক্ষণ করে এবং একটি নতুনের আগে সেগুলি পুনরুদ্ধার করে। এটি Gradle এর বিল্ড ক্যাশে বৈশিষ্ট্যের উপর নির্ভর করে এবং আপনার প্রকল্পে সক্ষম করা উচিত।
রান টাইম এবং নির্ভরযোগ্যতা উন্নত করার কিছু উপায় অন্তর্ভুক্ত:
- মডিউল : কোন মডিউলগুলি পরিবর্তনের দ্বারা প্রভাবিত হয়েছে তা সনাক্ত করা এবং শুধুমাত্র সেগুলি তৈরি এবং পরীক্ষা করা।
- ক্যাশে এড়িয়ে যান : যদি বিল্ডে এমন স্ক্রিপ্ট থাকে যা একজন ডেভেলপার পরিবর্তন করেছে, তাহলে বিল্ড ক্যাশে উপেক্ষা করুন। স্ক্র্যাচ থেকে তৈরি করা নিরাপদ।
- শার্ড পরীক্ষা : বিশেষ করে যন্ত্রযুক্ত পরীক্ষা, এটি একাধিক ডিভাইস জুড়ে শার্ড পরীক্ষা করতে সহায়ক হতে পারে। এটি অ্যান্ড্রয়েড রানার, গ্রেডল ম্যানেজড ডিভাইস এবং ফায়ারবেস টেস্ট ল্যাব দ্বারা সমর্থিত।
- শার্ড বিল্ডস : আপনি একাধিক সার্ভার ইনস্ট্যান্স জুড়ে বিল্ডটি শার্ড করতে পারেন।
- রিমোট ক্যাশে : আপনি গ্রেডলের রিমোট ক্যাশেও ব্যবহার করতে পারেন।
ব্যর্থ পরীক্ষা পুনরায় চেষ্টা করুন
ফ্ল্যাকিনেস বলতে বোঝায় পরীক্ষা বা সরঞ্জাম যা মাঝে মাঝে ব্যর্থ হয়। আপনার সর্বদা সেই সমস্যাগুলি খুঁজে বের করার এবং সমাধান করার চেষ্টা করা উচিত যা ফ্ল্যাকি বিল্ড এবং পরীক্ষাগুলি তৈরি করে, তবে তাদের মধ্যে কিছু পুনরুত্পাদন করা কঠিন, বিশেষত যখন যন্ত্রযুক্ত পরীক্ষা চালানো হয়। একটি সাধারণ কৌশল হল টেস্ট রানের পুনরায় চেষ্টা করা যখনই তারা ব্যর্থ হয়, সর্বোচ্চ সংখ্যক পুনরায় চেষ্টা করা।
পুনরায় চেষ্টা কনফিগার করার কোনো একক উপায় নেই, কারণ সেগুলি একাধিক স্তরে ঘটতে পারে। নিম্নোক্ত সারণী একটি ফ্ল্যাকি পরীক্ষা ব্যর্থতার প্রতিক্রিয়া হিসাবে আপনি যে পদক্ষেপ নিতে পারেন তার রূপরেখা দেয়:
ব্যর্থতা | কর্ম |
---|---|
এমুলেটর একটি সেকেন্ডের জন্য প্রতিক্রিয়াহীন ছিল, একটি টাইমআউট ট্রিগার করে | ব্যর্থ পরীক্ষা পুনরায় চালান |
এমুলেটর বুট করতে ব্যর্থ হয়েছে | পুরো টাস্ক পুনরায় চালান |
কোড চেকআউট পর্বের সময় একটি সংযোগ ত্রুটি ছিল | ওয়ার্কফ্লো রিস্টার্ট করুন |
সিস্টেমের কোন অংশগুলি ফ্লেকি আছে তা লগ করা এবং ট্র্যাক করা এবং CI নির্ভরযোগ্য এবং দ্রুত রাখার জন্য বিনিয়োগ করা গুরুত্বপূর্ণ, শুধুমাত্র পুনরায় চেষ্টা করার উপর নির্ভর করে