स्थानीय रूप से ट्रैविस-सीआई कैसे चलाएं


524

मैंने अभी एक प्रोजेक्ट जॉइन किया है, और मैं ट्रैविस-सीआई के लिए नया हूं। इसके बजाय मुझे .travis.yml के लिए हर छोटे बदलाव को धकेलना होगा और निर्माण को चलाने के लिए स्रोत में किए गए हर थोड़े से बदलाव को मैं पूरा करूँगा। जेनकिंस के साथ आप जेनकिंस डाउनलोड कर सकते हैं और स्थानीय स्तर पर चला सकते हैं। क्या ट्रैविस कुछ इस तरह की पेशकश करता है?

नोट: मैंने ट्रैविस-सीआई क्ली को देखा है और इसे डाउनलोड किया है, लेकिन ऐसा लगता है कि सभी अपने एपीआई को कॉल करते हैं, जो तब मेरे जीथूब रेपो से जुड़ता है, इसलिए यदि मैं धक्का नहीं देता, तो यह कोई फर्क नहीं पड़ेगा कि मैं पुनः आरंभ करता हूं अंतिम निर्माण।


3
ट्रैविस सीआई को चलाने के बिना आपको स्थानीय रूप से परीक्षण चलाने में सक्षम होना चाहिए। क्या चलाने के लिए कमांड को देखने के लिए .travis.yml के "स्क्रिप्ट" अनुभाग देखें।
कॉन्स्टेंटिन हासे

69
लेकिन केवल परीक्षण चलाने से समस्या नहीं होती है - अक्सर एक ट्रैविस बिल्ड install:सेक्शन में चरणों को स्थापित करने और स्थापित करने के कारण विफल हो जाता है , और यह संभवतः यही है कि सवाल अधिक चिंतित है।
ब्रैंडन रोड्स

4
मुझे लगता है कि जटिल परियोजनाओं में विभिन्न कारणों से (उदाहरण के लिए अलग-अलग बिंदु रिलीज़ या रनटाइम के सिस्टम इंटरैक्शन, आंतरिक रूप से समय-संवेदी परीक्षण जैसे टाइमआउट परीक्षण ecc।) परीक्षण कभी-कभी स्थानीय वातावरण और ट्रैडीस सीआई पर अलग-अलग व्यवहार कर सकते हैं। ।
सर्किलसेंटर

जवाबों:


200

यह प्रक्रिया आपको अपने कंप्यूटर पर किसी भी ट्रैविस बिल्ड जॉब को पूरी तरह से पुन: पेश करने की अनुमति देती है। इसके अलावा, आप किसी भी समय प्रक्रिया को बाधित कर सकते हैं और डिबग कर सकते हैं। नीचे एक उदाहरण है जहाँ मैं php-school / cli-menu पर नौकरी के परिणाम # 191.1 को पूरी तरह से पुन: प्रस्तुत करता हूँ ।

आवश्यक शर्तें

  • आपके पास GitHub पर सार्वजनिक रेपो है
  • आपने ट्रैविस पर कम से कम एक निर्माण किया
  • आपके पास आपके कंप्यूटर पर डॉकर सेट है

बिल्ड वातावरण सेट करें

संदर्भ: https://docs.travis-ci.com/user/common-build-problems/

  1. अपनी खुद की अस्थायी बिल्ड आईडी बनाएं

    BUILDID="build-$RANDOM"
    
  2. बिल्ड लॉग देखें , कार्य जानकारी के लिए और अधिक बटन खोलें और INSTANCE लाइन ढूंढें, इसे यहां पेस्ट करें और रन करें ( नवीनतम उपलब्ध एक के साथ कोलन के बाद टैग को बदलें ) :

    INSTANCE="travisci/ci-garnet:packer-1512502276-986baf0"
    
  3. हेडलेस सर्वर चलाएं

    docker run --name $BUILDID -dit $INSTANCE /sbin/init
    
  4. संलग्न क्लाइंट को चलाएँ

    docker exec -it $BUILDID bash -l
    

नौकरी चलाते हैं

अब आप अपने ट्रैविस वातावरण के अंदर हैं। su - travisशुरू करने के लिए भागो ।

यह कदम अच्छी तरह से परिभाषित है लेकिन यह अधिक थकाऊ और मैनुअल है। आपको ट्रैविस पर्यावरण में चलने वाली हर कमांड मिलेगी। ऐसा करने के लिए, सही कॉलम में वह सब कुछ खोजें, जिसमें टैग लगा हो 0.03s

बाईं ओर आप वास्तविक कमांड देखेंगे। क्रम में उन आदेशों को चलाएं।

परिणाम

अब historyकमांड चलाने का अच्छा समय है । आप प्रक्रिया को फिर से शुरू कर सकते हैं और एक अद्यतन कोड आधार के खिलाफ एक ही परीक्षण चलाने के लिए उन आदेशों को फिर से शुरू कर सकते हैं।

  • यदि आपका रेपो निजी है: ssh-keygen -t rsa -b 4096 -C "YOUR EMAIL REGISTERED IN GITHUB"तो cat ~/.ssh/id_rsa.pubऔर एक कुंजी जोड़ने के लिए यहां क्लिक करें
  • FYI करें: आप git pullअपने डॉक बॉक्स से कमिट लोड करने के लिए डॉक के अंदर से कर सकते हैं इससे पहले कि आप उन्हें GitHub पर धकेलें
  • यदि आप ट्रैविस रन कमांड को बदलना चाहते हैं तो यह आपकी ज़िम्मेदारी है कि कैसे यह पता लगाया जाए कि यह एक काम में कैसे बदल जाता है .travis.yml
  • मुझे नहीं पता कि डोकर पर्यावरण को कैसे साफ किया जाए, यह जटिल लग रहा है, शायद यह लीक स्मृति है

22
लॉग इन के तहत instance:मैं एक वैध डॉक छवि पथ नहीं देख सकता, बस कुछ ऐसा है travis-ci-garnet-trusty-1512502259-986baf0। कोशिश की travisci/ci-garnet:$INSTANCEऔर travisci/$INSTANCE- काम नहीं करता है, छवि नहीं मिल सकती। इसके अलावा सिर्फ पोस्टफिक्स (यानी travisci/ci-garnet:packer-1512502259-986baf0) लेने से काम नहीं चला।
रॉय शिलक्रोट

4
मैं एक ही समस्या का सामना कर रहा हूँ - उदाहरण की जानकारी में उल्लिखित छवि डाउनलोड नहीं की जा सकती। इसके अलावा, मैंने ट्रैविस डॉक्सtravisci/ci-garnet:packer-1512502276-986baf0 में सुझाई गई छवि की कोशिश की है । यह उपलब्ध है, लेकिन पुराना है। उदाहरण के लिए, सीएमके ट्रैविस में उपलब्ध एक से अधिक पुराना तरीका है। पिछले छह महीनों में डॉकर हब में कोई नया संस्करण अपलोड नहीं किया गया है , जबकि पहले प्रति माह कई अपडेट होते थे। ci-garnet
स्केल

7
आपका संदर्भ लिंक अब और काम नहीं करता है - यानी 'रनिंग ए कंटेनर बेस्ड डॉकर इमेज लोकेली' सेक्शन उस पेज से हटा दिया गया था। शायद उदाहरण के आउटपुट में अंतर sudo: requiredसेट नहीं होने के कारण था ? मेरा एक वर्तमान निर्माण में, मैं देखता हूं travis-ci-sardonyx-xenial-1547455603-2c98a19कि मैं ट्रैविसी / सीआई-सार्डोनीक्स के
मैक्सचलेज़िग

4
मेरे लिए डोकर हब पर travisci / ci-गार्नेट के नवीनतम संस्करण का उपयोग कर (travisci / ci-गार्नेट: पैकर-1515445631-7dfb2e1) चाल किया था
तालेब

3
यदि आप ट्रैविस की भाषा विशिष्ट उदाहरण पर काम कर रहे हैं, तो आप भी अजगर की तरह समर्पित छवि का उपयोग कर सकते हैं ।
ज़ाचरी रामजी

162

ट्रैविस-सी एक नया कंटेनर-आधारित बुनियादी ढांचा प्रदान करता है जो डॉक का उपयोग करता है। यह बहुत उपयोगी हो सकता है यदि आप स्थानीय रूप से पुन: पेश करके एक ट्रैविस-सी बिल्ड का निवारण करने का प्रयास कर रहे हैं। यह ट्रैविस सीआई के दस्तावेज से लिया गया है ।

डॉकटर छवि में स्थानीय रूप से समस्या निवारण

यदि आपको बिल्ड में सटीक समस्या को ट्रैक करने में समस्या हो रही है, तो यह अक्सर बिल्ड को स्थानीय रूप से चलाने में मदद करता है। ऐसा करने के लिए आपको हमारे कंटेनर आधारित अवसंरचना (यानी, sudo: falseआपके पास है .travis.yml) का उपयोग करने की आवश्यकता है , और यह जानने के लिए कि आप ट्रैविस सीआई पर कौन सी डॉकियर छवि का उपयोग कर रहे हैं।

एक कंटेनर आधारित डॉकटर छवि को स्थानीय रूप से चलाना

  1. डॉकर इंजन डाउनलोड और इंस्टॉल करें ।
  2. डॉकर हब से एक छवि का चयन करें । यदि आप किसी भाषा-विशिष्ट चित्र का उपयोग नहीं कर रहे हैं ci-ruby। एक टर्मिनल खोलें और छवि URL का उपयोग करके एक इंटरैक्टिव डॉकर सत्र शुरू करें:

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. travisउपयोगकर्ता पर स्विच करें:

    su - travis
    
  4. /छवि के फ़ोल्डर में अपने गिट रिपॉजिटरी को क्लोन करें ।
  5. किसी भी निर्भरता को मैन्युअल रूप से स्थापित करें।
  6. मैन्युअल रूप से अपने ट्रैविस CI बिल्ड कमांड को चलाएं।

6
@DustinGraham, जो इस बात पर निर्भर करता है कि ट्रैविस CI द्वारा बनाई जा रही परियोजना का निर्माण करने के लिए कैसे कॉन्फ़िगर किया गया है। जिस प्रोजेक्ट पर मैं काम कर रहा था, उसमें स्क्रिप्ट के तहत बिल्ड कमांड को .travis.yml फाइल में कॉन्फ़िगर किया गया था : उपधारा और था make test
स्कॉट मैकलियॉड

102
> Manually install any dependencies यह उन परिणामों के साथ समाप्त होने के लिए एक अच्छा तरीका लगता है जो नियमित ट्रैविस बिल्ड से मेल नहीं खाते हैं।
गेरी

6
@Gerry मैन्युअल रूप से निर्भरता स्थापित करने के द्वारा, मुझे लगता है कि उसका मतलब है कि आपके ट्रैविस कॉन्फ़िगरेशन फ़ाइल में मैन्युअल रूप से कमांड को चलाना जो निर्भरता की स्थापना को संभालता है। तो यह एक ही आज्ञा है ट्रैविस CI कर रहा होगा, बस स्वचालित नहीं।
चैतन द्रुह्य्स

8
मुझे ऐसा लगता है कि यह किसी भी तरह मेरे सवाल का जवाब है लेकिन Manually tun your Travis CI build command... जैसे, क्या? कैसे? यह क्या है? मेरे पास एक .travis.ymlफाइल है। मैंने ट्रैविस-बिल्ड की कोशिश की, लेकिन यह एक मृत अंत है।
ब्रैंडन

2
@ आपके अंदर .travis.yml के अंदर आमतौर पर एक स्क्रिप्ट उपधारा होती है जिसे ट्रैविस द्वारा आपके स्रोत के निर्माण के लिए आमंत्रित किया जाता है। इस उत्तर का बिंदु एक स्थानीय वातावरण को सेटअप करना है जो उस ट्रैविस के समान है जो ट्रैविस पर काम कर रहा होगा। इसके बाद आप इन आदेशों को अपने लिए चलाने के लिए ट्रैविस पर निर्भर होने के बजाय खुद को लागू करेंगे। इस तरह से आप इस माहौल में प्रत्येक कमांड को चलाने के प्रभावों को देख सकते हैं - यह एक बिल्ड समस्या में अंतर्दृष्टि प्राप्त कर सकता है जो ट्रैविस पर हो सकता है जो अन्यथा सुलभ नहीं होगा।
स्कॉट मैकलियोड

86

UPDATE: मेरे पास अब पूरा टर्नकी, ऑल-इन-वन उत्तर है, https://stackoverflow.com/a/49019950/300224 देखें । केवल 3 साल लग गए!

ट्रैविस प्रलेखन के अनुसार: https://github.com/travis-ci/travis-ci ट्रैविस CI वेब सेवा जिसे हम जानते हैं और जिसे प्यार करते हैं, वितरित करने के लिए परियोजनाओं का एक संयोजन है। आपकी परियोजना में स्थानीय make testकार्यक्षमता की अनुमति देने के लिए निम्नलिखित परियोजनाओं का सबसेट दिखाई देता है .travis.yml:

ट्रैविस-निर्माण

ट्रैविस-बिल्ड प्रत्येक काम के लिए बिल्ड स्क्रिप्ट बनाता है। यह .travis.ymlफ़ाइल से कॉन्फ़िगरेशन लेता है और एक bashस्क्रिप्ट बनाता है जो तब ट्रैविस-वर्कर द्वारा बिल्ड वातावरण में चलाया जाता है।

ट्रैविस-पाक कला पुस्तकें

ट्रैविस-कुकबुक में शेफ कुकबुक है जो बिल्ड वातावरण को व्यवस्थित करने के लिए उपयोग किया जाता है।

ट्रैविस कार्यकर्ता

ट्रैविस-वर्कर एक साफ वातावरण में बिल्ड स्क्रिप्ट चलाने के लिए जिम्मेदार है। यह ट्रैविस-लॉग के लिए लॉग आउटपुट को स्ट्रीम करता है और ट्रैविस-हब के लिए स्टेट्स अपडेट (बिल्ड स्टार्टिंग / फिनिशिंग) को पुश करता है।

(अन्य उपप्रोजेक्ट GitHub, उनके वेब इंटरफेस, ईमेल और उनके डेटा के साथ संचार के लिए जिम्मेदार हैं)।


4
मेरा मानना ​​है कि एक परियोजना केवल उन तीन घटकों का उपयोग करने और make testकार्य करने के लिए बहुत अच्छा होगा। टिप्पणी करें कि क्या आप मेरे साथ उस पर काम करना चाहते हैं।
विलियम एंट्रीकेन

4
ट्रैविस रेपो पर इस बारे में एक धागा है ।
जल्‍दी

5
डीडीओएस github.com/blog/1981-large-scale-ddos-attack-on-github-com के कारण GitHub आज नीचे है यही कारण है कि हमें स्थानीय परीक्षण की आवश्यकता है
विलियम एंट्रिएन

20
मैं वास्तव में कैसे स्थापित और चलाऊं travis-build? रेपो में कोई निर्देश नहीं हैं।
असंतुष्ट

1
@ सिंधु नहीं, क्षमा करें। एकमात्र उपाय मैंने पाया है कि रेपो को कांटा करना है, ट्रैविस के काम करने तक मेरे बदलावों को जारी रखें, फिर कॉन्फिग फाइल को मुख्य रेपो में कॉपी करें और एक कमिट करें। संपादित करें: इसके बारे में सोचें, आप इसके लिए एक अस्थायी शाखा का उपयोग कर सकते हैं, एक बार किए गए दूरस्थ शाखा को हटा सकते हैं और एक में रिबास / स्क्वैश शुरू कर सकते हैं।
असंतुष्टगीत

23

स्कॉट मैकलेड के समान लेकिन यह भी .travis.yml से कदम चलाने के लिए एक बैश स्क्रिप्ट बनाता है।

समस्या उत्पन्न डॉकटर में स्थानीय रूप से उत्पन्न बैश स्क्रिप्ट के साथ

# choose the image according to the language chosen in .travis.yml
$ docker run -it -u travis quay.io/travisci/travis-jvm /bin/bash

# now that you are in the docker image, switch to the travis user
sudo - travis

# Install a recent ruby (default is 1.9.3)
rvm install 2.3.0
rvm use 2.3.0

# Install travis-build to generate a .sh out of .travis.yml
cd builds
git clone https://github.com/travis-ci/travis-build.git
cd travis-build
gem install travis
# to create ~/.travis
travis version
ln -s `pwd` ~/.travis/travis-build
bundle install

# Create project dir, assuming your project is `AUTHOR/PROJECT` on GitHub
cd ~/builds
mkdir AUTHOR
cd AUTHOR
git clone https://github.com/AUTHOR/PROJECT.git
cd PROJECT
# change to the branch or commit you want to investigate
travis compile > ci.sh
# You most likely will need to edit ci.sh as it ignores matrix and env
bash ci.sh

मैं नीचे चरणों का पालन करने में सक्षम था travis # to create ~/.travis। ट्रैविस को निष्पादित करने के लिए एक कमांड की आवश्यकता है।
इविंद गुसीस लोर्कस

3
sudo - travisहोना चाहिए su - travis
बेरेंड डी बोअर

1
कम्पाइल स्टेप करते समय मुझे:/home/travis/.rvm/rubies/ruby-2.4.1/lib/ruby/site_ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- travis/support (LoadError)
बेरेन्ड डी बोअर

2
@BerenddeBoer: यदि आप अभी भी इस मुद्दे का पता नहीं लगा पाए हैं: यहाँ इस मुद्दे से छुटकारा पाने का उपाय है cd ~/.travis/travis-build/ bundle install bundler add travis bundler binstubs travis cd <REPO_YOU_WANT_TO_RUN_COMPILE_IN> ~/.travis/travis-build/bin/travis compile
वेंकटेश्वरन सेल्वराज

2
ट्रैविस संकलन और न ही मान्य? मुझे अज्ञात कमांड संकलन दिखाई देता है: / travis -h यह प्रदर्शित नहीं करता है: ////
Dawid Drozd

16

Wwtd (क्या ट्रैविस करते हैं) रूबी मणि का उपयोग करें अपने स्थानीय मशीन पर परीक्षण चलाने के लिए मोटे तौर पर के रूप में वे ट्रैविस पर चलेंगे।

यह बिल्ड मैट्रिक्स को फिर से बनाएगा और प्रत्येक कॉन्फ़िगरेशन को चलाएगा, जो पुश करने से पहले स्वच्छता चेक सेटअप के लिए बढ़िया है।

gem i wwtd
wwtd

महत्वपूर्ण नोट: केवल rubyसमर्थन
msangel

अन्य भाषाओं के लिए भी समर्थन जोड़ना संभव होना चाहिए क्योंकि यह चरणों को चलाने के लिए बाहर निकलता है
ग्रॉसर

ये तो बकवास है। बहुत अच्छा काम करता है! धन्यवाद!
22

14

tl; ड्र का उपयोग https://docs.travis-ci.com/user/common-build-problems/#troublesourcing-locally-in-a-docker-image पर https://github.com/ के संयोजन में करें ट्रैविस-सीआई / ट्रैविस-बिल्ड # यूज-ए-एडोन-फॉर-ट्रैविस-क्लि


EDIT 2019-12-06

#troubleshooting-locally-in-a-docker-imageअनुभाग को बदल दिया गया था, #running-builds-in-debug-modeजो डिबग मोड में चल रहे कार्य के लिए SSH के बारे में भी बताता है

EDIT 2019-07-26

#troubleshooting-locally-in-a-docker-imageअनुभाग अब डॉक्स का हिस्सा नहीं है; यहाँ पर क्यों


हालाँकि, यह अभी भी git इतिहास में है: https://github.com/travis-ci/docs-travis-ci-com/pull/2193

Https://travis-ci.org/travis-ci/docs-travis-ci-com/builds/230889063#L661 : के लिए (काफी पुराने, नए नहीं मिल सके) चित्र संस्करण देखें



मैं निरीक्षण करना चाहता था कि मेरे बिल्ड में से एक परीक्षण स्थानीय रूप से प्राप्त नहीं होने वाली त्रुटि के साथ विफल हो गया।

काम किया।

वास्तव में काम करने वाली छवि डॉकटर छवि डॉक्स पृष्ठ में स्थानीय रूप से समस्या निवारण में निर्दिष्ट छवि का उपयोग कर रही थी । मेरे मामले में यह था travisci/ci-garnet:packer-1512502276-986baf0

मैं https://github.com/travis-ci/travis-build#use-as-addon-for-travis-clitravise compile पर वर्णित चरणों को जोड़ने में सक्षम था ।

dm@z580:~$ docker run --name travis-debug -dit travisci/ci-garnet:packer-1512502276-986baf0 /sbin/init
dm@z580:~$ docker images
REPOSITORY                       TAG                          IMAGE ID            CREATED             SIZE
travisci/ci-garnet               packer-1512502276-986baf0    6cbda6a950d3        11 months ago       10.2GB
dm@z580:~$ docker exec -it travis-debug bash -l
root@912e43dbfea4:/# su - travis
travis@912e43dbfea4:~$ cd builds/
travis@912e43dbfea4:~/builds$ git clone https://github.com/travis-ci/travis-build
travis@912e43dbfea4:~/builds$ cd travis-build
travis@912e43dbfea4:~/builds/travis-build$ mkdir -p ~/.travis
travis@912e43dbfea4:~/builds/travis-build$ ln -s $PWD ~/.travis/travis-build
travis@912e43dbfea4:~/builds/travis-build$ gem install bundler
travis@912e43dbfea4:~/builds/travis-build$ bundle install --gemfile ~/.travis/travis-build/Gemfile
travis@912e43dbfea4:~/builds/travis-build$ bundler binstubs travis
travis@912e43dbfea4:~/builds/travis-build$ cd ..
travis@912e43dbfea4:~/builds$ git clone --depth=50 --branch=master https://github.com/DusanMadar/PySyncDroid.git DusanMadar/PySyncDroid
travis@912e43dbfea4:~/builds$ cd DusanMadar/PySyncDroid/
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ ~/.travis/travis-build/bin/travis compile > ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ sed -i 's,--branch\\=\\\x27\\\x27,--branch\\=master,g' ci.sh
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ bash ci.sh

सब कुछ .travis.ymlउम्मीद के अनुसार निष्पादित किया गया था (निर्भरता स्थापित, परीक्षण भाग गया, ...)।

नोट है कि चलाने से पहले bash ci.shमैं परिवर्तन करना पड़ा --branch\=\'\'\करने के लिए --branch\=master\(पिछले करने के लिए दूसरे को देखने के sed -i ...आदेश) में ci.sh

यदि वह काम नहीं करता है तो कमांड लाइन लक्ष्य रेखा संख्या को पहचानने में मदद करेगी और आप लाइन को मैन्युअल रूप से संपादित कर सकते हैं।

travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$ cat ci.sh | grep -in branch
840:    travis_cmd git\ clone\ --depth\=50\ --branch\=\'\'\ https://github.com/DusanMadar/PySyncDroid.git\ DusanMadar/PySyncDroid --echo --retry --timing
889:export TRAVIS_BRANCH=''
899:export TRAVIS_PULL_REQUEST_BRANCH=''
travis@912e43dbfea4:~/builds/DusanMadar/PySyncDroid$

काम नहीं किया।

इस प्रश्न के लिए स्वीकृत उत्तर का पालन किया, लेकिन https://hub.docker.com/u/travisci/ पर travis-ci-garnet-trusty-1512502259-986baf0उल्लिखित चित्र ( ) नहीं मिला ।instance

ट्रैविस-सीआई / वर्कर कमिट और उसके ट्रैविस-वर्कर-इनस्टॉल संदर्भों को इमेज रजिस्ट्री के रूप में वर्कर वर्जन पॉइंट बनाएँ । इसलिए मैंने कोशिश की।quay.io/travisci/

dm@z580:~$ docker run -it -u travis quay.io/travisci/travis-python /bin/bash
travis@370c23a773c9:/$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.5 LTS
Release:    12.04
Codename:   precise
travis@370c23a773c9:/$
dm@z580:~$ docker images 
REPOSITORY                       TAG                          IMAGE ID            CREATED             SIZE
quay.io/travisci/travis-python   latest                       753a216d776c        3 years ago         5.36GB

निश्चित रूप से भरोसेमंद नहीं (Ubuntu 14.04) और छोटे भी नहीं।


1
काम किया दृष्टिकोण मेरे लिए यह किया। लेकिन इसके अलावा मुझे इसके लिए http_proxyमाहौल तैयार करना था git clone। डिफ़ॉल्ट git cloneथ्रो gnutls_handshakeअपवाद पर। इसलिए मुझे विशेष bundlerसंस्करण की स्थापना को लागू करने से नफरत है gem install bundler -v 1.16.6क्योंकि bundler binstubs travisपहले विफल हो गया था। आवश्यक में सुधार bundler`बंडल जानकारी travis` चलाकर संस्करण
Palik

1
यह यहां सबसे अच्छा उत्तर है, क्योंकि यह बताता है कि travis.ymlएक निष्पादन योग्य शेल स्क्रिप्ट में कैसे संकलित किया जाए। अच्छी तरह से किया! इसके लिए एकमात्र सुधार एक ऐसा तंत्र होगा जिसके द्वारा शाखा का निर्माण करते समय मैन्युअल स्ट्रिंग प्रतिस्थापन से बचने के लिए।
बेन जॉनसन

1
@BenJohnson मैंने एक sedकमांड जोड़ी है जो आपके द्वारा बनाए गए बिंदु को संबोधित करती है। दौड़ने से पहले कमांड देखें bash ci.sh
डुआसन माअर

लिंक * एक
डॉकटर

1
@juliangonzalez मैं खुदाई करने में सक्षम था सबसे अच्छी जानकारी के साथ संपादित किया।
दुआसन मूर

7

आप ट्रेवर की कोशिश कर सकते हैं , जो आपके ट्रैविस बिल्ड को चलाने के लिए डॉकर का उपयोग करता है।

इसके विवरण से:

मुझे अक्सर Node.js. के कई संस्करणों के लिए परीक्षण चलाने की आवश्यकता होती है लेकिन मैं n / nm का उपयोग करके मैन्युअल रूप से संस्करणों को स्विच नहीं करना चाहता हूं या केवल परीक्षण चलाने के लिए कोड को ट्रैविस सीआई पर धकेलना चाहता हूं।

इसलिए मैंने ट्रेवर बनाया। यह ट्रैविस CI की तरह ही .travis.yml को पढ़ता है और आपके द्वारा अनुरोधित सभी संस्करणों में परीक्षण चलाता है। अब, आप पुश से पहले परीक्षण कर सकते हैं और अपने गिट इतिहास को साफ रख सकते हैं।


2
FYI करें: यह कोशिश करने वालों के लिए ... PHP का समर्थन नहीं करता
क्रेग वेन

2
विशेष रूप से नोड के लिए प्रतीत होता है। जेसेज इसे विस्तारित करना अच्छा होगा
जोओ नेटो

6

मुझे यकीन नहीं है कि स्थानीय रूप से ट्रैविस को चलाने के लिए आपका मूल कारण क्या था, यदि आप बस इसके साथ खेलना चाहते थे, तो यहां पढ़ना बंद कर दें क्योंकि यह आपके लिए अप्रासंगिक है।

यदि आपके पास पहले से ही होस्टेड ट्रैविस के साथ अनुभव है और आप अपने स्वयं के डेटासेंटर में समान अनुभव प्राप्त करना चाहते हैं, तो पढ़ें।

चूंकि दिसंबर 2014 ट्रैविस सीआई एक एंटरप्राइज ऑन-प्रिमाइसेस संस्करण प्रदान करता है।

http://blog.travis-ci.com/2014-12-19-introducing-travis-ci-enterprise/

मूल्य निर्धारण लेख का हिस्सा है:

लाइसेंस प्रति सीटों पर किया जाता है, जहां हर लाइसेंस में 20 उपयोगकर्ता शामिल होते हैं। मूल्य निर्धारण $ 6,000 प्रति लाइसेंस से शुरू होता है, जिसमें 20 उपयोगकर्ता और 5 समवर्ती बिल्ड शामिल हैं। 8,500 डॉलर में असीमित बिल्ड के साथ एक प्रीमियम विकल्प है।


3
मुझे वास्तव में इसमें भी दिलचस्पी थी। मैं वास्तव में अजीब परियोजना के लिए एक ट्रैविस नौकरी को कॉन्फ़िगर करने की कोशिश कर रहा हूं। 26 अप्रैल को आने वाले सभी लोग .travis.yml फ़ाइल ( github.com/gregturn/issue-aggregator/commits/master ) के साथ फ़िडलिंग कर रहे थे । काश हर सिंगल एडिट को पुश किए बिना कॉन्फ़िगरेशन के साथ छेड़छाड़ करने का एक आसान तरीका था।
gregturn

4
@gregturn एक बदसूरत लेकिन तनाव को कम करने वाला काम जो मैं करने के लिए आया था, वह मेरे रेपो को एक दूसरे गीथो रेपो पर क्लोन करना था। इसलिए रेपो whackamoleउस परियोजना की एक प्रति है जिसे मैं वास्तव में काम करना चाहता हूं, और मैं उस परियोजना के लिए एक अस्थायी ट्रैविस बिल्ड जॉब सेट कर सकता हूं, जबकि मैं बिल्ड ऑटोमेशन के किन्क्स पर काम करता हूं। एक बार जब मैं नीचे गिर गया, तो दर्जनों "उफ़" को हटा दें और वास्तविक गिटहब रेपो में धकेल दें। (और शायद whackamoleGitHub रेपो और इसी ट्रैविस नौकरी को हटा दें ।)
ट्रिपल

3
आश्चर्य है कि $ 6000 लाइसेंस शुल्क एक बार, या वार्षिक है।
एरिक

0

एसएसएच को ट्रैविस सीआई वातावरण में उछाल मेजबान के माध्यम से संभव है। ट्रैविस CI में फीचर नहीं बनाया गया है, लेकिन इसे निम्नलिखित चरणों द्वारा प्राप्त किया जा सकता है।

  1. उछाल मेजबान पर, travisउपयोगकर्ता बनाएं और सुनिश्चित करें कि आप इसे एसएसएच कर सकते हैं।
  2. इन पंक्तियों script:को अपने अनुभाग में रखें .travis.yml(जैसे अंत में)।

    - echo travis:$sshpassword | sudo chpasswd
    - sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
    - sudo service ssh restart
    - sudo apt-get install sshpass
    - sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travis@$bouncehostip
    

    $bouncehostipआपके बाउंस होस्ट का IP / होस्ट कहां है, और $sshpasswordआपका परिभाषित SSH पासवर्ड है। इन चरों को एन्क्रिप्टेड चरों के रूप में जोड़ा जा सकता है ।

  3. परिवर्तनों को धक्का दें। आपको अपने बाउंस होस्ट के लिए SSH कनेक्शन बनाने में सक्षम होना चाहिए।

स्रोत: पर्यावरण ट्रैविस सीआई बिल्ड में शैल


यहाँ पूर्ण उदाहरण है:

# use the new container infrastructure
sudo: required
dist: trusty

language: python
python: "2.7"

script:
- echo travis:$sshpassword | sudo chpasswd
- sudo sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/' /etc/ssh/sshd_config
- sudo service ssh restart
- sudo apt-get install sshpass
- sshpass -p $sshpassword ssh -R 9999:localhost:22 -o StrictHostKeyChecking=no travisci@$bouncehostip

देखें: c-mart/travis-shellGitHub पर


यह भी देखें: डिबगिंग के लिए ट्रैविस-सी बिल्ड पर्यावरण को कैसे पुन : पेश करें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.