GitHub Actions چیست؟
موتور CI/CD یکپارچه با GitHub برای اجرای خودکار Workflow ها (Build، Test، Deploy) با تعریف فایل YAML در همان مخزن.
چرا مهم است؟
چون مستقیم داخل GitHub جا افتاده و نیاز به سرویس CI/CD جدا ندارد، امروز رایجترین ابزار CI/CD برای پروژههای متنباز و بسیاری از تیمهای خصوصی است؛ در مصاحبههای Backend/DevOps پرتکرار پرسیده میشود.
تعریف
GitHub Actions با فایلهای YAML داخل پوشه .github/workflows/ تعریف میشود؛ هر Workflow به یک رویداد (Push، Pull Request، زمانبندی و ...) واکنش نشان میدهد و مجموعهای از Job/Step را اجرا میکند.
نمونه Workflow
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.x"
- run: dotnet build --configuration Release
- run: dotnet test
مفاهیم کلیدی
- Workflow: فایل YAML تعریفکننده کل فرآیند
- Job: مجموعهای از Step ها که روی یک Runner اجرا میشوند
- Action: یک واحد قابلاستفاده مجدد (مثل
actions/checkout) - Secrets: مقادیر حساس که در تنظیمات مخزن ذخیره و در Workflow با
${{ secrets.NAME }}استفاده میشوند
اشتباه رایج
❌ اجرای Deploy روی هر Push به هر Branch بدون شرط — باید با if یا محدود کردن branches مطمئن شد Deploy فقط از شاخههای مجاز (مثل main) اجرا میشود.
منبع و مطالعه بیشتر
خلاصه
GitHub Actions با فایل YAML در .github/workflows/ خطلوله CI/CD را مستقیم داخل GitHub اجرا میکند. همیشه Deploy را به شاخههای مشخص محدود کنید تا از انتشار ناخواسته جلوگیری شود. مرجع کامل: GitHub Docs.
