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 का समर्थन करता है — विभिन्न पैरामीटर के साथ एक ही कॉन्फ़िगरेशन के समानांतर निष्पादन की एक प्रणाली। उदाहरण के लिए, आप एक साथ Xcode 15 और Xcode 16 पर iOS एप्लिकेशन का परीक्षण कर सकते हैं, और API 33 और API 34 पर Android एप्लिकेशन का। प्रत्येक संयोजन एक अलग वर्चुअल मशीन पर चलता है, समग्र सत्यापन समय को कम करता है।
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 सभी वर्तमान Xcode संस्करणों का समर्थन करता है, जिसमें iOS 18 SDK के साथ Xcode 16 शामिल है, जो नवीनतम 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 में एन्क्रिप्टेड फ़ाइलें लीक के जोखिम के बिना GitHub रिपॉजिटरी में iOS प्रोविज़निंग प्रोफ़ाइल और प्रमाणपत्र संग्रहीत करने की अनुमति देती हैं। फ़ाइल 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 से कम डेवलपर हैं और जिन्हें कस्टम बिल्ड इंफ्रास्ट्रक्चर की आवश्यकता नहीं है। अनुपालन आवश्यकताओं वाले या कस्टम macOS मशीनों पर बिल्ड करने की आवश्यकता वाले Enterprise प्रोजेक्ट्स के लिए, 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 छोटे से मध्यम आकार के वाणिज्यिक प्रोजेक्ट्स के लिए उपयुक्त है। भुगतान योजनाओं में समानांतर बिल्ड, निजी रिपॉजिटरी और प्राथमिकता समर्थन शामिल हैं। अनुपालन आवश्यकताओं वाले Enterprise के लिए, कस्टम इंफ्रास्ट्रक्चर के साथ Jenkins या GitLab CI की सिफारिश की जाती है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें