Continuous Integration (CI) এবং Continuous Deployment (CD) হচ্ছে আধুনিক সফটওয়্যার ডেভেলপমেন্ট প্রক্রিয়া, যার মাধ্যমে অটোমেটেডভাবে কোড ইন্টিগ্রেশন এবং ডেপ্লয়মেন্ট করা হয়। এই দুটি প্রক্রিয়া ইলেকট্রন (Electron) অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহার করা যায় যাতে ডেভেলপমেন্ট সাইকেলকে দ্রুত এবং দক্ষভাবে পরিচালনা করা যায়।
এই গাইডে, আমরা দেখব কিভাবে Electron অ্যাপের জন্য CI/CD প্রক্রিয়া তৈরি করা যায়।
১. Continuous Integration (CI) কী?
Continuous Integration (CI) হল একটি প্রক্রিয়া যেখানে ডেভেলপাররা কোডের পরিবর্তনগুলি নিয়মিত (যেমন, প্রতিদিন) একটি শেয়ার করা রিপোজিটরিতে (যেমন, GitHub বা GitLab) মার্জ করে। এই প্রক্রিয়ায় কোড স্বয়ংক্রিয়ভাবে বিল্ড এবং টেস্ট করা হয়। এর ফলে, কোড ইন্টিগ্রেশনকে সহজতর এবং দ্রুত করা সম্ভব হয় এবং কোডে সমস্যা সনাক্ত করতে সহায়ক হয়।
CI-এর জন্য সাধারণ টুলস:
- GitHub Actions
- CircleCI
- Travis CI
- GitLab CI
২. Continuous Deployment (CD) কী?
Continuous Deployment (CD) হল একটি প্রক্রিয়া যেখানে কোডের পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে উৎপাদন পরিবেশে (Production Environment) ডেপ্লয় করা হয়। CI-এর পরবর্তী ধাপ হল CD, যেখানে টেস্ট পাস হওয়ার পর অ্যাপটি স্বয়ংক্রিয়ভাবে সার্ভারে অথবা ক্লায়েন্টের কাছে ডেপ্লয় করা হয়।
CD-এর জন্য সাধারণ টুলস:
- GitHub Actions
- CircleCI
- Bitbucket Pipelines
- AWS CodeDeploy
- Netlify
৩. Electron অ্যাপের জন্য CI/CD প্রক্রিয়া তৈরি করা
আমরা GitHub Actions ব্যবহার করে Electron অ্যাপের জন্য একটি সিম্পল CI/CD পিপলাইন সেটআপ করার পদ্ধতি আলোচনা করব। GitHub Actions হল একটি শক্তিশালী CI/CD টুল যা GitHub রিপোজিটরি থেকে সরাসরি ইন্টিগ্রেট করা যায় এবং Electron অ্যাপের জন্য অটোমেটিক বিল্ড এবং ডেপ্লয়মেন্ট কাজগুলো করতে সাহায্য করে।
৪. GitHub Actions সেটআপ করা
স্টেপ ১: GitHub Actions ফাইল তৈরি করা
GitHub Actions এর কনফিগারেশন ফাইল .github/workflows ফোল্ডারে .yml এক্সটেনশনের একটি ফাইল তৈরি করতে হবে।
উদাহরণ: .github/workflows/ci-cd.yml:
name: Electron App CI/CD
on:
push:
branches:
- main # কোড যখন main ব্রাঞ্চে পুশ হবে, তখন পিপলাইন ট্রিগার হবে।
pull_request:
branches:
- main
jobs:
build:
runs-on: ubuntu-latest # Ubuntu সার্ভারে পিপলাইন রান হবে।
steps:
- name: Checkout Code
uses: actions/checkout@v2 # কোড চেকআউট করা
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14' # Node.js এর ভার্সন সেট করা।
- name: Install dependencies
run: npm install # প্যাকেজ ডিপেনডেন্সি ইনস্টল করা।
- name: Run Tests
run: npm test # টেস্ট রান করা (যদি থাকে)
- name: Build Electron App
run: npm run build # Electron অ্যাপ বিল্ড করা।
- name: Package Electron App
run: npm run dist # Electron অ্যাপ প্যাকেজ করা।
- name: Upload artifact
uses: actions/upload-artifact@v2
with:
name: electron-app
path: dist/* # প্যাকেজ করা অ্যাপ্লিকেশন ফাইল আপলোড করা
deploy:
runs-on: ubuntu-latest # একই সার্ভারে ডেপ্লয়মেন্ট হবে।
needs: build
steps:
- name: Checkout Code
uses: actions/checkout@v2
- name: Deploy to Production
run: |
scp -r dist/* username@server:/path/to/deploy # প্রোডাকশন সার্ভারে ডেপ্লয় করা
ব্যাখ্যা:
on.push: যখন কোডmainব্রাঞ্চে পুশ হবে, তখন এটি ট্রিগার হবে।actions/checkout: রিপোজিটরি থেকে কোড চেকআউট করা।actions/setup-node: Node.js এর পরিবেশ সেটআপ করা।npm install: প্যাকেজ ইনস্টল করা।npm run build: Electron অ্যাপ বিল্ড করা।npm run dist: Electron অ্যাপ প্যাকেজ করা।scp: ডিস্ট্রিবিউটেড অ্যাপ সার্ভারে ডেপ্লয় করা।
এটি CI প্রক্রিয়া চালাবে, যেখানে অ্যাপটি বিল্ড এবং টেস্ট হবে, এবং তারপর CD প্রক্রিয়াতে অ্যাপটি প্রোডাকশন সার্ভারে ডেপ্লয় করা হবে।
৫. Electron অ্যাপের জন্য GitHub Secrets সেট করা
যেহেতু আপনার ডেপ্লয়মেন্টের জন্য বিশেষ ধরনের API কী বা ডিপ্লয়মেন্ট সার্ভারে এক্সেস প্রয়োজন, সেক্ষেত্রে GitHub Secrets ব্যবহার করা হয়। GitHub Secrets আপনার সিক্রেট কনফিগারেশন তথ্য নিরাপদে সংরক্ষণ করে।
GitHub Secrets সেট করা:
- আপনার GitHub রিপোজিটরিতে যান।
- Settings > Secrets > New repository secret এ যান।
- ডিপ্লয়মেন্ট সার্ভারের ইউজারনেম, পাসওয়ার্ড বা API কী যোগ করুন, যেমন
DEPLOY_SERVER_USERNAME।
এটি CI/CD পিপলাইনে ডেপ্লয়মেন্ট করার সময় ব্যবহার হবে।
৬. Electron অ্যাপের জন্য Auto Deployment
Netlify, Heroku, Vercel, GitHub Pages ইত্যাদি সেবা ব্যবহার করে আপনি Electron অ্যাপ্লিকেশনটি সহজেই অটো ডেপ্লয় করতে পারেন। তবে, Electron অ্যাপ্লিকেশন সাধারণত ডেস্কটপ অ্যাপ্লিকেশন, সুতরাং আপনি Electron-builder বা Electron-packager ব্যবহার করে প্রোডাকশনে অ্যাপ প্যাকেজ করতে পারেন এবং ডিপ্লয়মেন্টের জন্য AWS, Google Cloud, বা অন্যান্য সিস্টেমে হোস্ট করতে পারেন।
সারাংশ
- Continuous Integration (CI) এবং Continuous Deployment (CD), সিঙ্ক্রোনাইজডভাবে কাজ করে ডেভেলপমেন্ট প্রক্রিয়া সহজ এবং দ্রুত করতে।
- GitHub Actions ব্যবহার করে Electron অ্যাপ্লিকেশন বিল্ড, টেস্ট, এবং ডেপ্লয়মেন্ট অটোমেট করতে পারবেন।
- Electron-builder এবং Electron-packager ব্যবহার করে Electron অ্যাপ্লিকেশন প্যাকেজ করে উৎপাদন পরিবেশে ডেপ্লয় করা যায়।
Read more