برنامه نویسی

پیاده سازی CI با GitHub Actions Workflow

Summarize this content to 400 words in Persian Lang
برای فعالیت این هفته، من وظیفه دارم پروژه GENEREADME خود را با افزودن تست های واحد و پیاده سازی بیشتر بهبود بخشم. Continuous Integration از طریق گردش کار GitHub Actions.

GENEREADME یک ابزار خط فرمان است که یک فایل کد منبع را می گیرد و یک فایل README.md تولید می کند که کد موجود در فایل را با استفاده از یک LLM توضیح می دهد.

کمک به GENEREADME خوش آمدید! لطفاً CONTRIBUTING.md را برای دستورالعمل‌های مربوط به تنظیم محیط، نحوه اجرا و آزمایش ابزار و ارسال تغییرات بررسی کنید.

GENEREADME یک ابزار خط فرمان است که یک فایل را می گیرد، آن را پردازش می کند و یک فایل README را با توضیح یا مستنداتی از محتوای فایل تولید می کند. این ابزار از تکمیل چت OpenAI برای تجزیه و تحلیل فایل و تولید محتوا استفاده می کند.

استفاده

این ابزار در حال حاضر پشتیبانی می کند Groq و OpenRouter، که استفاده می کند Groq به طور پیش فرض یک کلید API معتبر برای ارائه دهنده مناسب باید ارائه شود.
با ایجاد یک فایل .env یا از طریق پرچم -a یا –api-key هنگام استفاده از دستور، یک کلید API معتبر ارائه دهید:
API_KEY=API_KEY

or

genereadme -a API_KEY
genereadme –api-key API_KEY

وابستگی ها را نصب کنید:

ابزار را با فایل های نمونه موجود اجرا کنید یا از فایل های خود استفاده کنید:

گردش کار GitHub Actions

من در درجه اول از Node.js راه اندازی برای GitHub Actions من، که یک را ایجاد می کند .yml.

name: Node.js CI

on:
push:
branches: [ “main” ] pull_request:
branches: [ “main” ]

jobs:
build:

runs-on: ubuntu-latest

strategy:
matrix:
node-version: [18.x, 20.x, 22.x]

steps:
– uses: actions/checkout@v4
– name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: ‘npm’
– run: npm ci
– run: npm run build –if-present
– run: npm run test:silent

وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هر زمان که تغییرات ایجاد شود، این آزمایش را اجرا می کند pushed یا ادغام شده توسط pull requests به شعبه اصلی

مشارکت در OptimizeIt

برای این کار، من نیز ملزم به مشارکت در پروژه دیگری با افزودن تست های احتمالی بیشتر هستم. من انتخاب کردم که به OptimizeIt کمک کنم.از آنجایی که این پروژه نیز استفاده می کند jest برای تست واحد، و nock برای تمسخر، اضافه کردن یک تست دیگر چندان دشوار نبود. با این حال، چالش اصلی این است که شریک زندگی من قبلاً موارد آزمایش زیادی را نوشته است، و دارای پوشش کلی 98٪ است. بنابراین من مجبور شدم به دنبال چیزی باشم که یا تست نشده باشد یا خطوطی که پوشش داده نشده باشد، که در نهایت به سراغ دومی رفتم.

تاثیر یکپارچگی مداوم

راه اندازی CI برای GENEREADME تحول آفرین بوده است. با خودکار کردن تست‌ها برای هر درخواست فشار یا کشش، تضمین می‌کند که تغییرات جدید عملکرد موجود را خراب نمی‌کند. برای GENEREADME، این به معنای حفظ ثبات در چندین نسخه Node.js و صرفه جویی در زمان در آزمایش دستی است. CI همکاری را افزایش می دهد، بهترین شیوه ها را اعمال می کند، و اعتماد به کیفیت پروژه را ایجاد می کند، و آن را به یک عنصر ضروری برای توسعه پایدار تبدیل می کند.

برای فعالیت این هفته، من وظیفه دارم پروژه GENEREADME خود را با افزودن تست های واحد و پیاده سازی بیشتر بهبود بخشم. Continuous Integration از طریق گردش کار GitHub Actions.

GENEREADME یک ابزار خط فرمان است که یک فایل کد منبع را می گیرد و یک فایل README.md تولید می کند که کد موجود در فایل را با استفاده از یک LLM توضیح می دهد.

کمک به GENEREADME خوش آمدید! لطفاً CONTRIBUTING.md را برای دستورالعمل‌های مربوط به تنظیم محیط، نحوه اجرا و آزمایش ابزار و ارسال تغییرات بررسی کنید.

GENEREADME یک ابزار خط فرمان است که یک فایل را می گیرد، آن را پردازش می کند و یک فایل README را با توضیح یا مستنداتی از محتوای فایل تولید می کند. این ابزار از تکمیل چت OpenAI برای تجزیه و تحلیل فایل و تولید محتوا استفاده می کند.

نسخه ی نمایشی genereadme

استفاده

این ابزار در حال حاضر پشتیبانی می کند Groq و OpenRouter، که استفاده می کند Groq به طور پیش فرض یک کلید API معتبر برای ارائه دهنده مناسب باید ارائه شود.

با ایجاد یک فایل .env یا از طریق پرچم -a یا –api-key هنگام استفاده از دستور، یک کلید API معتبر ارائه دهید:

API_KEY=API_KEY

or

genereadme  -a API_KEY
genereadme  --api-key API_KEY

وابستگی ها را نصب کنید:

ابزار را با فایل های نمونه موجود اجرا کنید یا از فایل های خود استفاده کنید:

گردش کار GitHub Actions

من در درجه اول از Node.js راه اندازی برای GitHub Actions من، که یک را ایجاد می کند .yml.

name: Node.js CI

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [18.x, 20.x, 22.x]

    steps:
    - uses: actions/checkout@v4
    - name: Use Node.js ${{ matrix.node-version }}
      uses: actions/setup-node@v4
      with:
        node-version: ${{ matrix.node-version }}
        cache: 'npm'
    - run: npm ci
    - run: npm run build --if-present
    - run: npm run test:silent
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

هر زمان که تغییرات ایجاد شود، این آزمایش را اجرا می کند pushed یا ادغام شده توسط pull requests به شعبه اصلی

مشارکت در OptimizeIt

برای این کار، من نیز ملزم به مشارکت در پروژه دیگری با افزودن تست های احتمالی بیشتر هستم. من انتخاب کردم که به OptimizeIt کمک کنم.
از آنجایی که این پروژه نیز استفاده می کند jest برای تست واحد، و nock برای تمسخر، اضافه کردن یک تست دیگر چندان دشوار نبود. با این حال، چالش اصلی این است که شریک زندگی من قبلاً موارد آزمایش زیادی را نوشته است، و دارای پوشش کلی 98٪ است. بنابراین من مجبور شدم به دنبال چیزی باشم که یا تست نشده باشد یا خطوطی که پوشش داده نشده باشد، که در نهایت به سراغ دومی رفتم.

تاثیر یکپارچگی مداوم

راه اندازی CI برای GENEREADME تحول آفرین بوده است. با خودکار کردن تست‌ها برای هر درخواست فشار یا کشش، تضمین می‌کند که تغییرات جدید عملکرد موجود را خراب نمی‌کند. برای GENEREADME، این به معنای حفظ ثبات در چندین نسخه Node.js و صرفه جویی در زمان در آزمایش دستی است. CI همکاری را افزایش می دهد، بهترین شیوه ها را اعمال می کند، و اعتماد به کیفیت پروژه را ایجاد می کند، و آن را به یک عنصر ضروری برای توسعه پایدار تبدیل می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا