تكرار السؤال: …
الإجابة المختصرة
بإنشاء Workflow يقوم بالتحقق من جودة الكود والفحص الساكن (Lint, Typecheck, Unit Tests)، ثم استدعاء EAS CLI أو Gradle/Fastlane لبناء الحزم وتوزيعها تلقائياً عند الدمج في فرع main.
الشرح
يضمن خط الـ CI/CD عدم دمج أي كود يكسر البناء الأصلي. يتضمن الخط خطوات تثبيت الاعتماديات مع كاش سريع، وتشغيل اختبارات Jest، والتحقق من سلامة نصوص TypeScript، ثم استدعاء eas-cli بمفتاح EXPO_TOKEN لبناء حزم الإنتاج ورفعها تلقائياً لمتاجر التطبيقات دون تدخل بشري يدوي.
مثال بالكود
name: CI/CD Pipeline
on:
push:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: { node-version: 20, cache: 'npm' }
- run: npm ci
- run: npm run lint
- run: npm test
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- run: eas build --platform all --profile production --non-interactiveأخطاء شائعة
- محاولة بناء مشاريع iOS الأصلية على خوادم أوبونتو في GitHub Actions بدلاً من خوادم macos-runner أو استخدام EAS السحابي.