দৈনিক বিল্ডগুলি কতটা গুরুত্বপূর্ণ? [বন্ধ]


20

জোয়েল টেস্টের অন্যতম মানদণ্ড হ'ল দৈনিক বিল্ড। ধারণাটি হ'ল বিল্ডটি যদি ভেঙে যায় তবে যে কেউ এটি ভেঙে ফেলেছে এটি ঠিক করার জন্য রয়েছে। যদি বিল্ডটি ঠিক করা যায় না, তবে প্রত্যেককে একটি পুরানো সংস্করণ পরীক্ষা করে দেখতে হবে এবং এটিতে কাজ করতে হবে। আমি বুঝতে পারি যে এটি কেন্দ্রীভূত সংস্করণ নিয়ন্ত্রণে খুব খারাপ হতে পারে যেখানে যতটা সম্ভব মার্জ হওয়া এবং ব্রাঞ্চিং এড়ানো গুরুত্বপূর্ণ, তবে এটি কেবল বিতরণিত সংস্করণ নিয়ন্ত্রণের জন্য একটি সামান্য উপদ্রব বলে মনে হচ্ছে। তুমি এর সঙ্গে একমত? প্রতিদিনের বিল্ডগুলি গুরুত্বপূর্ণ কেন এমন অন্যান্য কারণ রয়েছে?


2
জোয়েলকে এটি "দৈনিক বিল্ডস এবং অটোমেটেড টেস্ট" হতে আপডেট করা উচিত
পল

1
বা আরও ভাল "স্বয়ংক্রিয় পরীক্ষার সাথে ধারাবাহিক সংহতকরণ" - কখনও কখনও আমরা কোনও দিনে তৈরি করি না, কখনও কখনও আমরা দিনে কয়েকবার নির্মাণ করি। মেশিনগুলি একবার এটি করে দিলে কিছু যায় আসে না।
ওয়াট বার্নেট

@ ওয়াইটবার্নেট আমি সম্পূর্ণরূপে সম্মত =) আমি এমন একটি প্রকল্পে কাজ করেছি যা প্রতি 15 মিনিট পরে কোড তৈরি করে দেয় (যদি না কার্যকলাপে চেক না ঘটে) এবং এটি দুর্দান্ত ছিল।
প্যাট্রিক হিউজেস

উত্তর:


19

আমি মনে করি যে এখানে নোট করা জরুরী যে নিয়মিত বিল্ডগুলি তত দ্রুত পরে ত্রুটিগুলি ধরা সাহায্য করে । এটা না আছে প্রায়ই যথেষ্ট দৈনন্দিন হতে, কিন্তু। আদর্শভাবে, এটি আপনার ইউনিট পরীক্ষাও চালাতে পারে।

লক্ষ্যটি হ'ল চূড়ান্ত পরীক্ষার পর্বের আগে কোনও বিল্ডটি কখন ভেঙে যায় এবং যত তাড়াতাড়ি সম্ভব এটি সন্ধান করা।

আপনার মূল বিকাশ শাখা (গুলি) তৈরি করতে কেবল এটি সেট আপ করুন।

আমরা এটি কাজে ব্যবহার করি (যদিও আমরা প্রতি ঘন্টা তৈরি করি), এবং প্রায়শই যখন আমরা সেট-আপ করতে ভুলে যাই আমরা মুক্তির ঠিক কয়েক ঘন্টা আগে সমস্যাগুলি খুঁজে পাই।


2
প্রতিদিন তৈরি করুন এবং পরীক্ষা করুন
পল

1
@ পল: কেবলমাত্র আপনি যদি এটি প্রায়শই না করতে পারেন। প্রতিটি প্রতিশ্রুতিবদ্ধ উপর এটি করা (ভাল, কিছু হিস্টেরিসিস সময় সহ) দুর্দান্ত।
ডোনাল ফেলো

4

এটিতে (এবং @ গুডইনসগুলি) কিছুটা যুক্ত করা দরকার:

তবে এটি কেবল বিতরণকৃত সংস্করণ নিয়ন্ত্রণের জন্য একটি সামান্য উপদ্রব বলে মনে হচ্ছে।

জোরালোভাবে না - কোনও "সার্ভার" কী বিল্ড করে তা আপনাকে জানিয়ে দেয় যে আপনার ট্রাঙ্কটি পরিষ্কার থেকে কম বেশি তার পরীক্ষা তৈরি করবে এবং পাস করবে (আপনার পরিবেশের জন্য আপনাকে যতটা কনফিগার করতে হবে তার পরিমাণ কম)।

আমি ডিভিসিএস-এ স্যুইচ করার কথা ভাবছি তবে তা করেও আপনি আমার ঠান্ডা মৃত হাত থেকে আমার অবিচ্ছিন্ন ইন্টিগ্রেশন টেনে আনবেন।

একটি সাধারণ উদাহরণটি ধরতে - আপনি "a" বৈশিষ্ট্যটি "বি" বিতরণ করছেন যা আপনি বিতরণ করছেন বা কোনও মুহুর্তে আপনাকে সমস্ত একসাথে সেলাই করা দরকার - যদি আপনি প্রতিশ্রুতিবদ্ধ হন, আপনি অ্যাপ্লিকেশনটি তৈরি করবেন এমন কোনও ফাইল যুক্ত করতে ভুলে গেছেন আপনার মেশিনে কিন্তু এটি অন্য কোথাও পাবেন না। সুতরাং যখন আপনি বিল্ডটিকে আপনার "ট্রাঙ্ক" এ চাপ দিন অবিচ্ছিন্ন ইন্টিগ্রেশন ট্রিগার হয়ে যাবে এবং বিল্ডটি ব্যর্থ হবে এবং আপনি জেনে যাবেন এবং আশা করি কেউ আপনার পুরোপুরি সঠিক নয় এমন কোনও কোড টানার আগে আপনি পদক্ষেপ নিতে সক্ষম হবেন।

আপনি যদি একাধিক বিকাশকারী সহ কোনও প্রকল্পে কাজ করছেন তবে আপনাকে প্রকাশের সংস্করণগুলি কোথা থেকে এসেছে তা নির্ধারণ করতে সক্ষম হতে হবে - কার্যকরভাবে ট্রাঙ্ক - আপনার সংস্করণ নিয়ন্ত্রণ কীভাবে কাজ করে তা নির্বিশেষে এটি সত্য।

যদি আপনি কোনও বৈশিষ্ট্য যুক্ত করেছেন - বিশেষত এমন একটি যার উপর অন্যান্য লোকের নির্ভরতা রয়েছে - আপনি যখন বিশ্বাস করেন যে আপনি যখন "লাইভ" প্রতি চাপান তখন এটি আপনার দেব পরিবেশ ব্যতীত অন্য কোথাও পরীক্ষা তৈরি করে এবং পাস করে huge এর চেয়েও বেশি, আমি আমার বিল্ড সার্ভার থেকে বিল্ডগুলি থেকে স্থাপন করি - এটি কীভাবে "নির্দিষ্ট" বিল্ডকে নির্দিষ্ট করে। অবশেষে আমি ব্যবহারকারীর স্থাপনার বিল্ডগুলি ট্রিগার করতে চলেছি। তার ভাল বলে যে আপনি এটা বৃত্তাকার কাজ করতে পারেন না - আপনি যদি আপনি এটি প্রয়োজন পারবেন না (এবং আমি আছে একটি অফিসে বৃত্তাকার দেব বক্স scrambled খুঁজে পেতে এবং অনুপস্থিত ফাইল কমিট)।

সব কি একটু শক্ত? জানেন না - তবে আমার বিল্ড সার্ভারটি সেই জিনিসগুলির মধ্যে একটি যা আমার কাছে ফিরে দেওয়ার কোনও ইচ্ছা নেই।


3

আমার বিশ্বাস দৈনিক বিল্ডগুলি খুব গুরুত্বপূর্ণ। আপনার যদি বিভিন্ন টাইম জোনে একটি বিতরণকারী দল থাকে তবে দলের সর্বাধিক দলের জন্য 'শেষের দিন'-এর মতো সময় খুঁজে পাওয়া ভাল। এছাড়াও যদি দৈনিক বিল্ডগুলির একটি স্বয়ংক্রিয় পরীক্ষার উপাদান থাকে তবে এটি আরও আকাঙ্ক্ষিত।

সেন্ট্রাল সোর্স কন্ট্রোল সিস্টেমগুলির দিনগুলিতে, সোর্স কোডে কোনও কিছু পরিবর্তিত হলে আমি প্রতি 5-10 মিনিটে অবিচ্ছিন্ন বিল্ডগুলি চালানোর পক্ষে পরামর্শ দেব। যেহেতু সংকলন ত্রুটি দলের বেশিরভাগকে ধীর করার সম্ভাবনা রয়েছে। বিতরণযোগ্য উত্স নিয়ন্ত্রণ ব্যবস্থা পরিচালনাকারী সংস্থাগুলির জন্য, বিকাশকারীরা 'আদিম' কোড-বেস সরাসরি কম প্রায়ই স্পর্শ করার কারণে একটি অবিচ্ছিন্ন বিল্ড প্রয়োজন হতে পারে না।


1

আদর্শভাবে, আপনি যদি এমন বিশাল কিছু নির্মাণ না করেন যা নির্মাণে অর্ধেক দিনের বেশি সময় লাগে তবে আপনি দিনে একাধিকবার নির্মাণ করবেন। একবার আপনি একটি অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভার যেমন হডসন বা টিমসিটি সেট আপ করেছেন , তখন বিল্ডগুলি স্বয়ংক্রিয়ভাবে ঘটবে, সাধারণত প্রতি ঘন্টা বা প্রতি প্রতিশ্রুতিতে এবং যদি কোনও সমস্যা হয় তবে আপনাকে অবহিত করা হবে।

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

আরও উন্নত অবিচ্ছিন্ন ইন্টিগ্রেশন সার্ভারগুলি আপনাকে সময়ের সাথে সাথে মেট্রিকগুলি ট্র্যাক করারও অনুমতি দেয় (যেমন কোডের কভারেজ শতাংশ, বিল্ড টাইম, কোডের লাইন ইত্যাদি)


1

ডেইলি বিল্ডস ঠিক আছে। আপনার কাছে অবশ্যই এগুলি প্রয়োজন যদি আপনার কাছে সত্যবাদী হওয়া ছাড়া আর কিছু না থাকে তবে আমি মনে করি যে এই দিনগুলিতে জোয়েলের পরীক্ষাটি একটু বাইরে।

আমার মতে আপনার পুরো ইউনিট, সিস্টেম এবং কার্যকরী স্তরের পরীক্ষার কেসগুলি পরিচালনা করা এবং আদর্শ প্যাকেজিং এবং একইসাথে পরিবেশের মতো মঞ্চে স্থাপন করা উচিত যাচাই করে যখন আপনার জায়গায় থাকা কোনও ডিবি এবং পরিবেশগত সংস্করণীকরণ প্রক্রিয়া যাচাই করা উচিত should প্রত্যাশার মতো কাজ করছে

যদি বিল্ড বা স্থাপনার সময়গুলি অতিরিক্ত হয় তবে শারীরিক বা সফ্টওয়্যার র‌্যাম ডিস্ক, দ্রুত ইন্টারনেট সংযোগ, সমান্তরাল বিল্ড ইত্যাদির সাহায্যে এই সমস্যাগুলি থেকে কিছুটা দূরে সরিয়ে নিয়ে যাওয়া বিবেচনা করুন, আপনি দ্রুত বিল্ড ব্রেকগুলি চিহ্নিত করে যে সময় সাশ্রয় করবেন সেই সময় হার্ডওয়ারের ব্যয়কে খুব দ্রুত সীমাবদ্ধ করতে চলেছে ।


1

প্রতিদিনের বিল্ডগুলি গুরুত্বপূর্ণ নয়। সর্বদা সফল যে দৈনিক বিল্ডগুলি (বা এটি যেখানে এটি কেবল এক ঘন্টার জন্যই ভেঙে যায়)। Build০% সময়টি যখন বিল্ডটি ভেঙে যায় তখন সিআই থাকা খুব কার্যকর নয়, কারণ জিনিসটি বেশিরভাগ ক্ষেত্রে নষ্ট হয়ে গেলে এটি আপনাকে একটি ত্রুটি সনাক্ত করতে সহায়তা করে না।


0

আমি মনে করি এটি স্টেজিং সার্ভারে দৈনিক বিল্ড, পরীক্ষা এবং মোতায়েন করা উচিত।

'ডেইলি বিল্ড' এর পিছনে ধারণাটি সর্বদা প্রস্তুত থাকা যা পরীক্ষকগণ এবং প্রকল্প পরিচালকরা চালাতে পারেন যাতে প্রকল্পের আসল অবস্থা কী তা প্রত্যেকেরই ধারণা থাকে।

অতীতে 'ডেইলি বিল্ড'-এর পরে ডেস্কটপ অ্যাপ্লিকেশনগুলির সাথে একজন পরীক্ষক বা প্রকল্প পরিচালক তত্ক্ষণাত্ অ্যাপটি চালাতে পারেন যাতে কোনও মোতায়েনের পদক্ষেপের কথা উল্লেখ করা হয়নি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.