গিটহাবটেকনিক্যাল

Github Action ব্যাবহার করে cPanel এ লারাভেল এপ্লিকেশন ডেপ্লয় করা

শেয়ার্ড হোস্টিং এ লারাভেল এপ্লিকেশন ডেপ্লয় করা একটি বেশ ঝামেলাপূর্ন ও সময়সাপেক্ষ কাজ। বিশেষ করে যেসব এপ্লিকেশন/ওয়েবসাইটে Continuous Integration করা হয়, সেসব এপ্লিকেশনের জন্য এটি একটি Nightmare টাইপ। প্রতিবার ফাইল ডিলিট করা, আপলোড করা, খুজে খুজে বের করা কোন ফাইল মডিফাই করা হয়েছে। বর্তমানে cPanel এ সরাসরি গিট রিপো ক্লোন করা যায়, তবে সেক্ষেত্রেও ম্যানুয়ালি প্রতিবার গিট পুল করে ফোল্ডার আপডেট করতে হয়। .

Github Action ব্যবহার করে খুব সহজে এই ঝামেলা মিটিয়ে ফেলা যায়। চলুন দেখে নেয়া যাক কিভাবে Github Action ব্যবহার করে cPanel এ লারাভেল এপ্লিকেশন অটোমেটিক ডিপ্লয়মেন্ট করা যায়।

১। প্রথমেই cPanel থেকে একটি FTP একাউন্ট ক্রিয়েট করে নিতে হবে।

২। যে প্রজক্টটি কে আমরা Github Action সেট করব সেটা অবশ্যই Github রিপোজিটরিতে আপ করতে হবে।

৩। প্রোজেক্টের রুট ফোল্ডারে .github নামে একটি সাবফোল্ডার ক্রিয়েট করতে হবে এবং তার ভিতর workflows নামে আরেকটি সাবফোল্ডার বানাতে হবে।

৪। workflows ফোল্ডারের ভিতর main.yml নামে একটি ফাইল ক্রিয়েট করে তার ভিতর নিচের কোড টি পেস্ট করে দিতে হবে।

name: Deploy Laravel Project on push
on:
  push:
    branches:
      - main
jobs:
  web-deploy:
    name: Deploy
    runs-on: ubuntu-latest
    steps:
      - name: Get the latest code
        uses: actions/checkout@v2.3.2
      - uses: actions/setup-node@master
      - name: Copy .env
        run: php -r "file_exists('.env') || copy('.env.example', '.env');"
      - name: Install Dependencies
        run: composer update --ignore-platform-reqs
      - name: Generate key
        run: php artisan key:generate
      - name: Generate storage link
        run: php artisan storage:link
      - name: Directory Permissions
        run: chmod -R 777 storage bootstrap/cache
      - name: 📂 Sync files
        uses: SamKirkland/FTP-Deploy-Action@4.0.0
        with:
          server: ${{ secrets.FTP_SERVER }}
          username: ${{ secrets.FTP_USERNAME }}
          password: ${{ secrets.FTP_PASSWORD }}
          server-dir: /

৫। server-dir কে সার্ভারের নিজের পাবলিক ফোল্ডারের ডিরেক্টরি পাথ দিয়ে দিন।

৬। পুরো প্রোজেক্টটিকে গিটহাবে পুশ করে দিন।

৭। এখন কাজ হল উক্ত প্রোজেক্টের গিটহাব রিপোজিটরির সেটিংস এ গিয়ে secrets গুলো সেট করা। সিক্রেটস গুলোর মধ্যে FTP_SERVER, FTP_USERNAME, FTP_PASSWORD এই তিনটি জিনিষ সেট করলেই হবে।

এখন গিট রিপোর Action ট্যাবে গেলে নিচের মত স্ক্রীন দেখতে পাব। এখান থেকে Deploy বাটন প্রেস করলেই ডেপ্লয় শুরু হবে। প্রথম বার ডেপ্লয় হতে বেশ সময় লাগে। পরের বার হতে কোড গিট রিপোর মেইন ব্র্যাঞ্চে পুশ করার সাথে সাথেই অটোমেটিক ডেপ্লয় হবে।

Hi, I’m মেহেদী জামান

Leave a Reply