এমন কোন সিআই সরঞ্জাম আছে যা শাখার মান স্তরে কোনও চাপ না দেওয়ার গ্যারান্টি দেয়?


10

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

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

এমন কোনও সিআই সরঞ্জাম রয়েছে যা প্রকৃতপক্ষে এই জাতীয় প্রবণতাগুলি ঘটতে রোধ করতে সক্ষম , যা পূর্ব-প্রতিশ্রুত QA যাচাইকরণ সম্পাদন করবে এবং কেবল কমিটের অনুমতি দেবে যখন সংশ্লিষ্ট কমিটসের সাথে আপডেট হওয়া কোডবেস সেই প্রাক-কমিট QA যাচাইকরণগুলি পাস করবে, সুতরাং ন্যূনতম গ্যারান্টি দেয় শাখার মান স্তর?

আপডেট: অনুমানটি হ'ল যথাযথ কভারেজ সহ উপযুক্ত স্বয়ংক্রিয় QA যাচাইকরণগুলি সিআই সরঞ্জাম (গুলি) দ্বারা আবেদনের জন্য উপলব্ধ উপযুক্ত রেজিস্ট্রেশন সনাক্ত করতে সক্ষম হতে পারে be


আমি এই প্রশ্নটি বোঝার সঠিক উপায়টি সম্পর্কে (এবং নিজের উত্তরটিতে নিজের পরামর্শ)) যদি আমি "তদন্তের পরে" "মনিটরিং" প্রতিস্থাপন করি এবং "তাদের ঘটতে বাধা দেয়" দিয়ে "প্রতিরোধ" করি, তখন কি কমবেশি একই প্রশ্ন হবে? এছাড়াও, পার্থক্যটি ব্যাখ্যা করতে আপনি কিছু উদাহরণের দৃশ্যের যোগ করতে পারেন?
Pierre.Vriens

@ পিয়ের.ভ্রিয়েনস এটি কি আরও ভাল?
ড্যান কর্নিলিস্কু

উত্তর:


6

যতদূর আমি বলতে পারি, আপনি এমন একটি সরঞ্জাম সন্ধান করছেন যা এই বিল্ডটি ভেঙে দেওয়া কমিটিকে প্রত্যাখ্যান করবে — একটি সিআই সরঞ্জাম সম্ভবত আপনার কোডটি ঠিক করে সংশোধনগুলি রোধ করতে সক্ষম হবে না, তবে এটি আপনাকে খারাপ কোড যুক্ত করা থেকে বিরত রাখতে পারে ভান্ডার থেকে।

আটলশিয়ানের গিট হুকের কয়েকটি আকর্ষণীয় অ্যাপ্লিকেশন রয়েছে :

সার্ভার-সাইড প্রি-রিসিভ হুকগুলি ক্রমাগত সংহতকরণের বিশেষত শক্তিশালী প্রশংসা কারণ তারা কোডটি নির্দিষ্ট শর্তগুলি যেমন - অভিজাত নিনজা অভিভাবকদের মতো খারাপ কোড থেকে রক্ষা না করে তবে ডেভেলপারদেরকে কোডকে মাস্টার হিসাবে ঠেকানো থেকে বিরত রাখতে পারে।

আপনি যদি গিট ব্যবহার করছেন তবে হুকগুলি খুব শক্তিশালী (এবং এসভিএন , মার্চুরিয়াল এবং অন্যান্য সংস্করণ নিয়ন্ত্রণ ব্যবস্থার জন্য একই রকম হুক রয়েছে ) এবং প্রাক-কমিট চেকগুলি চালানোর জন্য আপনি এগুলি ব্যবহার করতে পারেন find

গিট ডকুমেন্টেশনের একটি ধাক্কা খাড়া করার জন্য একটি হুক তৈরি করার একটি পৃষ্ঠা রয়েছে যদি তারা কোনও নির্দিষ্ট মানদণ্ড পূরণ না করে যা সহজেই এই ব্যবহারের ক্ষেত্রে মানিয়ে নিতে পারে।

যাইহোক, অনেক লোক যুক্তি দিবে যে কমিটগুলি প্রত্যাখ্যান করা একটি শাখায় খারাপ ধারণাfeature — বাস্তবে বাগটি ঠিক করার পরিবর্তে কোনও কারণে বিল্ডটি ভেঙে গেলে আপনি কেবল নিজের সিআই সিস্টেমের বিরুদ্ধে লড়াইয়ে সময় নষ্ট করবেন।

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


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

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

@ অ্যান্ডি শিন: হ্যাঁ, আমি দেখতে পেয়েছি যে বেশ কার্যকর — গিটহাব সুরক্ষিত শাখা এবং টান অনুরোধগুলির উপর চেকগুলিও সরবরাহ করে , যা প্রায়শই সহায়ক।
অরোরা 10001

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

2

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

যদি কোনও শাখা তার প্রবাহের সাথে (যেখানে পিআর একীভূত হয়) সাথে আপ-টু-ডেট থাকে এবং এর পরীক্ষাগুলি পাস হয়, তবে তারা মার্জ হওয়ার পরেও পাস করবে; একত্রীকরণের পরে লক্ষ্য শাখার রাজ্যটি মার্জ হওয়ার আগে উত্স শাখার রাজ্যের সাথে মিলবে।

কোনও পিআর-তে উত্স শাখাটি টার্গেটের সাথে আপ-টু-ডেট রয়েছে কিনা এবং যদি এটির পাসিং সিআই বিল্ড থাকে তবে উভয়ই বোঝানো সাধারণত (বিশেষত ব্যবহৃত সরঞ্জামগুলির উপর নির্ভর করে) কঠিন নয়। আপনি এটি অনুরোধটি মার্জ করার জন্য প্রয়োজনীয়তার (নীতি দ্বারা এবং / অথবা সফ্টওয়্যার দ্বারা প্রয়োগ) হিসাবে ব্যবহার করতে পারেন।


"যদি কোনও শাখা তার প্রবাহের সাথে (যেখানে পিআর সংযুক্ত হয়ে থাকে) সাথে আপডেট থাকে এবং এর পরীক্ষাগুলি পাস হয়, তবে তারা এখনও সংযুক্তির পরে পাস করবে" - কেন? একত্রিত হওয়া একটি বিরতি, এটি অজানা নিয়ে আসে। দ্বন্দ্বগুলির মতো - কোড সমাধান না হওয়া পর্যন্ত কোডটি তৈরি নাও করতে পারে। আপনি প্রয়োজন পরীক্ষা এবং নিশ্চিত করেন যে তারা কোনো শাখা একত্রীকরণ জন্য পাস চালানোর জন্য। যদি আপনি এটি নিরাপদে খেলতে চান তবে আমি দ্রুত-ফরওয়ার্ডের জন্যও বলব। Apartsw.com/insights/2016/11/16/…
ড্যান

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

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

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

আমার বক্তব্যটি হ'ল এটি সিআই সরঞ্জাম সেই সুরক্ষা সরবরাহ করছে না, এটি আপনি লিখেছেন পরীক্ষাগুলি লিখে। সিআই সরঞ্জাম আপনার সরবরাহ করা পরীক্ষার বাইরে কোনও গ্যারান্টি সরবরাহ করতে পারে না।
এড্রিয়ান

1

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


কিন্তু রিটভেল্ড একটি সিআই সরঞ্জাম নয়, একটি সহযোগী কোড পর্যালোচনা সরঞ্জাম বলে মনে হচ্ছে, আমি কি কিছু মিস করছি? আমি এটি যা দেখেছিলাম: github.com/rietveld-codereview/rietveld
ড্যান

জুউল প্রকৃতপক্ষে সম্পর্কিত বলে মনে হচ্ছে, আমি এটি আরও কাছাকাছি অধ্যয়ন করব।
ড্যান কর্নিলিস্কু

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

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

1

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


এটি কাজ করে তবে কেবলমাত্র যদি আপনি পূর্বের মার্জটি সম্পন্ন হওয়ার আগে ২ য় মার্জকে কিউএ চেক শুরু করতে অনুমতি না দেন, অন্যথায় ২ য় মার্জ ১ ম প্রথমটি দেখতে পাবে না, যাতে রিগ্রেশনের জায়গা ছেড়ে যায়। অন্য কথায় মার্জগুলি (তাদের কিউএ চেক সহ) অবশ্যই পুরো সিরিয়ালাইজড হওয়া উচিত, যা বড় দলের পক্ষে স্কেল হয় না।
ড্যান কর্নিলিস্কু

0

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

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

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

সরঞ্জামটি সহজেই স্কেল করার জন্যও তৈরি করা হয়েছিল - আগত প্রার্থীদের পরিবর্তনের খুব বেশি হার বজায় রাখতে এবং একই ইন্টিগ্রেশন শাখায় কাজ করা 100s / অংশ বিকাশকারীকে সমর্থন করতে সক্ষম।

দাবি অস্বীকার: আমি সরঞ্জামটির লেখক এবং এটি সরবরাহকারী সংস্থার প্রতিষ্ঠাতা। বিজ্ঞাপনের জন্য দুঃখিত।


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


স্ন্যাপসিআই এটিও করেছিল। চেরা।
পল_h

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

ড্যান, পোলিং নং, হুকস। এবং একটি স্বল্প-স্থায়ী জনসংযোগ শাখায় যা এখনও ট্রাঙ্ক / মাস্টারে মার্জড হয়নি - ট্রাঙ্কব্যাসেডেভালপমেন্ট.com
changers
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.