🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

2026 সালে GitHub অ্যাকশন সহ একটি CI/CD পাইপলাইন কীভাবে সেট আপ করবেন: সম্পূর্ণ নির্দেশিকা

⏱️2 min read  ·  361 words

গিটহাব অ্যাকশন 2026-এর সবচেয়ে জনপ্রিয় CI/CD প্ল্যাটফর্ম — GitHub-এ তৈরি, আগে থেকে তৈরি অ্যাকশনের বিশাল মার্কেটপ্লেস। এই গাইডটি আপনার রেপোতে সম্পূর্ণ YAML ফাইলগুলিতে পরীক্ষা থেকে শুরু করে স্থাপনা পর্যন্ত একটি সম্পূর্ণ পাইপলাইন তৈরি করে।

কিভাবে গিটহাব অ্যাকশন কাজ করে

কর্মপ্রবাহ বাস করে.github/workflows/*.yml. প্রতিটি ওয়ার্কফ্লো ইভেন্টগুলিতে ট্রিগার করে (ধাক্কা, অনুরোধ, সময়সূচী) এবং এতে রয়েছেচাকরি যে চলেদৌড়বিদ (GitHub-হোস্টেড VMs)। চাকরি থাকেপদক্ষেপ — হয় শেল কমান্ড বা পুনরায় ব্যবহারযোগ্যকর্ম.

বেসিক সিআই ওয়ার্কফ্লো

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - run: npm ci
      - run: npm run lint
      - run: npm test
      - run: npm run build

ম্যাট্রিক্স বিল্ডস (একাধিক সংস্করণ পরীক্ষা করুন)

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        node: [18, 20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - run: npm ci
      - run: npm test
# Runs 9 combinations (3 OS x 3 Node versions) in parallel

ক্যাশিং নির্ভরতা

steps:
  - uses: actions/checkout@v4

  # setup-node has built-in caching
  - uses: actions/setup-node@v4
    with:
      node-version: '20'
      cache: 'npm'   # caches ~/.npm automatically

  # Or cache manually for other tools
  - uses: actions/cache@v4
    with:
      path: |
        ~/.cache/pip
        .venv
      key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}

বিল্ডিং এবং পুশিং ডকার ইমেজ

name: Build and Push

on:
  push:
    branches: [main]

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: docker/build-push-action@v6
        with:
          context: .
          push: true
          tags: |
            ghcr.io/${{ github.repository }}:latest
            ghcr.io/${{ github.repository }}:${{ github.sha }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

পরিবেশ এবং অনুমোদনের সাথে স্থাপনা

jobs:
  deploy:
    runs-on: ubuntu-latest
    needs: [test]           # only deploy if tests pass
    environment:
      name: production      # can require manual approval in repo settings
      url: https://example.com
    steps:
      - uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PROD_HOST }}
          username: ${{ secrets.DEPLOY_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /app
            docker compose pull
            docker compose up -d

গোপনীয়তা পরিচালনা

গোপন তথ্য সংরক্ষণ করুনরেপো সেটিংস, তারপর সিক্রেটস এবং ভেরিয়েবল, তারপর অ্যাকশন. তাদের উল্লেখ${{ secrets.NAME }}. তারা লগে মুখোশযুক্ত এবং কখনই প্রকাশ পায় না। স্টেজিং বনাম উৎপাদনের জন্য পরিবেশ-নির্দিষ্ট গোপনীয়তা ব্যবহার করুন।

steps:
  - run: ./deploy.sh
    env:
      API_KEY: ${{ secrets.API_KEY }}
      DATABASE_URL: ${{ secrets.DATABASE_URL }}

পুনরায় ব্যবহারযোগ্য ওয়ার্কফ্লো এবং কম্পোজিট অ্যাকশন

# Call a reusable workflow to avoid duplication
jobs:
  call-shared:
    uses: ./.github/workflows/shared-test.yml
    with:
      node-version: '20'
    secrets: inherit

# shared-test.yml declares:
# on:
#   workflow_call:
#     inputs:
#       node-version:
#         type: string

অপ্টিমাইজেশান টিপস

  • ব্যবহার করুনneeds: চাকরির শৃঙ্খলা নিয়ন্ত্রণ এবং সমান্তরালে স্বাধীন চাকরি চালানোর জন্য
  • ক্যাশে নির্ভরতা — অধিকাংশ পাইপলাইনের জন্য সবচেয়ে বড় গতি
  • পুরানো রান বাতিল করুন: concurrency: { group: ${{ github.ref }}, cancel-in-progress: true }
  • পাথ ফিল্টার ব্যবহার করুন: প্রাসঙ্গিক ফাইলগুলি পরিবর্তন হলে শুধুমাত্র ওয়ার্কফ্লো চালান
  • পিন অ্যাকশন সংস্করণ (@v4) স্থিতিশীলতা এবং নিরাপত্তার জন্য

প্রায়শই জিজ্ঞাসিত প্রশ্ন

প্রশ্ন: গিটহাব অ্যাকশন বনাম গিটল্যাব সিআই বনাম জেনকিন্স?
উত্তর: আপনার কোড GitHub-এ থাকলে GitHub অ্যাকশন – গভীর একীকরণ এবং একটি বিশাল মার্কেটপ্লেস। গিটল্যাব-হোস্টেড কোডের জন্য গিটল্যাব সিআই। সর্বাধিক নিয়ন্ত্রণ/স্ব-হোস্টিং বা জটিল এন্টারপ্রাইজের প্রয়োজনের জন্য জেনকিন্স। GitHub প্রকল্পগুলির জন্য অ্যাকশনগুলি সবচেয়ে সহজ।

প্রশ্ন: গিটহাব অ্যাকশন কি বিনামূল্যে?
উত্তর: পাবলিক রেপো সীমাহীন ফ্রি মিনিট পান। ব্যক্তিগত রেপো একটি মাসিক বিনামূল্যে বরাদ্দ পান, তারপর প্রতি মিনিটে অর্থ প্রদান করুন৷ বেশিরভাগ ছোট প্রকল্প এবং ওপেন সোর্সের জন্য, এটি কার্যকরভাবে বিনামূল্যে।

প্রশ্ন: আমি কিভাবে ধীর কর্মপ্রবাহের গতি বাড়াতে পারি?
উত্তর: ক্যাশে নির্ভরতা (সবচেয়ে বড় জয়),needs:এর সাথে সমান্তরালভাবে কাজ চালান , অপ্রাসঙ্গিক রান এড়ানোর জন্য পাথ ফিল্টার ব্যবহার করুন, এবং সঙ্গতি গোষ্ঠীর সাথে পুরানো রান বাতিল করুন। প্রোফাইল কোন ধাপগুলি প্রথমে সবচেয়ে ধীর।

প্রশ্ন: উৎপাদন স্থাপনের আগে আমার অনুমোদনের প্রয়োজন হয় কিভাবে?
উত্তর: প্রয়োজনীয় পর্যালোচকদের সাথে গিটহাব পরিবেশ ব্যবহার করুন। কনফিগার করুনproduction ম্যানুয়াল অনুমোদনের প্রয়োজনের জন্য রেপো সেটিংসের পরিবেশ — একজন অনুমোদিত পর্যালোচক নিশ্চিত না হওয়া পর্যন্ত নিয়োগের কাজ বিরতি দেয়।

প্রশ্ন: আমি কি সময়সূচীতে ওয়ার্কফ্লো চালাতে পারি?
উত্তর: হ্যাঁ — ব্যবহার করুনon: schedule: - cron: '0 0 * * *' নির্ধারিত রানের জন্য (রাত্রিকালীন বিল্ড, ক্লিনআপ কাজ, পর্যায়ক্রমিক চেক)। ক্রন সিনট্যাক্স সময় নিয়ন্ত্রণ করে।

উপসংহার

GitHub অ্যাকশনগুলি আপনার রেপোতে YAML-এ সংজ্ঞায়িত সমস্ত কিছুর সাথে CI/CD অ্যাক্সেসযোগ্য করে তোলে। এই নির্দেশিকাটি প্রয়োজনীয় বিষয়গুলিকে কভার করে — ম্যাট্রিক্স বিল্ড, নির্ভরতা ক্যাশিং, ডকার ইমেজ বিল্ডিং এবং পরিবেশের অনুমোদন সহ স্থাপনার সাথে CI ওয়ার্কফ্লো। প্রি-বিল্ট অ্যাকশনের বিশাল মার্কেটপ্লেস মানে আপনি খুব কমই স্ক্র্যাচ থেকে কিছু লেখেন। একটি সাধারণ পরীক্ষার ওয়ার্কফ্লো দিয়ে শুরু করুন, ক্রমবর্ধমানভাবে কাজগুলি তৈরি করুন এবং স্থাপন করুন, গতির জন্য আক্রমনাত্মকভাবে ক্যাশে করুন এবং গেট উত্পাদন স্থাপনার জন্য পরিবেশ ব্যবহার করুন৷ এটি GitHub-হোস্ট করা প্রকল্পগুলির জন্য পেশাদার CI/CD-এর দ্রুততম পথ।

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা