সর্বোত্তম সমাধানটি হ'ল আপনার সিআই সিস্টেমটি সাংগঠনিকভাবে গুরুত্বপূর্ণ সমস্ত বিল্ড (রিলিজ, রিলিজ প্রার্থী ইত্যাদি ...) এর একচেটিয়া ব্যবহার করা।
এটি নিয়মিতভাবে প্রকাশিত বাইনারিগুলিকে ভান্ডারগুলিতে প্রকৃতপক্ষে বাইনারিগুলি সংরক্ষণ না করেই সংগ্রহস্থলের সামগ্রীর সাথে যুক্ত করে।
উদাহরণস্বরূপ, আপনি যদি এসভিএন ব্যবহার করছেন তবে শাখা-প্রধান সাংগঠনিক স্কিম ব্যবহার করুন; / ট্রাঙ্কে সমস্ত দিন-দিন বিকাশ করুন এবং এটি প্রস্তুত হয়ে গেলে প্রতিটি প্রকাশের জন্য একটি / ট্যাগ তৈরি করুন।
ট্যাগগুলি এবং ট্রাঙ্ক থেকে তৈরি করতে আপনার সিআই সিস্টেমটি কনফিগার করুন এবং এটিকে এমন একটি ডিরেক্টরি ডিরেক্টরিতে আউটপুট লিখতে পান যার কাঠামোটি রেপোর শীর্ষ স্তরের কাঠামোটি আয়না করে:
- / তৈরী করে / ট্রাঙ্ক / [Rev] [তারিখ] [build_id] /
- / তৈরী করে / ট্যাগ / release_0_1_3beta4 / [Rev] [তারিখ] [build_id] /
বিল্ড সিস্টেমে / বিল্ডস / ট্রাঙ্ক / ডিরেক্টরিটিকে একটি বিজ্ঞপ্তি বাফারের মতো আচরণ করতে হবে , শেষ এন বিল্ডগুলি সংরক্ষণ করে, পুরানো বিল্ডগুলি যেমন যায় তেমন মুছে ফেলা হয়।
/ তৈরী করে / ট্যাগ / ডিরেক্টরির অন্যদিকে, একটি স্থায়ী দোকান হয়। বিল্ড শিল্পকর্মগুলি নিজেরাই ডিরেক্টরিতে নিম্নলিখিত স্কিম অনুযায়ী উত্পন্ন নাম সহ সংরক্ষণ করা হয়:
যেখানে [Rev] SVN পুনর্বিবেচনা আইডি নয়, [DATE] YYYYMMDD ফর্ম্যাট তারিখ, এবং [build_id] অগ্রে প্রথম বিল্ড থেকে বৃদ্ধিশীল, একটি 3 অঙ্ক অনন্য কাউন্টার, প্রতিটি বিল্ড ডিরেক্টরি অনন্য করে।
উপরে বর্ণিত প্রক্রিয়াটি আপনাকে নিম্নলিখিত সুবিধাগুলি দেয়:
বিল্ড আর্টিক্টসগুলি উত্সটি উত্পন্ন করে এমন পদ্ধতিতে বাঁধা থাকে যা আপনি কোনও নির্দিষ্ট বিল্ড আর্টিক্টের উত্স খুব সহজেই খুঁজে পেতে পারেন (এবং বিপরীতে)।
এটি আরও রিলিজ অটোমেশনের জন্য ভিত্তি গঠন করে। উদাহরণস্বরূপ, মুক্তির দস্তাবেজগুলির স্বয়ংক্রিয় উত্পন্নকরণ ...