Continuous Integration (CI) সেটআপ

টেস্টিং এবং ডিবাগিং - জী ফ্রেমওয়ার্ক (Yii Framework) - Web Development

205

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


১. Continuous Integration (CI) এর ধারণা

CI মূলত ডেভেলপারদের জন্য একটি টুল বা পরিবেশ যা সফটওয়্যার ডেভেলপমেন্টের প্রতিটি ধাপে (কোডিং, বিল্ডিং, টেস্টিং) অটোমেশন এবং মনিটরিং প্রদান করে। এতে সাধারণত নিম্নলিখিত কাজগুলো অন্তর্ভুক্ত থাকে:

  • কোড রিপোজিটরি: GitHub, GitLab, Bitbucket ইত্যাদিতে কোড সংরক্ষণ।
  • অটোমেটিক বিল্ড এবং টেস্টিং: কোড রিপোজিটরিতে পুশ করার পর অটোমেটিক বিল্ড এবং ইউনিট টেস্ট চালানো।
  • ডিপ্লয়মেন্ট: সফল বিল্ড এবং টেস্টের পর অটোমেটিক ডিপ্লয়মেন্ট পরিবেশে প্রোগ্রাম ডিপ্লয় করা।

CI-এর মাধ্যমে কোডের ত্রুটি দ্রুত ধরা পড়তে পারে এবং সফটওয়্যারের মান বজায় রাখা সহজ হয়।


২. Yii ফ্রেমওয়ার্কের জন্য CI সেটআপ

Yii ফ্রেমওয়ার্কে CI সেটআপ করতে আপনাকে একটি CI টুল (যেমন GitHub Actions, GitLab CI, Jenkins ইত্যাদি) নির্বাচন করতে হবে এবং এই টুলটির মাধ্যমে প্রোজেক্টটি অটোমেটিক বিল্ড, টেস্ট এবং ডিপ্লয় করা হবে।

২.১. GitHub Actions CI সেটআপ

GitHub Actions একটি CI/CD প্ল্যাটফর্ম যা GitHub রিপোজিটরির সাথে সংযুক্ত থাকে এবং কোড পুশ হলে স্বয়ংক্রিয়ভাবে কাজ করতে পারে।

২.১.১. GitHub Actions ফাইল তৈরি করা
  1. GitHub রিপোজিটরি তৈরি করুন: যদি আপনার Yii প্রজেক্টের জন্য GitHub রিপোজিটরি না থাকে, তাহলে প্রথমে একটি তৈরি করুন।
  2. CI কনফিগারেশন ফাইল তৈরি করুন: .github/workflows ডিরেক্টরির মধ্যে একটি ci.yml ফাইল তৈরি করুন। এই ফাইলটি CI প্রক্রিয়ার জন্য প্রয়োজনীয় সেটিংস ধারণ করবে।

    উদাহরণস্বরূপ, একটি সাধারণ CI কনফিগারেশন ফাইল হতে পারে:

    name: Yii2 CI Pipeline
    
    on:
      push:
        branches:
          - main
      pull_request:
        branches:
          - main
    
    jobs:
      build:
        runs-on: ubuntu-latest
    
        steps:
          - name: Checkout Code
            uses: actions/checkout@v2
    
          - name: Set up PHP
            uses: shivammathur/setup-php@v2
            with:
              php-version: '7.4'
    
          - name: Install Composer
            run: |
              curl -sS https://getcomposer.org/installer | php
              mv composer.phar /usr/local/bin/composer
    
          - name: Install Dependencies
            run: |
              composer install --no-interaction
    
          - name: Run PHPUnit Tests
            run: |
              ./vendor/bin/phpunit
    

    এখানে, ci.yml ফাইলটি GitHub Actions এ নির্দিষ্ট কর্ম (jobs) নির্ধারণ করে, যেমন:

    • PHP সেটআপ: PHP 7.4 সংস্করণ ইনস্টল করা।
    • Composer ইনস্টল: Composer ডিপেনডেন্সি ইনস্টল করা।
    • Unit Test চালানো: PHPUnit ব্যবহার করে ইউনিট টেস্ট চালানো।
২.১.২. CI পদ্ধতি কার্যকর করা
  • GitHub রিপোজিটরিতে ci.yml ফাইল পুশ করার পর, GitHub Actions স্বয়ংক্রিয়ভাবে সেটি চিনতে পারবে এবং প্রতিবার কোড পুশ হলে বা পুল রিকোয়েস্ট হলে CI প্রক্রিয়াটি চালু হবে।
  • এই CI ফাইলটি শুধুমাত্র একবার পুশ করার পর থেকেই কার্যকর হবে, এবং প্রতিবার রিপোজিটরিতে কোড পরিবর্তন হলে এটি নিজে থেকেই বিল্ড, টেস্ট এবং ডিপ্লয় করবে।

২.২. GitLab CI সেটআপ

GitLab CI একটি শক্তিশালী CI/CD প্ল্যাটফর্ম যা GitLab রিপোজিটরির মাধ্যমে ইন্টিগ্রেটেড থাকে এবং কোডের প্রতিটি পরিবর্তনের পর স্বয়ংক্রিয়ভাবে কাজ শুরু করতে পারে।

২.২.১. GitLab CI কনফিগারেশন ফাইল তৈরি করা
  1. GitLab রিপোজিটরি তৈরি করুন: আপনার Yii প্রজেক্টের জন্য GitLab রিপোজিটরি তৈরি করুন।
  2. CI কনফিগারেশন ফাইল তৈরি করুন: .gitlab-ci.yml নামক একটি ফাইল তৈরি করুন আপনার প্রোজেক্টের রুট ডিরেক্টরিতে। এই ফাইলটি GitLab CI প্রক্রিয়া পরিচালনা করবে।

    উদাহরণস্বরূপ:

    stages:
      - test
      - deploy
    
    test:
      image: php:7.4
      before_script:
        - apt-get update && apt-get install -y libpng-dev libjpeg-dev libfreetype6-dev zip git
        - docker-php-ext-configure gd --with-freetype --with-jpeg
        - docker-php-ext-install gd
        - curl -sS https://getcomposer.org/installer | php
        - mv composer.phar /usr/local/bin/composer
      script:
        - composer install
        - ./vendor/bin/phpunit
    
    deploy:
      stage: deploy
      script:
        - echo "Deploying application"
    

    এখানে:

    • test স্টেজ: PHP 7.4 ইমেজ ব্যবহার করে টেস্ট রান করা হচ্ছে।
    • deploy স্টেজ: ডিপ্লয়মেন্ট স্ক্রিপ্ট চালানো হচ্ছে (এটি পছন্দসই ডিপ্লয়মেন্ট প্রক্রিয়া অনুযায়ী কাস্টমাইজ করা যেতে পারে)।
২.২.২. CI প্রক্রিয়া কার্যকর করা

GitLab রিপোজিটরিতে .gitlab-ci.yml ফাইলটি পুশ করার পর, GitLab CI স্বয়ংক্রিয়ভাবে CI প্রক্রিয়া শুরু করবে এবং আপনাকে প্রতিটি স্টেজের প্রগ্রেস ট্র্যাক করার সুযোগ দেবে।


৩. PHPUnit এবং টেস্টিং

Continuous Integration (CI) সিস্টেমের একটি গুরুত্বপূর্ণ অংশ হল Unit Testing, যা কোডের প্রতিটি অংশের কার্যকারিতা পরীক্ষা করে। Yii ফ্রেমওয়ার্কে, আপনি PHPUnit ব্যবহার করে ইউনিট টেস্ট লিখতে পারেন এবং CI সিস্টেমে সেগুলো অটোমেটিকভাবে চালাতে পারেন।

৩.১. PHPUnit সেটআপ

  1. Composer দিয়ে PHPUnit ইনস্টল করা:

    composer require --dev phpunit/phpunit
    
  2. টেস্ট ফাইল তৈরি করা: Yii প্রজেক্টের tests ডিরেক্টরিতে PHPUnit টেস্ট ফাইল তৈরি করুন।

    উদাহরণস্বরূপ:

    <?php
    
    namespace tests;
    
    use Yii;
    use app\models\User;
    use PHPUnit\Framework\TestCase;
    
    class UserTest extends TestCase
    {
        public function testLogin()
        {
            $user = new User();
            $this->assertTrue($user->login('admin', 'password'));
        }
    }
    
  3. CI ফাইলে PHPUnit টেস্ট রান করা: CI কনফিগারেশনে PHPUnit টেস্টের জন্য একটি স্টেপ যোগ করুন, যাতে কোড পুশের পর টেস্টগুলো স্বয়ংক্রিয়ভাবে চালানো যায়।

৪. ডিপ্লয়মেন্ট

CI প্রক্রিয়ার মধ্যে শেষ স্টেপ হল ডিপ্লয়মেন্ট। আপনি CI কনফিগারেশনে ডিপ্লয়মেন্ট স্ক্রিপ্ট যুক্ত করে অ্যাপ্লিকেশনটি স্টেজিং বা প্রোডাকশন পরিবেশে ডিপ্লয় করতে পারেন।

৪.১. ডিপ্লয়মেন্ট স্ক্রিপ্ট

এখানে একটি সাধারণ ডিপ্লয়মেন্ট স্ক্রিপ্টের উদাহরণ:

#!/bin/bash
# ডিপ্লয়মেন্ট স্ক্রিপ্ট

# অ্যাপ্লিকেশন ফাইল আপডেট করা
git pull origin main

# কম্পোজার দিয়ে ডিপেনডেন্সি ইনস্টল করা
composer install --no-dev --optimize-autoloader

# ক্যাশ পরিষ্কার করা
php yii cache/flush-all

# অন্যান্য ডিপ্লয়মেন্ট টাস্ক
php yii migrate --interactive=0

এটি CI কনফিগারেশনে ড

িপ্লয়মেন্ট স্টেজে ব্যবহার করা যেতে পারে।


সারাংশ

Continuous Integration (CI) ব্যবহার করে Yii ফ্রেমওয়ার্কে কোড টেস্টিং, বিল্ডিং এবং ডিপ্লয়মেন্ট প্রক্রিয়া অটোমেট করা যায়, যা কোডের গুণমান এবং ডেলিভারি টাইম ইম্প্রুভ করতে সহায়তা করে। GitHub Actions বা GitLab CI-এর মাধ্যমে এই CI প্রক্রিয়া সহজেই সেটআপ করা সম্ভব, যেখানে PHPUnit টেস্টিং এবং ডিপ্লয়মেন্ট স্ক্রিপ্টগুলো অটোমেটিকভাবে রান হয়। CI ব্যবহারের মাধ্যমে কোডের ত্রুটি দ্রুত শনাক্ত করা সম্ভব, এবং ডিপ্লয়মেন্ট প্রক্রিয়া আরও নির্ভরযোগ্য হয়ে ওঠে।

Content added By
Promotion

Are you sure to start over?

Loading...