গিটহাব অ্যাকশন 2026-এর সবচেয়ে জনপ্রিয় CI/CD প্ল্যাটফর্ম — GitHub-এ তৈরি, আগে থেকে তৈরি অ্যাকশনের বিশাল মার্কেটপ্লেস। এই গাইডটি আপনার রেপোতে সম্পূর্ণ YAML ফাইলগুলিতে পরীক্ষা থেকে শুরু করে স্থাপনা পর্যন্ত একটি সম্পূর্ণ পাইপলাইন তৈরি করে।
📋 Table of Contents
- কিভাবে গিটহাব অ্যাকশন কাজ করে
- বেসিক সিআই ওয়ার্কফ্লো
- ম্যাট্রিক্স বিল্ডস (একাধিক সংস্করণ পরীক্ষা করুন)
- ক্যাশিং নির্ভরতা
- বিল্ডিং এবং পুশিং ডকার ইমেজ
- পরিবেশ এবং অনুমোদনের সাথে স্থাপনা
- গোপনীয়তা পরিচালনা
- পুনরায় ব্যবহারযোগ্য ওয়ার্কফ্লো এবং কম্পোজিট অ্যাকশন
- অপ্টিমাইজেশান টিপস
- প্রায়শই জিজ্ঞাসিত প্রশ্ন
- উপসংহার
কিভাবে গিটহাব অ্যাকশন কাজ করে
কর্মপ্রবাহ বাস করে.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-এর দ্রুততম পথ।
🔗 Share this article
✍️ Leave a Comment