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. با یاد گرفتنش، کار خیلی راحت‌تر میشه.