پرشین تم مقالات CI-CD در فلاتر چیست؟

CI-CD در فلاتر چیست؟

image profile پرشین تم - 25 شهریور 1404 - 19:11 دانلود مقاله

در توسعه فلاتر، CI/CD مخفف Continuous Integration (ادغام مداوم) و Continuous Delivery/Deployment (تحویل/استقرار مداوم) است. این مجموعه‌ای از شیوه‌های خودکار است که به شما کمک می‌کند برنامه خود را سریع‌تر و مطمئن‌تر بسازید، آزمایش کنید و منتشر کنید.

CI-CD در فلاتر چیست؟

🔧 CI/CD در فلاتر چیست؟

✅ یکپارچه‌سازی مداوم (CI)

  • هر زمان که کد به مخزن ارسال شود، برنامه فلاتر شما را به طور خودکار می‌سازد و آزمایش می‌کند.
  • اطمینان حاصل می‌کند که تغییرات جدید، عملکردهای موجود را مختل نمی‌کنند.
  • با شناسایی زودهنگام اشکالات، به تیم‌ها کمک می‌کند تا به راحتی همکاری کنند.

 

🚀 تحویل/استقرار مداوم (CD)

  • تحویل: برنامه شما را برای انتشار آماده می‌کند (مثلاً APK/IPA می‌سازد) و آن را به محیط‌های آماده‌سازی یا بتا ارسال می‌کند.
  • استقرار: پس از گذراندن تمام آزمایش‌ها، برنامه شما را به طور خودکار به محیط تولید (اپ استور یا گوگل پلی) ارسال می‌کند.

 

🛠️ ابزارهای محبوب CI/CD برای فلاتر

  • Codemagic: مخصوص Flutter ساخته شده است. راه‌اندازی آسان، پشتیبانی از نسخه‌های اندروید/iOS.
  • Bitrise : گردش‌های کاری بصری، از Flutter و buildهای بومی پشتیبانی می‌کند.
  • GitHub Actions: قابلیت سفارشی‌سازی بالا، به خوبی با مخازن GitHub ادغام می‌شود.
  • Fastlane: استقرار فروشگاه برنامه را خودکار می‌کند، به خوبی با پروژه‌های Flutter کار می‌کند.
  • CircleCI: خطوط لوله مقیاس‌پذیر، مناسب برای تیم‌های بزرگتر.

برای دستورالعمل‌های راه‌اندازی و بهترین شیوه‌ها، می‌توانید راهنمای رسمی تحویل مداوم فلاتر را بررسی کنید.

 

💡 چرا از CI/CD در فلاتر استفاده کنیم؟

  • چرخه‌های انتشار سریع‌تر: به‌روزرسانی‌ها را سریع و مکرر ارسال کنید.
  • کیفیت کد بهبود یافته: تست‌های خودکار، اشکالات را زودتر پیدا می‌کنند.
  • خطاهای دستی کاهش یافته: اتوماسیون، ثبات را تضمین می‌کند.
  • همکاری تیمی بهتر: همه روی یک کدبیس پایدار و تأیید شده کار می‌کنند.

 

 

🚀 نحوه استفاده از CI/CD در فلاتر (گام به گام)

1. 🧰 یک پلتفرم CI/CD انتخاب کنید

ابزاری را انتخاب کنید که از فلاتر پشتیبانی کند. گزینه‌های محبوب:

  • Codemagic (متمرکز بر فلاتر، راه‌اندازی آسان)
  • GitHub Actions (اگر کد شما در GitHub است عالی است)
  • Bitrise (گردش‌های کاری بصری، مناسب برای برنامه‌های تلفن همراه)
  • GitLab CI/CD (اگر از GitLab استفاده می‌کنید)
  • CircleCI یا Jenkins (قابلیت تنظیم بیشتری دارد)

 

۲. 🗂️ مخزن پروژه فلاتر خود را راه‌اندازی کنید

  • پروژه فلاتر خود را به یک مخزن گیت (GitHub، GitLab، Bitbucket و غیره) منتقل کنید.
  • مطمئن شوید که پروژه شما دارای فایل‌های pubspec.yaml و main.dart است.

 

۳. ⚙️ پیکربندی گردش کار CI/CD

در اینجا مثالی با استفاده از GitHub Actions آورده شده است:

یک فایل در .github/workflows/flutter.yml ایجاد کنید:

name: Flutter CI
on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - uses: subosito/flutter-action@v2
      with:
        flutter-version: '3.10.0'
    - name: Install dependencies
      run: flutter pub get
    - name: Run tests
      run: flutter test
    - name: Build APK
      run: flutter build apk --release

این گردش کار:

  • روی هر درخواست push یا pull به main اجرا می‌شود.
  • Flutter را نصب می‌کند.
  • وابستگی‌ها را دریافت می‌کند.
  • تست‌ها را اجرا می‌کند.
  • یک نسخه APK می‌سازد.

 

۴. 📦 اختیاری: استقرار خودکار

شما می‌توانید مراحل زیر را اضافه کنید:

  • آپلود مصنوعات (APK/IPA)
  • استقرار در توزیع برنامه Firebase
  • انتشار در Google Play یا App Store (با استفاده از Fastlane)

 

🚀 نحوه استفاده از CI/CD در فلاتر با Codemagic

۱. 📝 ایجاد یک پروژه فلاتر

اگر هنوز این کار را نکرده‌اید:

flutter create my_app
cd my_app

آن را به یک مخزن گیت (GitHub، GitLab، Bitbucket) ارسال کنید.

 

۲. 🔐 ثبت نام در Codemagic

  • به https://codemagic.io بروید
  • با ارائه دهنده Git خود (GitHub، GitLab و غیره) وارد شوید
  • مخزن Flutter خود را انتخاب کنید

 

۳. ⚙️ پیکربندی ساخت شما

Codemagic به طور خودکار پروژه‌های Flutter را شناسایی می‌کند. شما می‌توانید:

  • پلتفرم‌ها را انتخاب کنید: اندروید، iOS، وب
  • تنظیم محرک‌های ساخت: در صورت درخواست push، pull یا دستی
  • اضافه کردن متغیرهای محیطی (مانند کلیدهای API یا اعتبارنامه‌های امضا)

 

۴. 🧪 اضافه کردن تست‌ها

در پروژه فلاتر خود، تست‌های واحد یا ویجت را اضافه کنید:

// test/widget_test.dart
void main() {
  testWidgets('My widget test', (WidgetTester tester) async {
    await tester.pumpWidget(MyApp());
    expect(find.text('Hello'), findsOneWidget);
  });
}

Codemagic این موارد را به طور خودکار در طول CI اجرا خواهد کرد.

 

۵. 📦 ساخت و توزیع

Codemagic می‌تواند:

  • ساخت فایل‌های APK و برنامه‌های کاربردی
  • آپلود در توزیع برنامه‌های Firebase
  • انتشار در گوگل پلی یا اپ استور (با ادغام Fastlane)

 

🧠 نکته حرفه‌ای: برای گردش‌های کاری سفارشی از codemagic.yaml استفاده کنید

برای کنترل پیشرفته، یک فایل codemagic.yaml در مخزن خود ایجاد کنید:

workflows:
  flutter-workflow:
    name: Flutter CI/CD
    environment:
      flutter: stable
    scripts:
      - flutter pub get
      - flutter test
      - flutter build apk --release
    artifacts:
      - build/app/outputs/flutter-apk/app-release.apk
با خرید اشتراک می توانید تا چندین برابر مبلغ خرید اشتراک خود قالب های HTML ، سورس کدهای آماده و یا مقالات دانلود کنید
شما می توانید تنها فقط با مبلغ 3,000,000 میلیون تومان وب سایت سفارسی برای خود داشته باشید
محبوب ترین مقالات
تفاوت بین CSS و SCSS چیست؟ تفاوت بین CSS و SCSS چیست؟
category برنامه نویسی 07 اسفند 1402
تفاوت بین RDBMS و DBMS تفاوت بین RDBMS و DBMS
category برنامه نویسی 02 فروردین 1403
کاوش در معماری GPT-3 کاوش در معماری GPT-3
category هوش مصنوعی 12 اسفند 1402
کلمات کلیدی در SQL کلمات کلیدی در SQL
category برنامه نویسی 01 خرداد 1403
تفاوت بین CSS، SASS و SCSS چیست؟ تفاوت بین CSS، SASS و SCSS چیست؟
category برنامه نویسی 13 اسفند 1402
انواع Join در SQL انواع Join در SQL
category برنامه نویسی 02 فروردین 1403
ChatGPT چیست؟ ChatGPT چیست؟
category هوش مصنوعی 12 اسفند 1402
آخرین مقالات
🧩 CQRS چیست؟ 🧩 CQRS چیست؟ هرCQRS یک الگوی طراحی نرم‌افزار است که عملیات خواندن (پرس‌وجوها) را از عملیات نوشتن (دستورات) جدا می‌کند. به جای استفا...
category برنامه نویسی 24 شهریور 1404
🎨 نظریه یا تئوری طراحی چیست؟ 🎨 نظریه یا تئوری طراحی چیست؟ نظریه طراحی چارچوب فکری است که نحوه درک، خلق و ارزیابی طراحی را هدایت می‌کند. این نظریه، فلسفه، زیبایی‌شناسی، عملکرد و...
category کامپیوتر 05 مرداد 1404
سفر من به داستان‌سرایی بصری - طراحی رابط کاربری و طراحی لوگو سفر من به داستان‌سرایی بصری - طراحی رابط کاربری و طراحی لوگو چگونه سفر خود را به سمت طراحی لوگو، گرافیک و رابط کاربری/تجربه کاربری آغاز کنید. برای موفقیت در طراحی لوگو، طراحی گراف...
category کامپیوتر 02 مرداد 1404