GitHub Actions ابزار داخلی GitHub برای Automation هست. رایگان، قدرتمند و سازگار با هر زبانی.
Actions چیه؟
Workflow های خودکار که با Event های Git شروع میشن. Push، PR، Issue.
Free Tier
- Public repos: نامحدود
- Private: 2000 دقیقه در ماه
ساختار
.github/workflows/ci.yml
مثال Basic
name: CI
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: npm install
- run: npm test
Triggers
push: هر Push
pull_request: PR
schedule: زمانبندی شده
workflow_dispatch: دستی
Runners
ubuntu-latest، windows-latest، macos-latest. Ubuntu ارزونترین.
Marketplace
هزاران Action آماده. جستجو در marketplace.
Secrets
Settings → Secrets. API Keys رو امن نگه دارید.
Matrix Build
تست روی چند ورژن:
strategy:
matrix:
node: [16, 18, 20]
Artifacts
upload/download فایل بین Jobs.
Caching
actions/cache برای npm، composer.
Deployment
Deploy به AWS، Azure، سرور خودتون از GitHub.
WordPress Deploy
rsync یا FTP از GitHub به سرور:
- run: rsync -avz . user@server:/path
Notifications
Slack، Email با Actions مخصوص.
Reusable Workflows
یک Workflow رو در چند Repository استفاده کنید.
Composite Actions
چند Step رو در یه Action ترکیب کنید.
Docker Build
Build Image و Push به Docker Hub خودکار.
Testing
Unit، Integration، E2E همه ممکن.
Linting
ESLint، Prettier، PHP CS Fixer در Action.
Security Scanning
CodeQL، Dependabot، Snyk برای پیدا کردن آسیبپذیری.
Debug
ACTIONS_STEP_DEBUG=true برای Log بیشتر.
سباهاست
Deploy از GitHub Actions به سرور سباهاست ساده.
جمعبندی
GitHub Actions ابزار قدرتمند و رایگان برای Automation. با یاد گرفتنش، کار خیلی راحتتر میشه.