GitHub অ্যাকশনের মতো কন্টিনিউয়াস ইন্টিগ্রেশন সিস্টেমে কীভাবে Lighthouse যোগ করতে হয়।
Lighthouse CI হল কন্টিনিউয়াস ইন্টিগ্রেশনের সময় Lighthouse ব্যবহার করার জন্য টুলের একটি স্যুট। Lighthouse CI-কে ডেভেলপার ওয়ার্কফ্লোতে বিভিন্ন উপায়ে অন্তর্ভুক্ত করা যেতে পারে। এই নির্দেশিকায় নিম্নলিখিত বিষয়গুলি কভার করা হয়েছে:
- Lighthouse CI CLI ব্যবহার করে।
- Lighthouse CI চালানোর জন্য আপনার CI প্রোভাইডার কনফিগার করা।
- Lighthouse CI-এর জন্য GitHub অ্যাকশন এবং স্ট্যাটাস চেক সেট-আপ করা। এটি GitHub পুল অনুরোধে Lighthouse ফলাফল অটোমেটিক দেখাবে।
- Lighthouse রিপোর্টের জন্য পারফর্ম্যান্স ড্যাশবোর্ড ও ডেটা স্টোর তৈরি করা।
এক নজরে
Lighthouse CI হল ফ্রি টুলের একটি স্যুট যা পারফর্ম্যান্স মনিটর করার জন্য Lighthouse ব্যবহার করার সুবিধা প্রদান করে। একটি Lighthouse রিপোর্ট, কোনও ওয়েব পেজ রান করার সময় তার পারফর্ম্যান্সের স্ন্যাপশট প্রদান করে; Lighthouse CI দেখায় যে সময়ের সাথে সাথে এই ফলাফল কীভাবে পরিবর্তিত হয়েছে। এটি নির্দিষ্ট কোড পরিবর্তনের প্রভাব শনাক্ত করতে বা ক্রমাগত ইন্টিগ্রেশন প্রসেসের সময় পারফর্ম্যান্স থ্রেশহোল্ড পূরণ হয়েছে কিনা তা নিশ্চিত করতে ব্যবহার করা যেতে পারে। পারফর্ম্যান্স মনিটর করা Lighthouse CI-এর সবচেয়ে সাধারণ ব্যবহার হলেও, Lighthouse রিপোর্টের অন্যান্য দিক মনিটর করতেও এটি ব্যবহার করা যেতে পারে - যেমন, SEO বা অ্যাক্সেসিবিলিটি।
Lighthouse CI-এর মূল কার্যকারিতা Lighthouse CI কমান্ড লাইন ইন্টারফেসের মাধ্যমে
প্রদান করা হয়। (মনে রাখবেন: এটি Lighthouse
CLI-এর থেকে আলাদা টুল।) Lighthouse CI CLI,
Lighthouse CI ব্যবহার করার জন্য
কমান্ড-এর একটি সেট
প্রদান করে। যেমন, autorun কমান্ড একাধিক
Lighthouse রান এক্সিকিউট করে, Lighthouse রিপোর্টের মধ্যক শনাক্ত করে এবং স্টোরেজের জন্য
রিপোর্ট আপলোড করে। অতিরিক্ত ফ্ল্যাগ পাস করে বা Lighthouse CI-এর কনফিগারেশন ফাইল, lighthouserc.js কাস্টমাইজ করে
এই আচরণ ব্যাপকভাবে কাস্টমাইজ করা যেতে পারে।
Lighthouse CI-এর মূল কার্যকারিতা মূলত Lighthouse CI CLI-তে এনক্যাপসুলেট করা হলেও, Lighthouse CI সাধারণত নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটির মাধ্যমে ব্যবহার করা হয়:
- কন্টিনিউয়াস ইন্টিগ্রেশনের অংশ হিসেবে Lighthouse CI রান করা হচ্ছে
- Lighthouse CI GitHub অ্যাকশন ব্যবহার করা যা প্রতিটি পুল রিকোয়েস্টে রান করে এবং কমেন্ট করে
- Lighthouse Server-এর দেওয়া ড্যাশবোর্ডের মাধ্যমে সময়ের সাথে সাথে পারফর্ম্যান্স ট্র্যাক করা।
এইসব পদ্ধতি Lighthouse CI CLI-এর উপর ভিত্তি করে তৈরি করা হয়েছে।
Lighthouse CI-এর বিকল্পের মধ্যে রয়েছে থার্ড-পার্টি পারফর্ম্যান্স মনিটর করার পরিষেবা অথবা CI প্রসেস চলাকালীন পারফর্ম্যান্স ডেটা সংগ্রহ করার জন্য আপনার নিজস্ব স্ক্রিপ্ট লেখা। আপনি যদি চান যে অন্য কেউ আপনার পারফর্ম্যান্স মনিটরিং সার্ভার এবং টেস্ট ডিভাইস ম্যানেজ করুক, অথবা আপনি যদি বিজ্ঞপ্তি সংক্রান্ত সুবিধা (যেমন ইমেল বা Slack ইন্টিগ্রেশন) চান, তাহলে থার্ড-পার্টি পরিষেবা ব্যবহার করার কথা বিবেচনা করতে পারেন।
স্থানীয়ভাবে Lighthouse CI ব্যবহার করা
এই বিভাগে Lighthouse CI CLI লোকাল লেভেলে কীভাবে রান ও ইনস্টল করতে হয় এবং
lighthouserc.js কীভাবে কনফিগার করতে হয় তা ব্যাখ্যা করা হয়েছে। আপনার lighthouserc.js সঠিকভাবে কনফিগার করা আছে কিনা তা নিশ্চিত করার সবচেয়ে সহজ উপায় হল
স্থানীয়ভাবে Lighthouse CI CLI চালানো।
Lighthouse CI CLI ইনস্টল করুন।
npm install -g @lhci/cliআপনার প্রোজেক্টের রেপোজিটরির রুটে
lighthouserc.jsফাইল প্লেস করার মাধ্যমে Lighthouse CI কনফিগার করা হয়। এই ফাইলটি বাধ্যতামূলক এবং এতে Lighthouse CI সম্পর্কিত কনফিগারেশন তথ্য থাকবে। যদিও Lighthouse CI git রেপো ছাড়াই ব্যবহার করার জন্য কনফিগার করা যেতে পারে, এই নিবন্ধের নির্দেশাবলী ধরে নেয় যে আপনার প্রোজেক্ট রেপো git ব্যবহার করার জন্য কনফিগার করা হয়েছে।আপনার রিপোজিটরির রুটে, একটি
lighthouserc.jsকনফিগারেশন ফাইল তৈরি করুন।touch lighthouserc.jslighthouserc.js-এ নিম্নলিখিত কোড যোগ করুন। এই কোডটি একটি খালি Lighthouse CI কনফিগারেশন। আপনি পরবর্তী ধাপে এই কনফিগারেশনে যোগ করবেন।module.exports = { ci: { collect: { /* Add configuration here */ }, upload: { /* Add configuration here */ }, }, };প্রতিবার Lighthouse CI রান করার সময়, এটি আপনার সাইট দেখানোর জন্য একটি সার্ভার চালু করে। এই সার্ভারটি Lighthouse-কে আপনার সাইট লোড করতে সক্ষম করে, এমনকি অন্য কোনও সার্ভার চলমান না থাকলেও। Lighthouse CI রান করা শেষ হলে, এটি অটোমেটিক সার্ভার বন্ধ করে দেবে। পরিষেবা যাতে সঠিকভাবে কাজ করে তা নিশ্চিত করতে, আপনাকে হয়
staticDistDirঅথবাstartServerCommandপ্রপার্টি কনফিগার করতে হবে।আপনার সাইট স্ট্যাটিক হলে, স্ট্যাটিক ফাইল কোথায় আছে তা উল্লেখ করতে
ci.collectঅবজেক্টেstaticDistDirপ্রপার্টি যোগ করুন। Lighthouse CI আপনার সাইট পরীক্ষা করার সময় এই ফাইলগুলি পরিবেশন করতে নিজস্ব সার্ভার ব্যবহার করবে। আপনার সাইট স্ট্যাটিক না হলে, আপনার সার্ভার চালু করার কমান্ড নির্দেশ করতেci.collectঅবজেক্টেstartServerCommandপ্রপার্টি যোগ করুন। Lighthouse CI টেস্টিংয়ের সময় নতুন সার্ভার প্রসেস শুরু করবে এবং পরে এটি বন্ধ করে দেবে।// Static site example collect: { staticDistDir: './public', }// Dynamic site example collect: { startServerCommand: 'npm run start', }Lighthouse CI-এর Lighthouse-এর সাথে তুলনা করে রান করা উচিত এমন URL(গুলি) নির্দেশ করতে,
ci.collectঅবজেক্টেurlপ্রপার্টি যোগ করুন।urlপ্রপার্টির ভ্যালু URL-এর অ্যারে হিসেবে প্রদান করতে হবে; এই অ্যারেতে এক বা একাধিক URL থাকতে পারে। ডিফল্ট হিসেবে, Lighthouse CI প্রতিটি URL-এর জন্য তিনবার Lighthouse রান করবে।collect: { // ... url: ['http://localhost:8080'] }ci.uploadঅবজেক্টেtargetপ্রপার্টি যোগ করুন এবং ভ্যালু'temporary-public-storage'-এ সেট করুন। Lighthouse CI-এর মাধ্যমে সংগ্রহ করা Lighthouse রিপোর্ট অস্থায়ী পাবলিক স্টোরেজে আপলোড করা হবে। রিপোর্টটি সেখানে সাত দিন থাকবে এবং তারপরে অটোমেটিক মুছে যাবে। এই সেট-আপ গাইড "অস্থায়ী পাবলিক স্টোরেজ" আপলোড করার বিকল্প ব্যবহার করে কারণ এটি সেট-আপ করা সহজ। Lighthouse রিপোর্ট স্টোর করার অন্যান্য উপায় সম্পর্কে জানতে, ডকুমেন্টেশন দেখুন।upload: { target: 'temporary-public-storage', }রিপোর্ট স্টোর করার লোকেশন এইরকম হবে:
https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1580152437799-46441.report.html(এই URL কাজ করবে না কারণ রিপোর্টটি আগেই মুছে ফেলা হয়েছে।)
autorunকমান্ড ব্যবহার করে টার্মিনাল থেকে Lighthouse CI CLI রান করুন। এটি তিনবার 'লাইটহাউস' চালাবে এবং মধ্যক 'লাইটহাউস' রিপোর্ট আপলোড করবে।lhci autorunআপনি Lighthouse CI সঠিকভাবে কনফিগার করে থাকলে, এই কমান্ড রান করলে এই ধরনের আউটপুট পাওয়া যাবে:
✅ .lighthouseci/ directory writable ✅ Configuration file found ✅ Chrome installation found ⚠️ GitHub token not set Healthcheck passed! Started a web server on port 65324... Running Lighthouse 3 time(s) on http://localhost:65324/index.html Run #1...done. Run #2...done. Run #3...done. Done running Lighthouse! Uploading median LHR of http://localhost:65324/index.html...success! Open the report at https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1591720514021-82403.report.html No GitHub token set, skipping GitHub status check. Done running autorun.আপনি কনসোল আউটপুটে
GitHub token not setমেসেজটি উপেক্ষা করতে পারেন। আপনি GitHub অ্যাকশনের সাথে Lighthouse CI ব্যবহার করতে চাইলে, তবেই GitHub টোকেন প্রয়োজন। GitHub অ্যাকশন কীভাবে সেট-আপ করতে হয় তা এই নিবন্ধে পরে ব্যাখ্যা করা হয়েছে।আউটপুটে যে লিঙ্কটি
https://storage.googleapis.com...দিয়ে শুরু হয়, সেটিতে ক্লিক করলে আপনি মিডিয়ান লাইটহাউস রান অনুযায়ী লাইটহাউস রিপোর্ট দেখতে পাবেন।autorun-এর ব্যবহার করা ডিফল্ট সেটিংস কমান্ড লাইন বাlighthouserc.js-এর মাধ্যমে ওভাররাইড করা যেতে পারে। যেমন, নিচে দেওয়াlighthouserc.jsকনফিগারেশন থেকে বোঝা যায় যেautorunযতবার এক্সিকিউট হবে, ততবার পাঁচটি Lighthouse রান সংগ্রহ করতে হবে।numberOfRunsপ্রপার্টি ব্যবহার করতেlighthouserc.jsআপডেট করুন:module.exports = { // ... collect: { numberOfRuns: 5 }, // ... }, };autorunকমান্ড আবার রান করুন:lhci autorunটার্মিনাল আউটপুটে দেখানো উচিত যে ডিফল্ট তিনবারের পরিবর্তে Lighthouse পাঁচবার রান করা হয়েছে:
✅ .lighthouseci/ directory writable ✅ Configuration file found ✅ Chrome installation found ⚠️ GitHub token not set Healthcheck passed! Automatically determined ./dist as `staticDistDir`. Set it explicitly in lighthouserc.json if incorrect. Started a web server on port 64444... Running Lighthouse 5 time(s) on http://localhost:64444/index.html Run #1...done. Run #2...done. Run #3...done. Run #4...done. Run #5...done. Done running Lighthouse! Uploading median LHR of http://localhost:64444/index.html...success! Open the report at https://storage.googleapis.com/lighthouse-infrastructure.appspot.com/reports/1591716944028-6048.report.html No GitHub token set, skipping GitHub status check. Done running autorun.অন্যান্য কনফিগারেশন বিকল্প সম্পর্কে জানতে, Lighthouse CI কনফিগারেশন ডকুমেন্টেশন দেখুন।
Lighthouse CI রান করার জন্য আপনার CI প্রসেস সেট-আপ করুন
আপনার পছন্দের CI টুলের সাথে Lighthouse CI ব্যবহার করা যেতে পারে। Lighthouse CI ডকুমেন্টেশনের আপনার CI প্রোভাইডার কনফিগার করুন বিভাগে কোড স্যাম্পেল আছে যা দেখায় কীভাবে সাধারণ CI টুলের কনফিগারেশন ফাইলে Lighthouse CI যোগ করতে হয়। বিশেষত, এই কোড স্যাম্পেলগুলি দেখায় যে কীভাবে CI প্রসেসের সময় পারফর্ম্যান্স পরিমাপ সংগ্রহ করতে Lighthouse CI চালাতে হয়।
পারফর্ম্যান্স মনিটর করার জন্য পারফর্ম্যান্স পরিমাপ সংগ্রহ করতে Lighthouse CI ব্যবহার করা একটি ভালো
জায়গা। তবে, উন্নত ব্যবহারকারীরা আরও এক ধাপ এগিয়ে যেতে চাইতে পারেন এবং
নির্দিষ্ট লাইটহাউস অডিটে পাস করা বা সমস্ত পারফর্ম্যান্স বাজেট পূরণ করার মতো
পূর্ব-নির্ধারিত মানদণ্ড পূরণ না করলে বিল্ড ব্যর্থ করতে লাইটহাউস CI ব্যবহার করতে পারেন। এই আচরণ lighthouserc.js ফাইলের
assert
প্রপার্টির মাধ্যমে কনফিগার করা হয়।
Lighthouse CI-তে তিন ধরনের অ্যাসারশন কাজ করে:
off: অ্যাসার্শন এড়িয়ে যানwarn: stderr-এ প্রিন্ট করা যায়নিerror: stderr-এ ব্যর্থতা প্রিন্ট করুন এবং শূন্য নয় এমন এক্সিট কোড সহ Lighthouse CI থেকে বেরিয়ে আসুন
নিচে lighthouserc.js কনফিগারেশনের উদাহরণ দেওয়া হল, যার মধ্যে
অ্যাসার্শন অন্তর্ভুক্ত আছে। এটি লাইটহাউসের পারফর্ম্যান্স এবং অ্যাক্সেসিবিলিটি বিভাগের স্কোরের জন্য অ্যাসারশন সেট করে। এটি করে দেখতে, নিচে দেখানো অ্যাসারশন আপনার lighthouserc.js ফাইলে যোগ করুন, তারপর Lighthouse CI আবার চালান।
module.exports = {
ci: {
collect: {
// ...
},
assert: {
assertions: {
'categories:performance': ['warn', {minScore: 1}],
'categories:accessibility': ['error', {minScore: 1}]
}
},
upload: {
// ...
},
},
};
এটি যে কনসোল আউটপুট তৈরি করে তা দেখতে এইরকম হয়:
Lighthouse CI অ্যাসারশন সম্পর্কে আরও তথ্যের জন্য, ডকুমেন্টেশন দেখুন।
Lighthouse CI চালানোর জন্য GitHub অ্যাকশন সেট-আপ করা
Lighthouse CI রান করার জন্য GitHub অ্যাকশন ব্যবহার করা যেতে পারে। GitHub রিপোজিটরির যেকোনও ব্রাঞ্চে কোড পরিবর্তন পুশ করা হলে, প্রতিবার এটি নতুন Lighthouse রিপোর্ট তৈরি করবে। প্রতিটি পুল অনুরোধে এই ফলাফলগুলি দেখাতে স্ট্যাটাস চেক-এর সাথে এটি ব্যবহার করুন।
আপনার রিপোজিটরির রুটে,
.github/workflowsনামে একটি ডিরেক্টরি তৈরি করুন। আপনার প্রোজেক্টের ওয়ার্কফ্লো এই ডিরেক্টরিতে থাকবে। ওয়ার্কফ্লো হল এমন একটি প্রসেস যা পূর্বনির্ধারিত সময়ে (যেমন, কোড পুশ করা হলে) রান করে এবং এক বা একাধিক অ্যাকশন নিয়ে গঠিত হয়।mkdir .github mkdir .github/workflows.github/workflows-এlighthouse-ci.yamlনামের ফাইল তৈরি করুন। এই ফাইলটি নতুন ওয়ার্কফ্লোর কনফিগারেশন ধরে রাখবে।touch lighthouse-ci.yamllighthouse-ci.yaml-এ নিম্নলিখিত টেক্সট যোগ করুন।name: Build project and run Lighthouse CI on: [push] jobs: lhci: name: Lighthouse CI runs-on: ubuntu-latest steps: - uses: actions/checkout@v1 - name: Use Node.js 10.x uses: actions/setup-node@v1 with: node-version: 10.x - name: npm install run: | npm install - name: run Lighthouse CI run: | npm install -g @lhci/cli@0.3.x lhci autorun --upload.target=temporary-public-storage || echo "LHCI failed!"এই কনফিগারেশনটি একটি একক কাজ নিয়ে গঠিত একটি ওয়ার্কফ্লো সেট আপ করে যা যখনই নতুন কোড রিপোজিটরিতে পুশ করা হবে তখনই চলবে। এই কাজের চারটি ধাপ আছে:
- Lighthouse CI যে রিপোজিটরির বিরুদ্ধে রান করবে সেটি চেক করুন
- Node ইনস্টল ও কনফিগার করা
- প্রয়োজনীয় npm প্যাকেজ ইনস্টল করুন
- Lighthouse CI রান করুন এবং ফলাফল সাময়িক সর্বজনীন স্টোরেজে আপলোড করুন।
এইসব পরিবর্তন কমিট করে GitHub-এ পুশ করুন। আপনি উপরের ধাপগুলি সঠিকভাবে অনুসরণ করলে, GitHub-এ কোড পুশ করলে আপনার যোগ করা ওয়ার্কফ্লো রান করা ট্রিগার হবে।
Lighthouse CI ট্রিগার হয়েছে কিনা তা কনফার্ম করতে এবং এটির তৈরি করা রিপোর্ট দেখতে, আপনার প্রোজেক্টের অ্যাকশন ট্যাবে যান। আপনার সবচেয়ে সাম্প্রতিক কমিটের নিচে প্রোজেক্ট তৈরি করুন এবং Lighthouse CI চালান ওয়ার্কফ্লো তালিকাভুক্ত করা আছে কিনা দেখুন।
আপনি অ্যাকশন ট্যাব থেকে কোনও নির্দিষ্ট কমিটের সাথে সম্পর্কিত Lighthouse রিপোর্টে নেভিগেট করতে পারবেন। কমিটে ক্লিক করুন, Lighthouse CI ওয়ার্কফ্লো ধাপে ক্লিক করুন, তারপর Lighthouse CI রান করুন ধাপের ফলাফল বড় করে দেখুন।
আপনি Lighthouse CI চালানোর জন্য GitHub অ্যাকশন সেট-আপ করেছেন। GitHub স্ট্যাটাস চেক-এর সাথে এটি ব্যবহার করলে সবচেয়ে বেশি উপযোগী হবে।
GitHub স্ট্যাটাস চেক সেট-আপ করুন
স্ট্যাটাস চেক, কনফিগার করা থাকলে, এটি এমন একটি মেসেজ যা প্রতিটি PR-এ দেখা যায় এবং সাধারণত এতে টেস্টের ফলাফল বা বিল্ডের সাফল্যের মতো তথ্য থাকে।
Lighthouse CI-এর জন্য কীভাবে স্ট্যাটাস চেক সেট-আপ করতে হয় তা নিচে উল্লেখ করা ধাপগুলি থেকে জানতে পারবেন।
Lighthouse CI GitHub অ্যাপ পৃষ্ঠাতে যান এবং কনফিগার করুন বিকল্পে ক্লিক করুন।
(ঐচ্ছিক) আপনি GitHub-এ একাধিক সংস্থার অংশ হলে, সেই সংস্থাটি বেছে নিন যেটি সেই রিপোজিটরির মালিক যার জন্য আপনি Lighthouse CI ব্যবহার করতে চান।
আপনি সব রিপোজিটরিতে Lighthouse CI চালু করতে চাইলে সব রিপোজিটরি বিকল্প বেছে নিন অথবা আপনি শুধুমাত্র নির্দিষ্ট রিপোজিটরিতে এটি ব্যবহার করতে চাইলে শুধুমাত্র বেছে নেওয়া রিপোজিটরি বিকল্প বেছে নিন এবং তারপরে রিপোজিটরি বেছে নিন। তারপর ইনস্টল ও অনুমোদন করুন বিকল্পে ক্লিক করুন।
যে টোকেন দেখানো হচ্ছে সেটি কপি করুন। পরবর্তী ধাপে আপনি এটি ব্যবহার করবেন।
টোকেন যোগ করতে, আপনার GitHub রিপোজিটরির সেটিংস পৃষ্ঠায় যান, সিক্রেট বিকল্পে ক্লিক করুন, তারপর নতুন সিক্রেট যোগ করুন বিকল্পে ক্লিক করুন।
নাম ফিল্ডে
LHCI_GITHUB_APP_TOKENলিখুন এবং ভ্যালু ফিল্ডে শেষ ধাপে কপি করা টোকেনটি পেস্ট করুন এবং তারপর সিক্রেট যোগ করুন বোতামে ক্লিক করুন।lighthouse-ci.yamlফাইলে যান এবং "Lighthouse CI রান করুন" কমান্ডে নতুন এনভায়রনমেন্ট সিক্রেট যোগ করুন।
- name: run Lighthouse CI
run: |
npm install -g @lhci/cli@0.3.x
lhci autorun --upload.target=temporary-public-storage || echo "LHCI failed!"
+ env:
+ LHCI_GITHUB_APP_TOKEN: $
- স্ট্যাটাস চেক করার সুবিধা ব্যবহারের জন্য রেডি। এটি পরীক্ষা করতে, নতুন পুল রিকোয়েস্ট তৈরি করুন অথবা আগে থেকে থাকা পুল রিকোয়েস্টে কমিট পুশ করুন।
Lighthouse CI সার্ভার সেট-আপ করা
Lighthouse CI সার্ভার, ঐতিহাসিক Lighthouse রিপোর্টিং এক্সপ্লোর করার জন্য একটি ড্যাশবোর্ড প্রদান করে। এছাড়াও, এটি Lighthouse রিপোর্টের জন্য ব্যক্তিগত, দীর্ঘমেয়াদী ডেটাস্টোর হিসেবে কাজ করতে পারে।
- কোন কোন কমিট তুলনা করবেন তা বেছে নিন।
- দুটি কমিটের মধ্যে Lighthouse স্কোরে যে পরিবর্তন হয়েছে।
- এই বিভাগে শুধু সেইসব মেট্রিক দেখানো হয় যেগুলি দুটি কমিটের মধ্যে পরিবর্তিত হয়েছে।
- রিগ্রেশন গোলাপি রঙে হাইলাইট করা হয়।
- উন্নত করা হয়েছে এমন অংশ নীল রঙে হাইলাইট করা হয়।
Lighthouse CI সার্ভার সেইসব ব্যবহারকারীর জন্য সবচেয়ে উপযুক্ত যারা নিজেদের ইনফ্রাস্ট্রাকচার ডিপ্লয় ও ম্যানেজ করতে স্বচ্ছন্দ বোধ করেন।
Lighthouse CI সার্ভার সেট-আপ করার ব্যাপারে তথ্যের জন্য, যার মধ্যে Heroku ও Docker ব্যবহার করার রেসিপিও অন্তর্ভুক্ত, এই নির্দেশাবলী দেখুন।