فصل پنجم: ابزارهای پیشرفته و اتوماسیون

GitHub Actions مقدماتی

اتوماسیون کارهای تکراری

GitHub Actions ابزاری برای اجرای خودکار وظایف مشخص در پاسخ به رویدادهایی مثل push یا باز شدن Pull Request است؛ رایج‌ترین کاربرد آن، اجرای خودکار تست‌ها پیش از merge (یعنی Continuous Integration یا CI) است. تنظیمات آن با فایل‌های YAML در مسیر .github/workflows/ نوشته می‌شود.

یک نمونه‌ی ساده که در هر push تست‌های پایتون را اجرا می‌کند:

name: Run Tests

on: [push, pull_request]

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: python manage.py test

در این فایل، on مشخص می‌کند این workflow با چه رویدادی اجرا شود، jobs کارهای مختلف را تعریف می‌کند و هر step یک مرحله‌ی اجرایی است. actions/checkout کد مخزن را دانلود می‌کند و مراحل بعدی محیط پایتون را آماده و تست‌ها را اجرا می‌کنند.

وقتی این workflow روی یک PR اجرا شود، نتیجه (موفق یا ناموفق) مستقیماً در همان صفحه‌ی PR نمایش داده می‌شود و می‌توان با قوانین محافظتی شاخه، merge بدون عبور تست‌ها را غیرممکن کرد. این یعنی هیچ کد شکسته‌ای بدون بررسی خودکار وارد main نمی‌شود، حتی اگر بازبین انسانی چیزی را از قلم بیندازد.

برای ذخیره‌ی پیشرفت و شرکت در آزمون، وارد شوید — رایگان است.