Travis CI ایک کلاؤڈ CI/CD پلیٹ فارم ہے جو اپنی انفراسٹرکچر کا انتظام کیے بغیر موبائل ایپلیکیشنز کی بلڈ، ٹیسٹنگ اور ڈپلائمنٹ کو خودکار کرتا ہے۔ سروس براہ راست GitHub اور Bitbucket کے ساتھ ضم ہوتی ہے، ہر push یا Pull Request پر بلڈ کو متحرک کرتی ہے۔ Travis CI، 2025 کے مطابق، پلیٹ فارم ماہانہ 10 ملین سے زیادہ بلڈز پروسیس کرتا ہے۔ کنفیگریشن ریپوزٹری روٹ میں ایک واحد YAML فائل .travis.yml کے ذریعے کی جاتی ہے۔
اہم نکات
Travis CI ایک کلاؤڈ پر مبنی مسلسل انضمام سروس ہے جو Git ریپوزٹری میں تبدیلیاں ہونے پر خود بخود بلڈز اور ٹیسٹ چلاتی ہے۔ GitHub یا Bitbucket کے ذریعے ریپوزٹری منسلک کرنے کے بعد، Travis CI نئے کمٹ، Pull Request اور ٹیگ تخلیق کو ٹریک کرتا ہے، ایک الگ تھلگ ورچوئل ماحول میں .travis.yml سے کنفیگریشن انجام دیتا ہے۔
Travis CI کے کام کرنے کا عمل تین مراحل پر مشتمل ہے: ٹرگر (push یا Pull Request)، ماحول سیٹ اپ (install) اور کام کا نفاذ (script)۔ سروس خود بخود پہلے سے انسٹال شدہ ٹول سیٹ کے ساتھ ایک ورچوئل مشین منتخب کرتی ہے — iOS کے لیے Xcode کے ساتھ macOS امیجز، Android کے لیے Android SDK اور API لیولز کے ساتھ Linux امیجز دستیاب ہیں۔
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 iOS بلڈز کے لیے زیادہ پختہ macOS امیجز اور تفصیلی موبائل ڈیولپمنٹ دستاویزات فراہم کرتا ہے۔ دوسری طرف، GitHub Actions، GitHub ایکو سسٹم کے ساتھ بہتر طور پر ضم ہے اور مخصوص موبائل بلڈ کاموں کے لیے مزید کمیونٹی ایکشنز رکھتا ہے۔
Android ڈیولپمنٹ کے لیے، Travis CI Android SDK 34، Gradle 8 اور ایمولیٹر سپورٹ کے ساتھ تیار امیجز پیش کرتا ہے۔ بلڈ اسٹارٹ اپ وقت 45–90 سیکنڈ ہے، جو حریفوں کے مقابلے ہے۔ اہم حد متوازی بلڈ کی حد ہے، جو قیمت کے منصوبے پر منحصر ہے۔
Travis CI کا آرکیٹیکچر مائیکرو سروسز پر بنایا گیا ہے جو جاب کی قطار، ورچوئل مشین مختص اور نتائج کی پروسیسنگ کا انتظام کرتی ہیں۔ GitHub سے webhook موصول ہونے پر، پلیٹ فارم جاب کو قطار میں رکھتا ہے، مناسب زبان کی امیج کے ساتھ ایک دستیاب ورچوئل مشین تلاش کرتا ہے اور .travis.yml سے کمانڈز انجام دیتا ہے۔
ہر بلڈ صاف OS امیج کے ساتھ الگ تھلگ ماحول میں چلتا ہے۔ Travis CI تین قسم کے ماحول کو سپورٹ کرتا ہے: Ubuntu Linux (معیاری)، macOS (iOS اور macOS بلڈز کے لیے) اور Windows (.NET اور UWP کے لیے)۔ موبائل پروجیکٹس کے لیے، Xcode اور Fastlane کے ساتھ پہلے سے انسٹال شدہ macOS امیجز کی سپورٹ اہم ہے۔
بلڈ لائف سائیکل میں مراحل شامل ہیں: before_install (سسٹم سیٹ اپ)، install (انحصاریاں انسٹال کرنا)، before_script (ٹیسٹ کی تیاری)، script (ٹیسٹ اور بلڈ چلانا)، after_script(صفائی)۔ ہر مرحلہ اختیاری ہے اور YAML فائل میں کنفیگر کیا جا سکتا ہے۔
Build Matrix متوازی بلڈز میں مختلف زبان، SDK یا ماحول کے ورژنز کے ساتھ ایپلیکیشن کو ٹیسٹ کرنے کی اجازت دیتا ہے۔ میٹرکس language، os، env کیز کے ذریعے بیان کیا جاتا ہے اور تمام ممکنہ مجموعوں کی خودکار تخلیق شامل کرتا ہے۔ موبائل پروجیکٹس کے لیے، یہ iOS یا Android API کے مختلف ورژنز کے ساتھ مطابقت چیک کرنے کے لیے مفید ہے۔
میٹرکس استعمال کرتے وقت، Travis CI ہر مجموعے کے لیے علیحدہ ورچوئل مشین شروع کرتا ہے۔ یہ مجموعی بلڈ منٹ کی کھپت کو بڑھاتا ہے لیکن متعدد OS ورژنز کو سپورٹ کرنے والے پروجیکٹس کے لیے انتہائی اہم ہے۔ کوریج سے لاگت کے تناسب کے لیے میٹرکس کا سائز 4–6 مجموعوں تک محدود رکھیں۔
.travis.yml فائل YAML فارمیٹ استعمال کرتی ہے اور روٹ کیز پر مشتمل ہوتی ہے: language، os، dist (ڈسٹری بیوشن ورژن)، before_install، install، script اور deploy۔ ہر کلید میں ایک سٹرنگ، کمانڈز کی اری یا زیادہ پیچیدہ کنفیگریشن کے لیے ڈکشنری ہو سکتی ہے۔ Travis CI کیز کو سخت ترتیب میں پروسیس کرتا ہے، بلڈ کے نفاذ کی پیش گوئی کو یقینی بناتا ہے۔
iOS پروجیکٹس کے لیے Xcode ورژن کے ساتھ osx_image کلید لازمی ہے، مثلاً xcode15.2۔ Android کے لیے — SDK اجزاء کے ساتھ android کلید۔ Travis CI کامیاب بلڈ کے بعد App Store Connect، Google Play، Firebase یا GitHub Releases میں خودکار آرٹیفیکٹ اپ لوڈ کے لیے فراہم کنندگان کے ساتھ deploy کلید کو سپورٹ کرتا ہے۔
# iOS کے لیے Build Matrix کے ساتھ .travis.yml
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، osx_image کے ذریعے Xcode ورژن اور CocoaPods یا Swift Package Manager کے ذریعے انحصار انسٹالیشن کی وضاحت کرنی چاہیے۔ Travis CI iOS 18 SDK کے ساتھ Xcode 16 سمیت تمام موجودہ Xcode ورژنز کو سپورٹ کرتا ہے، جس سے تازہ ترین API پر ایپلیکیشنز کی جانچ ممکن ہوتی ہے۔
ایک اہم مرحلہ کوڈ دستخط کے لیے سرٹیفکیٹس کا انتظام ہے۔ ریپوزٹری میں پروویژننگ پروفائلز اور سرٹیفکیٹس محفوظ کرنے کے لیے Travis CI انکرپٹڈ فائلیں استعمال کریں۔ Fastlane Match بھی انکرپٹڈ TRAVIS ماحول متغیرات کے ذریعے سپورٹ کیا جاتا ہے، جو AdHoc اور App Store بلڈز کے لیے دستخط سیٹ اپ کو آسان بناتا ہے۔
# Fastlane کے ساتھ iOS ایپلیکیشن کے لیے .travis.yml
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
XCTest پر UI ٹیسٹ والے پروجیکٹس کے لیے، سمیلیٹر کی وضاحت کے لیے xcodebuild میں destinations کلید استعمال کریں۔ Travis CI اضافی کنفیگریشن کے بغیر macOS امیجز پر iOS سمیلیٹر چلانے کو سپورٹ کرتا ہے — xcodebuild test کمانڈ چلانے پر سمیلیٹر خود بخود شروع ہوتا ہے۔
Android پروجیکٹس کے لیے، .travis.yml android زبان اور android کلید کے ذریعے متعین SDK اجزاء کے ساتھ کنفیگر کیا جاتا ہے۔ Travis CI پہلے سے انسٹال شدہ Java JDK 17، Gradle اور بنیادی Android SDK کے ساتھ Linux امیجز فراہم کرتا ہے۔ اضافی API لیولز اور build-tools before_install مرحلے میں sdkmanager کے ذریعے انسٹال ہوتے ہیں۔
Android بلڈز کے لیے ایک اہم اصلاح .gradle اور .m2 ڈائریکٹریز کا کیشنگ ہے۔ Travis CI cache کلید کے ذریعے کیشنگ کو سپورٹ کرتا ہے، بعد کے بلڈز پر انحصار انسٹالیشن کے وقت کو 120 سیکنڈ سے کم کرکے 10–15 سیکنڈ کر دیتا ہے۔ Gradle wrapper اور Android Gradle Plugin کے لیے کیش پاتھ متعین کریں۔
# Android ایپلیکیشن کے لیے .travis.yml
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 Linux امیجز پر KVM ہارڈویئر ایکسلریشن کو سپورٹ کرتا ہے، جو سافٹ ویئر ایمولیشن کے مقابلے میں 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 سروس اکاؤنٹس اور دستخطی کیز کو محفوظ کرنے کے لیے انکرپٹڈ ماحول متغیرات کو سپورٹ کرتا ہے۔ متغیرات travis encrypt CLI کے ذریعے انکرپٹ ہوتے ہیں اور .travis.yml میں شامل ہوتے ہیں، بلڈ میں حساس ڈیٹا کی محفوظ منتقلی کو یقینی بناتے ہیں۔
Travis CI میں انکرپٹڈ فائلیں رساو کے خطرے کے بغیر iOS پروویژننگ پروفائلز اور سرٹیفکیٹس کو GitHub ریپوزٹری میں محفوظ کرنے کی اجازت دیتی ہیں۔ فائل travis encrypt-file کمانڈ سے انکرپٹ ہوتی ہے اور before_install مرحلے میں خود بخود ڈکرپٹ ہو جاتی ہے۔ یہ iOS ایپ ڈلیوری کے لیے Travis CI استعمال کرنے والی ٹیموں کا معیاری طریقہ ہے۔
Travis CI کا بنیادی فائدہ صفر انفراسٹرکچر لاگت ہے۔ ٹیم کو سرور سیٹ اپ کرنے، CI/CD سافٹ ویئر انسٹال کرنے یا اس کی دستیابی کی نگرانی کرنے کی ضرورت نہیں ہے۔ تمام انتظام ریپوزٹری میں .travis.yml میں ترمیم کرنے تک محدود ہے۔ عوامی ریپوزٹریز کے لیے مفت منصوبہ Travis CI کو اوپن سورس موبائل پروجیکٹس کے لیے ایک مقبول انتخاب بناتا ہے۔
Travis CI کی حد قیمت کے منصوبوں پر بلڈ وقت کی حد اور متوازی جاب کی حدود ہیں۔ زیادہ کمٹ فریکوئنسی (20+ فی دن) اور طویل انضمام ٹیسٹ والی ٹیموں کے لیے، کلاؤڈ منٹ کی لاگت آپ کے اپنے Jenkins سرور کو برقرار رکھنے کی لاگت سے تجاوز کر سکتی ہے۔ Travis CI مفت منصوبے پر کسٹم Docker امیجز کو بھی سپورٹ نہیں کرتا۔
موبائل ڈیولپمنٹ کے لیے، Travis CI ان ٹیموں کے لیے موزوں ہے جو GitHub استعمال کرتی ہیں، 10 سے کم ڈیولپرز رکھتی ہیں اور کسٹم بلڈ انفراسٹرکچر کی ضرورت نہیں ہوتی۔ تعمیل کی ضروریات والے یا کسٹم macOS مشینوں پر بلڈ کرنے کی ضرورت والے انٹرپرائز پروجیکٹس کے لیے، Jenkins ایک زیادہ لچکدار حل ہے۔
اکثر پوچھے گئے سوالات
Travis CI موبائل ایپلیکیشنز کی بلڈ، ٹیسٹنگ اور ڈپلائمنٹ کو خودکار کرنے کے لیے ایک کلاؤڈ CI/CD پلیٹ فارم ہے۔ سروس GitHub اور Bitbucket کے ساتھ ضم ہوتی ہے، ہر push پر بلڈ کو متحرک کرتی ہے اور کوڈ کوالٹی کنٹرول کے لیے Pull Requests میں اسٹیٹس ظاہر کرتی ہے۔
Travis CI ایک کلاؤڈ سروس ہے جس میں سرور مینجمنٹ کی ضرورت نہیں، .travis.yml کے ذریعے کنفیگر ہوتی ہے۔ Jenkins مکمل انفراسٹرکچر کنٹرول اور پلگ ان سسٹم کے ساتھ خود میزبانی شدہ سرور ہے۔ Travis CI سیٹ اپ میں آسان ہے، Jenkins پیچیدہ انٹرپرائز منظرناموں کے لیے زیادہ لچکدار ہے۔
language: swift متعین کریں، osx_image کے ذریعے Xcode ورژن، before_install میں CocoaPods اور Fastlane انسٹال کریں۔ script میں، ٹیسٹ کے لیے fastlane scan اور بلڈ کے لیے fastlane gym کمانڈز شامل کریں۔ ریپوزٹری میں محفوظ ذخیرہ کے لیے travis encrypt-file کا استعمال کرتے ہوئے سرٹیفکیٹس کو انکرپٹ کریں۔
language: android، JDK 17 اور android کلید کے ذریعے Android SDK اجزاء متعین کریں۔ cache کے ذریعے .gradle ڈائریکٹریز کا کیشنگ شامل کریں۔ script میں، Gradle ٹاسک چلائیں: ./gradlew assembleDebug اور testDebugUnitTest۔ UI ٹیسٹ کے لیے، before_script میں ایمولیٹر اسٹارٹ اپ کنفیگر کریں۔
ہاں، Travis CI چھوٹے سے درمیانے درجے کے تجارتی پروجیکٹس کے لیے موزوں ہے۔ ادائیگی کے منصوبوں میں متوازی بلڈز، نجی ریپوزٹریز اور ترجیحی سپورٹ شامل ہیں۔ تعمیل کی ضروریات والے انٹرپرائز کے لیے، اپنے انفراسٹرکچر کے ساتھ Jenkins یا GitLab CI تجویز کیا جاتا ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں