
গিটহাব অ্যাকশন2026 সালে সর্বাধিক ব্যবহৃত CI/CD প্ল্যাটফর্ম। সর্বজনীন রেপোর জন্য বিনামূল্যে এবং ব্যক্তিগত জন্য 2,000 মিনিট/মাস, এটি আপনার GitHub সংগ্রহস্থল থেকে সরাসরি পরীক্ষা, নির্মাণ এবং স্থাপনা স্বয়ংক্রিয় করে। এই নির্দেশিকাটি প্রথম ওয়ার্কফ্লো থেকে শুরু করে প্রোডাকশন মোতায়েনের সবকিছু কভার করে।
📋 Table of Contents
মূল ধারণা
- কর্মপ্রবাহঃYAML ফাইল
.github/workflows/ - ঘটনা:ট্রিগার (ধাক্কা, পিআর, সময়সূচী, ম্যানুয়াল)
- চাকরি:একটি রানার উপর চালানো পদক্ষেপের সেট
- ধাপ:স্বতন্ত্র আদেশ বা কর্ম
- রানার:VM যেখানে আপনার কাজ চলে (Ubuntu, Windows, macOS)
প্রথম কর্মপ্রবাহ: পুশের উপর পরীক্ষা
# .github/workflows/test.yml
name: Test
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
pip install -r requirements.txt
- name: Run tests
run: pytest --cov=. --cov-report=xml
- name: Upload coverage
uses: codecov/codecov-action@v4
ম্যাট্রিক্স বিল্ডস (একাধিক সংস্করণ পরীক্ষা করুন)
jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11', '3.12', '3.13']
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- run: pip install -r requirements.txt && pytest
ট্যাগে উৎপাদনে স্থাপন করুন
name: Deploy
on:
push:
tags: ['v*']
jobs:
deploy:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v4
- name: Build Docker image
run: |
docker build -t myapp:${{ github.ref_name }} .
docker tag myapp:${{ github.ref_name }} registry.example.com/myapp:latest
- name: Push to registry
run: |
echo ${{ secrets.REGISTRY_TOKEN }} | docker login registry.example.com -u ci --password-stdin
docker push registry.example.com/myapp:latest
- name: Deploy via SSH
uses: appleboy/ssh-action@v1
with:
host: ${{ secrets.SERVER_HOST }}
username: deploy
key: ${{ secrets.SSH_PRIVATE_KEY }}
script: |
docker pull registry.example.com/myapp:latest
docker compose up -d
ক্যাশিং নির্ভরতা (দ্রুত নির্মাণ)
- name: Cache pip
uses: actions/cache@v4
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
- name: Cache node_modules
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
গোপনীয়তা ব্যবহার করা
GitHub সেটিংস > সিক্রেটস এবং ভেরিয়েবল > অ্যাকশন-এ API কী সংরক্ষণ করুন। সাথে ওয়ার্কফ্লোতে অ্যাক্সেস${{ secrets.MY_KEY }}. গোপন লগে মুদ্রিত হয় না.
- name: Send deploy notification
run: |
curl -X POST ${{ secrets.SLACK_WEBHOOK }} \
-H 'Content-type: application/json' \
--data '{"text": "Deployed ${{ github.ref_name }}"}'
উপসংহার
গিটহাব অ্যাকশন আলাদা সিআই/সিডি অবকাঠামোর প্রয়োজনীয়তা দূর করে। একটি সাধারণ পরীক্ষার ওয়ার্কফ্লো দিয়ে শুরু করুন, ম্যাট্রিক্স বিল্ড যোগ করুন, তারপর ট্যাগ দ্বারা ট্রিগার হওয়া স্বয়ংক্রিয় স্থাপনায় স্নাতক হন। ক্যাশিং কাট বিল্ড টাইম 50-80% করে।
🔗 Share this article
✍️ Leave a Comment