Travis CI هي منصة CI/CD سحابية تؤتمت بناء واختبار ونشر التطبيقات المحمولة دون إدارة البنية التحتية الخاصة بك. تتكامل الخدمة مباشرة مع GitHub و Bitbucket، وتشغيل البناء عند كل push أو Pull Request. وفقاً Travis CI، 2025، تعالج المنصة أكثر من 10 ملايين بناء شهرياً. يتم التهيئة من خلال ملف YAML واحد .travis.yml في جذر المستودع.
الخلاصة
Travis CI هي خدمة تكامل مستمر سحابية تشغل تلقائياً عمليات البناء والاختبار عند إجراء تغييرات في مستودع Git. بعد ربط المستودع عبر GitHub أو Bitbucket، يتتبع Travis CI الالتزامات الجديدة وطلبات السحب وإنشاء الوسوم، وينفذ التهيئة من .travis.yml في بيئة افتراضية معزولة.
تتكون عملية عمل Travis CI من ثلاث مراحل: المشغل (push أو Pull Request)، إعداد البيئة (install) وتنفيذ المهام (script). تختار الخدمة تلقائياً جهازاً افتراضياً مع مجموعة أدوات مثبتة مسبقاً — صور macOS مع Xcode لنظام iOS، وصور Linux مع Android SDK ومستويات API لنظام Android.
يدعم Travis CI Build Matrix — آلية لتشغيل موازٍ لنفس التهيئة مع معلمات مختلفة. على سبيل المثال، يمكن اختبار تطبيق iOS على Xcode 15 و Xcode 16 في نفس الوقت، وتطبيق Android على API 33 و API 34. كل مجموعة تعمل على جهاز افتراضي منفصل، مما يقلل من وقت التحقق الإجمالي.
Travis CI يختلف عن Jenkins و GitLab CI في التركيز على سهولة الإعداد وعدم وجود تكاليف بنية تحتية. يتطلب Jenkins التثبيت على خادم خاص وتكوين الوكلاء، ويتطلب GitLab CI مثيل GitLab مُدار ذاتياً أو سحابياً. يعمل Travis CI بالاشتراك ولا يتطلب إدارة خوادم.
مقارنة بـ GitHub Actions، يوفر Travis CI صور macOS أكثر نضجاً لبناء iOS ووثائق مفصلة للتطوير المحمول. GitHub Actions، من ناحية أخرى، مدمج بشكل أفضل مع نظام GitHub البيئي ويحتوي على المزيد من الإجراءات المجتمعية لمهام البناء المحمول المحددة.
لتطوير Android، يقدم Travis CI صوراً جاهزة مع Android SDK 34 و Gradle 8 ودعم المحاكيات. وقت بدء البناء هو 45–90 ثانية، وهو مشابه للمنافسين. القيد الرئيسي هو حد البناء المتوازي، الذي يعتمد على خطة التسعير.
بنية Travis CI مبنية على الخدمات المصغرة التي تدير قائمة انتظار المهام وتخصيص الأجهزة الافتراضية ومعالجة النتائج. عند تلقي webhook من GitHub، تضع المنصة المهمة في قائمة انتظار، وتجد جهازاً افتراضياً متاحاً مع صورة اللغة المناسبة وتنفذ الأوامر من .travis.yml.
يتم تنفيذ كل بناء في بيئة معزولة مع صورة نظام تشغيل نظيفة. يدعم Travis CI ثلاثة أنواع من البيئات: Ubuntu Linux (قياسي)، macOS (لبناء iOS و macOS) و Windows (لـ .NET و UWP). للمشاريع المحمولة، دعم صور macOS مع Xcode و Fastlane مثبتين مسبقاً أمر بالغ الأهمية.
تشمل دورة حياة البناء مراحل: before_install (إعداد النظام)، install (تثبيت التبعيات)، before_script (التحضير للاختبارات)، script (تشغيل الاختبارات والبناء)، after_script (التنظيف). كل مرحلة اختيارية وقابلة للتكوين في ملف YAML.
Build Matrix يسمح باختبار تطبيق مع إصدارات مختلفة من اللغة أو SDK أو البيئة في بنيات متوازية. يتم تعريف المصفوفة عبر المفاتيح language و os و env وتشمل التوليد التلقائي لجميع المجموعات الممكنة. للمشاريع المحمولة، هذا مفيد للتحقق من التوافق مع إصدارات مختلفة من iOS أو Android API.
عند استخدام المصفوفة، يشغل Travis CI جهازاً افتراضياً منفصلاً لكل مجموعة. هذا يزيد من استهلاك دقائق البناء الإجمالي، لكنه مهم بشكل حاسم للمشاريع التي تدعم إصدارات متعددة من نظام التشغيل. حدد حجم المصفوفة إلى 4–6 مجموعات لنسبة مثلى بين التغطية والتكلفة.
ملف .travis.yml يستخدم تنسيق YAML ويتكون من مفاتيح جذرية: language و os و dist (إصدار التوزيعة) و before_install و install و script و deploy. يمكن أن يحتوي كل مفتاح على سلسلة نصية أو مصفوفة أوامر أو قاموس لتكوين أكثر تعقيداً. يعالج Travis CI المفاتيح بترتيب صارم، مما يضمن قابلية توقع تنفيذ البناء.
لمشاريع iOS، مفتاح osx_image مع إصدار Xcode إلزامي، مثلاً xcode15.2. لنظام Android — مفتاح android مع مكونات SDK. يدعم Travis CI مفتاح deploy مع موفرين للرفع التلقائي للقطع الأثرية إلى App Store Connect أو Google Play أو Firebase أو GitHub Releases بعد بناء ناجح.
# .travis.yml مع Build Matrix لنظام iOS
language: objective-c
os: osx
osx_image: xcode15.2
env:
- SCHEME=App-iOS
- SCHEME=App-tvOS
script:
- xcodebuild -scheme $SCHEME clean build test
لمشاريع iOS، يجب أن يحدد .travis.yml اللغة objective-c أو swift، وإصدار Xcode عبر osx_image وتثبيت التبعيات عبر CocoaPods أو Swift Package Manager. يدعم Travis CI جميع إصدارات Xcode الحالية، بما في ذلك Xcode 16 مع iOS 18 SDK، مما يسمح باختبار التطبيقات على أحدث API.
خطوة مهمة هي إدارة الشهادات لتوقيع الكود. استخدم ملفات Travis CI المشفرة لتخزين ملفات التزويد والشهادات في المستودع. Fastlane Match مدعوم أيضاً عبر متغيرات بيئة TRAVIS المشفرة، مما يبسط إعداد التوقيع لبنيات AdHoc و App Store.
# .travis.yml لتطبيق iOS مع Fastlane
language: swift
os: osx
osx_image: xcode15.2
branches:
only:
- main
- /\d+\.\d+\.\d+/
before_install:
- gem install cocoapods
- gem install fastlane
install:
- pod install --repo-update
script:
- fastlane scan
- fastlane gym
للمشاريع ذات اختبارات UI على XCTest، استخدم مفتاح destinations في xcodebuild لتحديد المحاكي. يدعم Travis CI تشغيل محاكيات iOS على صور macOS دون تكوين إضافي — يبدأ المحاكي تلقائياً عند تنفيذ أمر اختبار xcodebuild test.
لمشاريع Android، يتم تهيئة .travis.yml مع اللغة android ومكونات SDK المحددة عبر مفتاح android. يوفر Travis CI صور Linux مع Java JDK 17 مثبت مسبقاً و Gradle و Android SDK الأساسي. يتم تثبيت مستويات API الإضافية و build-tools عبر sdkmanager في مرحلة before_install.
تحسين رئيسي لبناءات Android هو التخزين المؤقت للأدلة .gradle و .m2. يدعم Travis CI التخزين المؤقت عبر مفتاح cache، مما يقلل وقت تثبيت التبعيات من 120 ثانية إلى 10–15 ثانية في البناءات المتكررة. حدد مسارات التخزين المؤقت لـ Gradle wrapper و Android Gradle Plugin.
# .travis.yml لتطبيق Android
language: android
dist: jammy
jdk: oraclejdk17
android:
components:
- tools
- platform-tools
- build-tools-34.0.0
- android-34
- extra-google-m2repository
before_script:
- yes | sdkmanager "platforms;android-34"
script:
- ./gradlew assembleDebug testDebugUnitTest
cache:
directories:
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
لتشغيل الاختبارات الآلية على محاكي Android، أضف مرحلة before_script مع بدء المحاكي وانتظار جاهزيته. يدعم Travis CI تسريع الأجهزة KVM على صور Linux، مما يسرع بشكل كبير تنفيذ اختبارات UI مقارنة بالمحاكاة البرمجية.
Travis CI يتكامل مع GitHub و Bitbucket عبر تطبيق OAuth يضيف webhook إلى المستودع للإشعار التلقائي بالالتزامات الجديدة. بعد تنشيط المستودع في Travis CI، جميع عمليات push و Pull Request تشغل تلقائياً بناء، وتظهر الحالة (passed, failed, pending) في واجهة GitHub.
التكامل مع GitHub Pull Request هو ميزة رئيسية لـ Travis CI. تظهر حالة البناء مباشرة في PR، مما يمنع الدمج عند فشل الاختبارات. يضمن تكوين حماية الفرع في GitHub مع Travis CI وصول الكود المختبر فقط إلى الفرع الرئيسي.
يدعم Travis CI متغيرات البيئة المشفرة لتخزين رموز App Store Connect وحسابات خدمة Google Play ومفاتيح التوقيع. يتم تشفير المتغيرات عبر CLI travis encrypt وإضافتها إلى .travis.yml، مما يضمن نقلًا آمناً للبيانات الحساسة إلى البناء.
الملفات المشفرة في Travis CI تسمح بتخزين ملفات التزويد وشهادات iOS في مستودع GitHub دون خطر التسرب. يتم تشفير الملف بأمر travis encrypt-file وفك تشفيره تلقائياً في مرحلة before_install. هذا هو النهج القياسي للفرق التي تستخدم Travis CI لتسليم تطبيقات iOS.
ميزة Travis CI الرئيسية هي تكاليف البنية التحتية الصفرية. لا يحتاج الفريق إلى إعداد خادم أو تثبيت برامج CI/CD أو مراقبة توفرها. كل الإدارة تنحصر في تحرير .travis.yml في المستودع. الخطة المجانية للمستودعات العامة تجعل Travis CI خياراً شائعاً لمشاريع المحمول مفتوحة المصدر.
قيد Travis CI هو حد وقت البناء والمهام المتوازية في خطط التسعير. للفرق ذات تردد الالتزام العالي (20+ يومياً) واختبارات التكامل الطويلة، قد تتجاوز تكاليف الدقائق السحابية تكلفة صيانة خادم Jenkins الخاص. كما أن Travis CI لا يدعم صور Docker المخصصة في الخطة المجانية.
لتطوير المحمول، Travis CI مناسب للفرق التي تستخدم GitHub ولديها أقل من 10 مطورين ولا تتطلب بنية تحتية مخصصة للبناء. لمشاريع Enterprise ذات متطلبات الامتثال أو الحاجة للبناء على أجهزة macOS خاصة، يظل Jenkins حلاً أكثر مرونة.
الأسئلة الشائعة
Travis CI هي منصة CI/CD سحابية لأتمتة بناء واختبار ونشر التطبيقات المحمولة. تتكامل الخدمة مع GitHub و Bitbucket، وتشغيل البناء عند كل push وعرض الحالة في Pull Requests لمراقبة جودة الكود.
Travis CI هي خدمة سحابية دون حاجة لإدارة الخوادم، تهيئة عبر .travis.yml. Jenkins هو خادم مستضاف ذاتياً مع تحكم كامل في البنية التحتية ونظام إضافات. Travis CI أسهل في الإعداد، Jenkins أكثر مرونة للسيناريوهات المؤسسية المعقدة.
حدد language: swift، إصدار Xcode عبر osx_image، قم بتثبيت CocoaPods و Fastlane في before_install. في script، أضف أوامر fastlane scan للاختبارات و fastlane gym للبناء. قم بتشفير الشهادات باستخدام travis encrypt-file للتخزين الآمن في المستودع.
حدد language: android، JDK 17 ومكونات Android SDK عبر مفتاح android. أضف تخزيناً مؤقتاً لأدلة .gradle عبر cache. في script، شغل مهام Gradle: ./gradlew assembleDebug و testDebugUnitTest. لاختبارات UI، قم بتهيئة بدء المحاكي في before_script.
نعم، Travis CI مناسب للمشاريع التجارية الصغيرة والمتوسطة. تشمل الخطط المدفوعة بناءاً متوازياً ومستودعات خاصة ودعماً ذا أولوية. للمؤسسات ذات متطلبات الامتثال، يُوصى باستخدام Jenkins أو GitLab CI مع بنية تحتية خاصة.
الملخص
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا