اتوماسیون کارهای تکراری
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 نمیشود، حتی اگر بازبین انسانی چیزی را از قلم بیندازد.