چگونه از GitHub Actions برای اتوماسیون استفاده کنیم
خلاصه
1405/05/09
از GitHub Actions برای اتوماسیون، مراحل زیر را دنبال کنید: ۱. **فایل Workflow ایجاد کنید:** یک پوشه به نام `.github/workflows` در ریشه ریپوزیتوری خود بسازید و یک فایل YAML (م
از GitHub Actions برای اتوماسیون، مراحل زیر را دنبال کنید:
۱. **فایل Workflow ایجاد کنید:** یک پوشه به نام `.github/workflows` در ریشه ریپوزیتوری خود بسازید و یک فایل YAML (مثلاً `main.yml`) درون آن قرار دهید.
۲. **تعریف Triggerها:** مشخص کنید چه زمانی اکشن باید اجرا شود (مثلاً هنگام `push`، `pull_request` یا زمانبندی خاص). با استفاده از کلمهی `on:` این کار انجام میشود.
۳. **تعریف Jobs و Steps:** ساختار کلی ورکفلو را تعریف کنید که شامل یک یا چند Job باشد. هر Job مجموعهای از مراحل (Steps) است.
۴. **تنظیمات محیطی و دستورات:** در هر Step، مشخص کنید چه نوع راننرهای محیط کار (مانند `ubuntu-latest` یا `windows-latest`) مورد نیاز است و سپس دستوری را که باید اجرا شود، قرار دهید.
**مثال ساده برای CI (تست):**
```yaml
name: CI Build and Test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3 # کد را دانلود میکند
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install dependencies
run: pip install -r requirements.txt # نصب کتابخانهها
- name: Run tests
run: pytest # اجرای تستها
```
با این روش، هر بار که به `main` پاش (push) یا درخواست Pull Request داده شود، اکشن اجرا شده و کد شما تست میشود.
برخی از محصولات شرکت مهندسی آبان رایان البرز
سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :
- نقش Pull Request در توسعه مشارکتی چیست
- Git Merge و Git Rebase چه تفاوتی دارند
- چگونه با Git Branch کار کنیم
- مفهوم CICD در توسعه نرمافزار چیست
- چگونه نرمافزار را در محیط واقعی Deploy کنیم
- نقش Prometheus در مانیتورینگ سیستمها چیست
- چه تفاوتی بین Monitoring و Logging وجود دارد
- نقش ابزار ELK Stack در مدیریت لاگ چیست
- چگونه لاگهای سرور را تحلیل کنیم
- چگونه یک پایگاه داده MySQL را در Docker اجرا کنیم
- نقش Pod در Kubernetes چیست
- Kubernetes چیست و چگونه کار میکند
- نقش Containerization در توسعه مدرن چیست
- تفاوت Volume و Bind Mount در Docker چیست
- چگونه یک Dockerfile بنویسیم
- alias در لینوکس چه کاربردی دارد