কীভাবে একটি আধুনিক সিআই / সিডি পাইপলাইন তৈরি করবেন

বিনামূল্যে এবং হোস্টেড পরিষেবাগুলি ব্যবহার করুন Use

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

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

  1. একটি ছোট পাইথন প্রোগ্রাম লিখুন (হ্যালো ওয়ার্ল্ড নয়)
  2. প্রোগ্রামটির জন্য কিছু স্বয়ংক্রিয় পরীক্ষা যুক্ত করুন
  3. আপনার কোডটি গিটহাবে পুশ করুন
  4. ট্র্যাভিস সিআই সেট আপ করুন যাতে আপনার স্বয়ংক্রিয় পরীক্ষাগুলি অবিচ্ছিন্নভাবে চলতে পারে
  5. অবিচ্ছিন্নভাবে আপনার কোডের মান পরীক্ষা করতে আরও ভাল কোড হাব সেট আপ করুন
  6. পাইথন প্রোগ্রামটিকে একটি ওয়েব অ্যাপ্লিকেশনে পরিণত করুন
  7. ওয়েব অ্যাপের জন্য একটি ডকার চিত্র তৈরি করুন
  8. ডকার চিত্রটিতে ডকার ইমেজ স্লাইড করুন
  9. হিরোকুতে ডকার চিত্র স্থাপন করুন

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

সম্পূর্ণ প্রকাশ: আমি বেটার কোড হাব দলের অন্যতম বিকাশকারী।

আগস্ট 2017 আপডেট করুন: কোডফ্রেশ থেকে ইরান বার্লেভ.ও লিঙ্কডইনে একটি ছোট ভিডিও পোস্ট করেছেন যা দেখায় যে কোডফ্রেশ কীভাবে এই টিউটোরিয়ালে বর্ণিত কিছু বিল্ডিং ব্লককে প্রতিস্থাপন করতে পারে। যেহেতু দুটি সফ্টওয়্যার পণ্য একই নয়, বিকাশ পাইপলাইনগুলিও পৃথক হতে পারে। একটি আধুনিক সিআই / সিডি পাইপলাইনের বিকল্প বাস্তবায়নের জন্য ইরানের ভিডিও দেখতে ভুলবেন না।

পদক্ষেপ 1: একটু বাজ জেনারেটর লিখুন

আমাদের একটি ছোট্ট সফটওয়্যার দরকার যা পাইপলাইনের সমস্ত ধাপে ল্যাপটপ থেকে ক্লাউড পর্যন্ত যায়। আমাদের ক্ষেত্রে, এই সফ্টওয়্যারটি পাইথনে লেখা একটি ছোট সিআই / সিডি বাজ জেনারেটর প্রোগ্রাম।

একটি নতুন ডিরেক্টরি তৈরি করুন (আমরা এটি উদাহরণস্বরূপ "cicd-buzz" বলি)। "Buzz" নাম সহ এই ডিরেক্টরিতে অন্য ডিরেক্টরি তৈরি করুন এবং "জেনারেটর.পি" নামের একটি ফাইলে এই ডিরেক্টরিতে নিম্নলিখিত স্নিপেট সংরক্ষণ করুন।

একই ডিরেক্টরিতে, "__init__.py" নাম সহ একটি নতুন খালি ফাইল তৈরি করুন। আপনার প্রকল্পের কাঠামোটি এখন দেখতে এইরকম হওয়া উচিত:

সিডি-বাজ / হাম / __init__.py জেনারেটর.পি

"বাজ" ডিরেক্টরিতে কমান্ড লাইন থেকে আপনার পাইথন স্ক্রিপ্টটি চালানো উচিত:

[সিআইসিডি-বুজ / গুঞ্জন] $ পাইথন জেনারেটর.পি প্রান্ত থেকে শেষ বিকাশকারীরা ক্রমাগত পরীক্ষা বাড়ায়

কয়েকবার চেষ্টা করে দেখুন, মজাদার:

[সিআইসিডি-বুজ / গুঞ্জন] $ পাইথন জেনারেটর.পি সম্পূর্ণ অবিচ্ছিন্ন উন্নতি বিকাশকারীদের ব্যাপকভাবে উন্নতি করে [সিআইসিডি-বুজ / গুজ] y পাইথন জেনারেটর.পি আধুনিক বিকাশকারীরা ধারাবাহিক পরীক্ষার উল্লেখযোগ্যভাবে উন্নতি করে

পদক্ষেপ 2: স্বয়ংক্রিয় পরীক্ষা যুক্ত করুন

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

পরীক্ষা চালানোর জন্য আমরা "পাইয়েস্ট" ফ্রেমওয়ার্ক ব্যবহার করি। পাইস্ট ইনস্টল করতে আমরা ভার্চুয়াল পাইথন এনভায়রনমেন্ট ("virtualenv") ব্যবহার করি। চিন্তা করবেন না, আমি যা বলেছি তার চেয়ে সহজ। প্রথমে নিশ্চিত করুন যে ভার্চুয়ালেনভ ইনস্টল হয়েছে যাতে আপনি আপনার প্রকল্প ডিরেক্টরিতে নিম্নলিখিত কমান্ডটি চালাতে পারেন:

[সিসিডি-গুঞ্জন] $ ভ্যুচুয়ালেনভ ভেন্ট

এটিতে একটি নতুন ভেন্ট ডিরেক্টরি তৈরি করা উচিত। এই পরিবেশটি ব্যবহার শুরু করতে:

[সিআইসিডি-বুজ] $ উত্স ভেনভ / বিন / অ্যাক্টিভেট (ভেনভ) [সিসিডি-বুজ] $

এরপরে, "depend.txt" নামে একটি নতুন ফাইল তৈরি করুন যা সর্বশেষ নির্ভরতা তালিকাবদ্ধ করে:

পাইস্ট == 3.0.6

অনুরোধ ফাইলে তালিকাভুক্ত নির্ভরতা ডাউনলোড করতে আপনার অবশ্যই "পাইপ" কমান্ডটি চালাতে হবে:

(ভেনভ) [সিসিডি-বুজ] $ পাইপ ইনস্টল করুন -r প্রয়োজনীয়তা। txt xt

উপরের সমস্ত কিছু করার পরে, আপনার প্রকল্প ডিরেক্টরিটির মূলটি দেখতে এমন হওয়া উচিত:

সিডি-বাজ / গুঞ্জন / প্রয়োজনীয়তা xt টেক্সট পরীক্ষা / ভেনভ /

ভার্চুয়াল পরিবেশে, আপনি এখন "টেস্ট_জিনেটর.পি" ফাইলটিতে ইউনিট পরীক্ষা চালাতে পারেন:

(ভেনভ) [সিসিডি-বুজ] $ পাইথন-মি পাইস্ট-ভি টেস্টস / টেস্ট_জেনেরেটর.পি

আউটপুটটি দেখতে কিছুটা দেখতে পাওয়া উচিত:

========== পরীক্ষার অধিবেশন শুরু হয় ======== প্ল্যাটফর্ম ডারউইন - পাইথন ২.7.১০, পাইস্ট -৩.০.,, পাই -১.৪.৩২, প্লাগি -০.৪.০ - / ব্যবহারকারী / রব / প্রকল্পগুলি / ওয়ার্কস্পেস / সিসিডি-বুজ / ভেনভ / বিন / পাইথন ক্যাশেডির:। ক্যাশে রুটডির: / ইউজার / রব / প্রজেক্টস / ওয়ার্কস্পেস / সিআইসিডি-বুজ, ইনফাইল: সংগ্রহ করা 3 টি আইটেম
টেস্ট / টেস্ট_জেনেরেটর.পি :: টেস্ট_সাম্পল_সিংল_ পাসওয়ার্ড টেস্ট / টেস্ট_জেনারেটর.পি :: টেস্ট_সাম্পল_ মাল্টিপল_ওয়ার্ডস পাসড টেস্টস / টেস্ট_জেনেরেটর.পি :: টেস্ট_জেনারেট_বজ_উফ_এট_লাইস্ট_ফাইভ_ওয়ার্ডস পাস
=========== ০.০২ সেকেন্ডে পাস করেছেন =========

পদক্ষেপ 3: গিটহাবে কোড প্রবেশ করান

গিটহাবে লগ ইন করুন (আপনার যদি ইতিমধ্যে একটি না থাকে তবে প্রথমে একটি অ্যাকাউন্ট তৈরি করুন) এবং "সিসিডি-বুজ" নামে একটি নতুন পাবলিক রিপোজিটরি তৈরি করুন।

আপনার প্রকল্প ডিরেক্টরিতে, ".gitignore" নামে একটি নতুন ফাইল তৈরি করুন যাতে কেবল একটি লাইন থাকে:

Venv

এটি গিটকে আমাদের রেপোতে ভার্চুয়ালেনভ যোগ করতে বাধা দেয়। এখন সময় স্থানীয়ভাবে গিটকে আরম্ভ করার এবং আপনার কোডটি গিটহাবে প্রেরণ করার:

[সিসিডি-বুজ] $ গিট ইনিম [সিসিডি-বুজ] it গিট অ্যাড * [সিসিডি-বুজ] it গিট কমিট-এম "ফার্স্ট কমিট" [সিসিডি-বুজ] it গিট রিমোট অরিজিন git@github.com: /cicd-buzz.git [cicd-buzz] it গিট পুশ -u উত্স মাস্টার

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

পদক্ষেপ 4: প্রতিটি প্রতিশ্রুতিতে পরীক্ষা চালাতে ট্র্যাভিস সিআইকে সংযুক্ত করুন

ট্র্যাভিস সিআই ক্রমাগত সংহতকরণের জন্য একটি হোস্টেড পরিষেবা। এটি সর্বজনীন গিটহাব সংগ্রহস্থলের জন্য বিনামূল্যে। আপনি যখন ট্র্যাভিস সিআই অ্যাকাউন্ট সেট আপ করেন, আপনাকে যা করতে হবে তা হল https://travis-ci.org এ গিয়ে আপনার গিটহাব শংসাপত্রগুলি দিয়ে লগ ইন করুন।

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

ট্র্যাভিস সিআই সক্ষম করার শেষ পদক্ষেপটি হল আপনার প্রকল্প ডিরেক্টরিটির মূলটিতে একটি ট্রাভিস.আইএমএল ফাইল যুক্ত করা। আমাদের বাজ জেনারেটরের জন্য এই ফাইলটি থাকা উচিত:

ভাষা: পাইথন লিপি: - পাইথন-মি পাইস্টেভ -v

গিটে ফাইল যুক্ত করুন, পরিবর্তনগুলি প্রয়োগ করুন এবং তাদের প্রতিশ্রুতিবদ্ধ করুন:

[সিআইসিডি-বুজ] $ গিট অ্যাড। ট্র্যাভিস.আইএমএল [সিসিডি-বুজ] it গিট কমিট-এম "ট্র্যাভিস সিআই কনফিগারেশন যুক্ত করুন" [সিআইসিডি-বুজ] it গিট পুশ

ট্র্যাভিস সিআই ড্যাশবোর্ডে যান। কিছুক্ষণ পরে ট্র্যাভিসের আপনার কোড পরিবর্তনগুলি লক্ষ্য করা উচিত এবং বিল্ড / পরীক্ষার প্রক্রিয়া শুরু করা উচিত। আউটপুট লগ ইউনিট পরীক্ষার সম্পাদন দেখায়:

পদক্ষেপ 5: আপনার পাইপলাইনে আরও ভাল কোড হাব যুক্ত করুন

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

ট্র্যাভিস সিআই-র মতো, বেটার কোড হাব এমন একটি পরিষেবা যা গিটহাবের সাথে নির্বিঘ্নে সংহত করে। এটি আমাদের রেপোতে সংযুক্ত করতে, https://bettercodehub.com এ যান এবং ফ্রি বলে লগইন বোতামটি নির্বাচন করুন।

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

বেটার কোড হাব-এ বিশ্লেষণ রিপোর্টের সূচনা

আপনি যদি চান যে আরও ভাল কোড হাব আপনার রেপোতে প্রতিটি ধাক্কা এবং চালানোর অনুরোধটি চালাবে এবং ট্র্যাভিস সিআইয়ের মতোই, রেপো কার্ডের নীচে বামদিকে প্রদর্শিত পুল অনুরোধ আইকনটি সক্ষম বা অক্ষম করুন:

স্বয়ংক্রিয় ধাক্কা / PR বিশ্লেষণ এখন সক্রিয় করা হয়েছে

পদক্ষেপ:: বাজ জেনারেটরটিকে একটি সাধারণ ওয়েব অ্যাপে পরিণত করুন

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

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

আপনার প্রয়োজনীয়তা। টেক্সট ফাইলটিতে ফ্লাস্ক কাঠামোর জন্য অন্য লাইন যুক্ত করুন:

পাইস্টেস্ট == 3.0.6 ফ্লাস্ক == 0.12

এবং নতুন নির্ভরতা ইনস্টল করুন:

(ভেনভ) [সিসিডি-বুজ] $ পাইপ ইনস্টল করুন -r প্রয়োজনীয়তা। txt xt

আপনি এখন আপনার ল্যাপটপে ওয়েব অ্যাপ চালাতে পারেন:

[সিআইসিডি-গুঞ্জন] $ পাইথন অ্যাপ.পি * পোস্টটি http ://0.0.0.0:5000/ এ চালায় (প্রোগ্রামটি থেকে বেরিয়ে আসার জন্য CTRL + C টিপুন))

ব্রাউজারে http: // লোকালহোস্ট: 5000 অবস্থানটি খুলুন এবং আপনার সম্পাদনার প্রশংসা করুন। কেবল মজা করার জন্য কয়েকবার রিফ্রেশ ক্লিক করুন।

আপনার প্রতিশ্রুতি যুক্ত করতে এবং আপনার পরিবর্তনগুলি প্রয়োগ করতে ভুলবেন না:

[সিসিডি-বুজ] it গিট অ্যাড অ্যাপ.পি [সিসিডি-বুজ] it গিট অ্যাড প্রয়োজনীয়তা।টেক্সট [সিসিডি-বুজ] $ গিট কমিট-এম "পদক্ষেপ" "[সিসিডি-বুজ] it গিট পুশ

এবং ট্র্যাভিস সিআই এবং আরও ভাল কোড হাব দেখতে মজা করুন!

পদক্ষেপ:: আপনার ওয়েব অ্যাপকে ডকারের সাহায্যে ধার্য করুন

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

মনে করুন আপনার কাজটি ডকারে রয়েছে এবং আপনার প্রকল্প ডিরেক্টরিটির মূলটিতে "ডকফেরফাইল" নামে একটি নতুন ফাইলে নিম্নলিখিতটি যুক্ত করুন:

উপরেরগুলি ডকারকে আলপাইন বেস চিত্র চয়ন করতে, পাইথন এবং পাইপ ইনস্টল করতে এবং আমাদের ওয়েব অ্যাপ্লিকেশন ইনস্টল করার নির্দেশ দেয়। শেষ লাইনটি ডকরকে প্রতিটিবার কনটেইনারটি শুরু করার পরে ওয়েব অ্যাপ্লিকেশন শুরু করার নির্দেশ দেয়।

আপনার এই ডকার কনফিগারেশনটি চিত্র তৈরি করতে এবং শুরু করতে সক্ষম হওয়া উচিত (আপনার অপারেটিং সিস্টেমের কনফিগারেশনের উপর নির্ভর করে আপনাকে নিম্নলিখিত কমান্ডগুলির আগে sudo ইস্যু করতে হতে পারে):

[সিসিডি-বুজ] ock ডকার বিল্ড-সি সি সি ডি-বাজ। [সিআইসিডি-বুজ] $ ডকার রান -পি 5000: 5000 --rm -it সিসিডি-বুজ

একটি ব্রাউজারে ফলাফল প্রশংসা:

স্থানীয় ডকার পাত্রে চালিত সিআই / সিডি বাজ জেনারেটর

আবার, আপনার প্রতিশ্রুতি যুক্ত করতে এবং আপনার পরিবর্তনগুলি ঠেলাতে ভুলবেন না:

[সিসিডি-বুজ] Add গিট ডকফেরফিল [সিসিডি-বুজ] $ গিট কমিট - এম "স্টেপ 7" [সিসিডি-বুজ] $ গিট পুশ

পদক্ষেপ 8: ডকার হাবতে মোতায়েন করুন

আপনার পাত্রে কোনও কেন্দ্রীয় ডকার চিত্র রেজিস্ট্রি, যেমন ডকার হাবের সাথে স্থাপন করে, আপনার পরিবেশকগুলিকে বিভিন্ন পরিবেশে ভাগ করে নেওয়া বা পূর্ববর্তী সংস্করণে ফিরে যাওয়া আরও সহজ। এই পদক্ষেপটি সম্পূর্ণ করার জন্য, আপনাকে https://docker.com এ লগ ইন করতে হবে এবং আপনার প্রকল্প ডিরেক্টরিতে ".travis" নামে একটি নতুন ডিরেক্টরিতে "Deploy_dockerhub.sh" নামে একটি ফাইলের সাথে নিম্নলিখিতটি যুক্ত করতে হবে:

উপরের স্ক্রিপ্টটি প্রতিটি পাইপলাইন বিল্ডের শেষে ট্র্যাভিস সিআই কল করে এবং সেই পাইপলাইন বিল্ডের জন্য একটি নতুন বাস্তবায়নযোগ্য ডকার চিত্র তৈরি করে। স্ক্রিপ্টটির জন্য 3 পরিবেশের ভেরিয়েবলের প্রয়োজন, যা আপনি ট্র্যাভিস সিআই দিয়ে আপনার সিআইসিডি-বাজ-রেপোর "সেটিংস" ভিউতে সেট করতে পারেন:

ট্রকার সিআই এনভায়রনমেন্ট ভেরিয়েবলগুলি ডকারের জন্য

ট্র্যাভিস সিআই আপনাকে ডকার হাবের গিটহাবের সংগ্রহস্থলের প্রতিটি কোড পুশ করার জন্য আপনার ডকার চিত্র সরবরাহ করার জন্য, ".travis.yml" ফাইলটি পরিবর্তন করুন যাতে এটি দেখতে দেখতে:

এই পরিবর্তনগুলি প্রয়োগ এবং প্রয়োগ করার পরে (এবং ট্র্যাভিস সিআই সম্পূর্ণ পাইপলাইনটি সম্পূর্ণ করার অপেক্ষায়) আপনার ডকার ইমেজ সরাসরি ডকার হাব থেকে চালু করতে সক্ষম হবেন:

[সিআইসিডি-গুঞ্জন] $ ডকার রান -২৫০০: 5000 --rm -it / সিআইসিডি-গুঞ্জন: সর্বশেষ

পদক্ষেপ 9: হেরোকুতে মোতায়েন করুন

হিরোকু একটি ছোট এবং স্কেলযোগ্য ওয়েব অ্যাপ্লিকেশন হোস্ট করার জন্য একটি ক্লাউড প্ল্যাটফর্ম। একটি বিনামূল্যে শুল্ক আছে। সুতরাং https://signup.heroku.com এ যান এবং আপনার যদি ইতিমধ্যে না থাকে তবে সাইন ইন করুন।

হেরোকু কমান্ড লাইনটি ইউটিলিটি ইনস্টল করুন এবং আপনার প্রকল্প ডিরেক্টরিটির মূল থেকে নিম্নলিখিত কমান্ডগুলি চালনা করুন:

[সিআইসিডি-বুজ] $ হিরকু লগইন [সিসিডি-বুজ] $ হিরকু অ্যাপ তৈরি করুন ... সম্পন্ন হয়েছে, ath ফ্যাথমলেস-ইনলেট -৩৩২২২ https://fathomless-inlet-53225.herokuapp.com/ | https://git.heroku.com/fathomless-inlet-53225.git [সিআইসিডি-বুজ] $ হিরকু-প্লাগইনস: ইনস্টল করুন @ হেরকু-ক্লি / প্লাগইন-ধারক-রেজিস্ট্রি [সিআইসিডি-বুজ] $ হিরকু ধারক: লগইন [সি সি সি ডি -বাজ] $ হিরকু ধারক: পুশ ওয়েব [সিসিডি-বুজ] $ হিরকু ধারক: ওয়েব ভাগ করুন

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

হিরোকুতে সিআই / সিডি বাজ জেনারেটর চলছে

মনে রাখবেন যে হিরকু কনটেইনার: পুশ ওয়েব কমান্ড হিরোকু প্ল্যাটফর্মে একই কন্টেইনারটি স্থানান্তর করে যা আপনি ডকার হাব রেজিস্ট্রিতে স্থানান্তর করেছেন।

আমাদের প্রকল্পের মূল শাখার প্রতিটি বিল্ডের স্থাপনা স্বয়ংক্রিয় করতে .travis ডিরেক্টরিতে Deploy_heroku.sh ফাইলটিতে নিম্নলিখিতটি যুক্ত করুন:

আপনার ".travis.yml" ফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করুন:

after_success: - sh .travis / deploy_dockerhub.sh - পরীক্ষা "$ TRAVIS_BRANCH" = "মাস্টার" && sh .travis / deploy_heroku.sh

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

এই পরিবর্তনগুলি প্রয়োগ করুন এবং সেগুলি গিটহাবের দিকে ঠেলাবেন। সফলভাবে তৈরির পরে, একটি নতুন ডকার চিত্র এখন ডকার হাব এবং হিরোকুতে স্থানান্তর করা উচিত।

পদক্ষেপ 10: সিআই / সিডি এফটিডাব্লু!

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

  1. প্রথমে ফাংশনটির জন্য একটি নতুন সমস্যা তৈরি করুন: https://github.com/robvenderleek/cicd-buzz/issues/1
  2. এই টিকিটের জন্য গিট শাখা তৈরি করুন: https://github.com/robvenderleek/cicd-buzz/tree/issue-1
  3. * কোডিং ম্যাজিক এখানে ঘটে *
  4. ট্র্যাভিস সিআই এবং আরও ভাল কোড হাবের প্রতিক্রিয়া নজর রাখুন: https://github.com/robvenderleek/cicd-buzz/commits/issue-1
  5. স্থানীয়ভাবে সর্বশেষতম ডকার চিত্র চালিয়ে আপনার অ্যাপ্লিকেশনটির একটি চলমান উদাহরণ পরীক্ষা করুন: ডকার চালান --rm -p5000: 5000 -it robvenderleek / cicd-buzz: সমস্যা -1 আপনি এই ধারকটি অন্যদের সাথেও ভাগ করতে পারেন।
  6. আপনি যদি নতুন ফাংশন নিয়ে সন্তুষ্ট হন তবে একটি টানুন অনুরোধটি খুলুন এবং আপনার কোডটি সিআই / সিডি পাইপলাইন থেকে উত্পাদনে প্রেরণ করা যেতে পারে: https://github.com/robvenderleek/cicd-buzz/pull/2
স্থানীয় ডকার পাত্রে চালিত সিআই / সিডি বাজ জেনারেটরের বৈশিষ্ট্য শাখা

কোডিং এবং প্রেরণে মজা করুন!