স্থানীয়ভাবে ট্র্যাভিস-সিআই চালাবেন কীভাবে


523

আমি সবেমাত্র একটি প্রকল্পে যোগদান করেছি, এবং আমি ট্র্যাভিস-সিআই-তে নতুন। বিল্ডটি চালানোর জন্য উত্সটিতে আমার প্রতিটি পরিবর্তনকে .travis.yml এবং প্রতিটি সামান্য পরিবর্তনকে পরিবর্তিত করার দরকার নেই। জেনকিন্সের সাহায্যে আপনি জিনকিনস ডাউনলোড করতে পারেন এবং স্থানীয়ভাবে চালাতে পারেন। ট্র্যাভিস কি এরকম কিছু সরবরাহ করে?

দ্রষ্টব্য: আমি ট্র্যাভিস-সিআই ক্লিটি দেখেছি এবং এটি ডাউনলোড করেছি, তবে কেবল তাদের এপিআই কল করা যা আমার গিথুব রেপোর সাথে সংযোগ স্থাপন করে, তাই যদি আমি ঠেলাঠেলি করি না তবে আমি পুনরায় চালু করার বিষয়টি বিবেচিত হবে না শেষ বিল্ড।


3
ট্র্যাভিস সিআই না চালিয়ে আপনার স্থানীয়ভাবে পরীক্ষা চালানো উচিত। কোন কমান্ডটি চালানো হবে তা দেখতে .travis.yml এর "স্ক্রিপ্ট" বিভাগটি দেখুন।
কনস্ট্যান্টিন হায়েস

69
তবে কেবল পরীক্ষা চালানো সমস্যা নয় - প্রায়শই কোনও ট্র্যাভিস বিল্ড ব্যর্থ হয় কারণ install:বিভাগে পদক্ষেপগুলি সেটআপ ও ইনস্টল করে এবং সম্ভবত এগুলিই যে প্রশ্নটি আরও উদ্বিগ্ন।
ব্র্যান্ডন রোডস

4
আমি এগুলি যুক্ত করব যে জটিল প্রকল্পগুলিতে বিভিন্ন কারণে (যেমন: বিভিন্ন পয়েন্ট রিলিজ বা রানটাইমের সিস্টেম ইন্টারঅ্যাকশন, স্বতঃস্ফূর্ত সময়-প্রেরণামূলক পরীক্ষাগুলি যেমন টাইমআউট টেস্টস ইসি)) টেস্টগুলি কখনও কখনও স্থানীয় পরিবেশ এবং ট্র্যাভিস সিআই-তে আলাদাভাবে আচরণ করতে পারে ।
চেনাশোনা পেন্টার

উত্তর:


200

এই প্রক্রিয়াটি আপনাকে আপনার কম্পিউটারে ট্র্যাভিস বিল্ড জবকে সম্পূর্ণরূপে পুনরুত্পাদন করতে দেয়। এছাড়াও, আপনি যে কোনও সময় প্রক্রিয়াটি বিঘ্নিত করতে পারেন এবং ডিবাগ করতে পারেন। নীচে একটি উদাহরণ যেখানে আমি পুরোপুরি পিএইচপি-স্কুল / ক্লিপ-মেনুতে # 191.1 কাজের ফলাফলগুলি পুনরুত্পাদন করি ।

পূর্বশর্ত

  • গিটহাবে আপনার পাবলিক রেপো রয়েছে
  • আপনি ট্র্যাভিসে কমপক্ষে একটি বিল্ড চালিয়েছেন
  • আপনার কম্পিউটারে ডকার সেট আপ আছে

বিল্ড এনভায়রনমেন্ট সেট আপ করুন

তথ্যসূত্র: https://docs.travis-ci.com/user/common-build-problems/

  1. আপনার নিজের অস্থায়ী বিল্ড আইডি তৈরি করুন

    BUILDID="build-$RANDOM"
    
  2. দেখুন বিল্ড লগ শ্রমিক তথ্যের জন্য প্রদর্শনী করুন বোতামে খুলুন এবং উদাহরণস্বরূপ লাইন খুঁজে, এখানে এবং চালানোর এটি আটকে দিন (কোলন পরে ট্যাগ প্রতিস্থাপন নতুন প্রাপ্তিসাধ্য এক সঙ্গে) :

    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এখানে ক্লিক করুন একটি কী যোগ করার জন্য
  • এফওয়াইআই: git pullগিটহাবের দিকে ধাক্কা দেওয়ার আগে আপনি ডকের ভিতরে থেকে আপনার ডেভ বাক্স থেকে কমিটগুলি লোড করতে পারেন
  • আপনি যদি ট্র্যাভিসের কমান্ডগুলি পরিবর্তন করতে চান তবে এটি কীভাবে কোনও কাজের পরিবর্তে অনুবাদ করে তা নির্ধারণ করা আপনার দায়িত্ব .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
স্কালে 0

7
আপনার রেফারেন্স লিঙ্কটি আর কাজ করে না - যেমন 'স্থানীয়ভাবে একটি ধারক ভিত্তিক ডকার চিত্র চালনা' বিভাগটি সেই পৃষ্ঠা থেকে সরানো হয়েছিল। সম্ভবত উদাহরণ আউটপুট মধ্যে পার্থক্য sudo: requiredসেট না থাকার কারণে ছিল ? আমার একটি বর্তমান বিল্ডে আমি দেখতে পাচ্ছি travis-ci-sardonyx-xenial-1547455603-2c98a19যে আমি ট্র্যাভিসি / সিআই-সার্ডনিএক্সে
ম্যাক্সচেলেপজিগ

4
আমার জন্য Docker হাব উপর travisci / CI-তামড়ি এর সাম্প্রতিক সংস্করণ ব্যবহার (travisci / CI-তামড়ি: প্যাকার-1515445631-7dfb2e1) কৌতুক করেনি
তালেব

3
আপনি Travis একটি ভাষায় নির্দিষ্ট উদাহরণস্বরূপ কাজ করছি, তাহলে আপনি ডেডিকেটেড চিত্র ব্যবহার করতে পারেন, মত পাইথন এক
জ্যাকারি রমজি

162

ট্র্যাভিস-সিআই একটি নতুন ধারক-ভিত্তিক অবকাঠামো সরবরাহ করে যা ডকার ব্যবহার করে। আপনি যদি ট্র্যাভিস-সিআই বিল্ডটি স্থানীয়ভাবে পুনরুত্পাদন করে সমস্যা সমাধানের চেষ্টা করছেন তবে এটি খুব কার্যকর হতে পারে। এটি ট্র্যাভিস সিআইয়ের ডকুমেন্টেশন থেকে নেওয়া হয়েছে ।

একটি ডকার ইমেজে স্থানীয়ভাবে সমস্যার সমাধান

আপনার যদি বিল্ডে সঠিক সমস্যাটি সনাক্ত করতে সমস্যা হয় তবে এটি প্রায়শই স্থানীয়ভাবে বিল্ডটি চালাতে সহায়তা করে। এটি করার জন্য আপনাকে আমাদের ধারক ভিত্তিক অবকাঠামো (যেমন, আপনার sudo: falseমধ্যে থাকা .travis.yml) ব্যবহার করা উচিত এবং ট্র্যাভিস সিআইতে আপনি কোন ডকার চিত্র ব্যবহার করছেন তা জানতে know

স্থানীয়ভাবে একটি ধারক ভিত্তিক ডকার চিত্র চালানো

  1. ডকার ইঞ্জিনটি ডাউনলোড এবং ইনস্টল করুন ।
  2. ডকার হাব থেকে একটি চিত্র নির্বাচন করুন । আপনি যদি কোনও ভাষা-নির্দিষ্ট চিত্র চয়ন করেন না ci-ruby। একটি টার্মিনাল খুলুন এবং চিত্রের ইউআরএলটি ব্যবহার করে একটি ইন্টারেক্টিভ ডকার সেশন শুরু করুন:

    docker run -it travisci/ubuntu-ruby:18.04 /bin/bash
    
  3. travisব্যবহারকারীর স্যুইচ করুন:

    su - travis
    
  4. /চিত্রের ফোল্ডারে আপনার গিট সংগ্রহস্থলটি ক্লোন করুন ।
  5. যেকোন নির্ভরতা ম্যানুয়ালি ইনস্টল করুন।
  6. আপনার ট্র্যাভিস সিআই বিল্ড কমান্ডটি ম্যানুয়ালি চালান।

6
@ ডাস্টিনগ্রাহাম, এটি ট্র্যাভিস সিআই দ্বারা নির্মিত প্রকল্পটি কীভাবে তৈরি করতে কনফিগার করা হয়েছে তার উপর নির্ভর করে। যে প্রকল্পে আমি কাজ করছি, সেই বিল্ড কমান্ডটি স্ক্রিপ্টের অধীনে .travis.yml ফাইলে কনফিগার করা হয়েছিল: উপশক্তি এবং ছিল । make test
স্কট ম্যাকলিউড

102
> Manually install any dependencies ফলাফলগুলি শেষ হওয়ার ভাল উপায় বলে মনে হচ্ছে যা নিয়মিত ট্র্যাভিস বিল্ডের সাথে মেলে না।
গেরি

6
@ গেরি ম্যানুয়ালি নির্ভরতা ইনস্টল করে, আমি ধরে নিয়েছি তার অর্থ হ'ল ম্যানুয়ালি আপনার ট্র্যাভিস কনফিগারেশন ফাইলে আপনার যে কমান্ড রয়েছে তা নির্ভরতাগুলির ইনস্টলেশন পরিচালনা করে। সুতরাং এটি ট্রাভিস সিআই একই কমান্ডগুলি করবে, কেবল স্বয়ংক্রিয় নয়।
চ্যাথান ড্রিহুইস

8
আমার মনে হচ্ছে এটি আমার প্রশ্নের উত্তর একরকম তবে Manually tun your Travis CI build command... ... লাইক, কি? কিভাবে? এটা কি? আমার একটা .travis.ymlফাইল আছে আমি ট্র্যাভিস-বিল্ড চেষ্টা করেছিলাম তবে এটি একটি শেষ।
ব্র্যান্ডন

2
@ ব্র্যান্ডন আপনার .travis.yml এর ভিতরে সাধারণত একটি স্ক্রিপ্ট উপধারা থাকে যা ট্র্যাভিস দ্বারা আপনার উত্স তৈরির জন্য আহ্বান করা হয়। এই উত্তরের বিষয়টি হ'ল স্থানীয় পরিবেশ সেটআপ করা যা ট্র্যাভিসরা যে অপারেটিং চালাচ্ছে তার অনুরূপ। এরপরে আপনি ট্র্যাভিসের উপর নির্ভর করার পরিবর্তে এগুলি চালানোর জন্য নিজেই এই আদেশগুলি ডেকে আনবেন। এই পরিবেশের মধ্যে প্রতিটি কমান্ড নিজেই চালনার প্রভাবগুলি আপনি দেখতে পাচ্ছেন - এটি ট্র্যাভিসের কোনও বিল্ড সমস্যার মধ্যে অন্তর্দৃষ্টি তৈরি করতে পারে যা অন্যথায় অ্যাক্সেসযোগ্য হবে না।
স্কট ম্যাকলিউড

86

আপডেট: আমার কাছে এখন সম্পূর্ণ টার্নকি, সর্বকুল উত্তর, https://stackoverflow.com/a/49019950/300224 দেখুন । মাত্র 3 বছর সময় বের করতে!

ট্র্যাভিস ডকুমেন্টেশন অনুসারে: https://github.com/travis-ci/travis-ci এমন প্রকল্পগুলির সমাহার রয়েছে যা ট্র্যাভিস সিআই ওয়েব পরিষেবাটি আমরা জানি এবং ভালোবাসি deliver নীচের প্রকল্পগুলির উপসেটগুলি আপনার প্রকল্পের মধ্যে make testব্যবহার করে স্থানীয় কার্যকারিতাটির অনুমতি দেয় বলে মনে হচ্ছে .travis.yml:

Travis-বিল্ড

ট্র্যাভিস-বিল্ড প্রতিটি কাজের জন্য বিল্ড স্ক্রিপ্ট তৈরি করে। এটি .travis.ymlফাইল থেকে কনফিগারেশন নেয় এবং একটি bashস্ক্রিপ্ট তৈরি করে যা ট্র্যাভিস-কর্মী দ্বারা বিল্ড পরিবেশে চালিত হয়।

Travis-রান্নার বই

ট্র্যাভিস-কুকবুকগুলি শেফ কুকবুকগুলিকে ধারণ করে যা বিল্ডিং পরিবেশ সরবরাহের জন্য ব্যবহৃত হয়।

Travis শ্রমিক

ট্র্যাভিস-কর্মী একটি পরিষ্কার পরিবেশে স্ক্রিপ্টগুলি তৈরি করার জন্য দায়বদ্ধ। এটি লগ আউটপুটটিকে ট্র্যাভিস-লগগুলিতে প্রবাহিত করে এবং ট্র্যাভিস-হাবের জন্য স্টেট আপডেটগুলি (বিল্ড স্টার্টিং / ফিনিশিং) পুশ করে।

(অন্যান্য উপ-প্রকল্পগুলি গিটহাব, তাদের ওয়েব ইন্টারফেস, ইমেল এবং তাদের এপিআইয়ের সাথে যোগাযোগের জন্য দায়বদ্ধ))


4
আমি বিশ্বাস করি যে কেবলমাত্র এই তিনটি উপাদান ব্যবহার করতে এবং একটি make testফাংশন সম্পাদন করার জন্য একটি প্রকল্প দুর্দান্ত। আপনি যদি আমার সাথে এটিতে কাজ করতে চান তবে মন্তব্য করুন।
উইলিয়াম এন্টারিকেন

4
ট্র্যাভিস রেপোতে এটি সম্পর্কে একটি থ্রেড রয়েছে ।
হিড়ম্যাপ্লেড


20
আমি আসলে কীভাবে ইনস্টল করব এবং চালাব travis-build? রেপোর কোনও নির্দেশ নেই are
অসন্তুষ্টগোট

1
@ সিন্ধুস না, দুঃখিত আমি খুঁজে পেয়েছি একমাত্র সমাধান, রেপো কাঁটাচামচ করা, ট্র্যাভিস কাজ না করা অবধি আমার পরিবর্তনগুলি চালিয়ে যাওয়া, তারপরে কনফিগারেশন ফাইলটি মূল রেপোতে অনুলিপি করা এবং একটি প্রতিশ্রুতিবদ্ধ করা। সম্পাদনা করুন: এটি ভাবতে আসুন, আপনি এটির জন্য একটি অস্থায়ী শাখা ব্যবহার করতে পারেন, একবার হয়ে গেলে দূরবর্তী শাখাটি মুছুন এবং পুনরায় / স্কোয়াশ একটিতে চুক্তি করুন।
অসন্তুষ্ট গোট

23

স্কট ম্যাকলিওডের অনুরূপ তবে এটি .travis.yml থেকে পদক্ষেপগুলি চালানোর জন্য একটি বাশ স্ক্রিপ্ট তৈরি করে।

উত্পন্ন বাশ স্ক্রিপ্ট সহ ডকারে স্থানীয়ভাবে সমস্যার সমাধান sh

# 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
@ বেরেনডে বোয়ের: আপনি যদি এখনও এই সমস্যাটি না বের করেন: সমস্যাটি থেকে মুক্তি পাওয়ার জন্য এখানেই সমাধান 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
ট্র্যাভিস সংকলন না আর বৈধ? আমি অজানা কমান্ড সংকলনটি দেখতে পেয়েছি: / ট্র্যাভিস -h এটি দেখায় না: ////
দাউদ দ্রোজড

16

ব্যবহারের (কি Travis করবেন) wwtd রুবি তারা Travis চালানো হবে মোটামুটিভাবে যেমন আপনার স্থানীয় মেশিনে পরীক্ষা চালানোর মণি।

এটি বিল্ড ম্যাট্রিক্স পুনরায় তৈরি করবে এবং প্রতিটি কনফিগারেশন চালাবে, ধাক্কা দেওয়ার আগে স্যানিটি চেক সেটআপ থেকে দুর্দান্ত।

gem i wwtd
wwtd

গুরুত্বপূর্ণ দ্রষ্টব্য: কেবল rubyসমর্থন
মিসানজেল

পদক্ষেপগুলি চালিয়ে যাওয়ার কারণে অন্যান্য ভাষার পক্ষেও সমর্থন যোগ করা সম্ভব হবে
গ্রসার

এটা অসুস্থ। দুর্দান্ত কাজ! ধন্যবাদ!
পেপেরাকি

14

TL; ড চিত্র ব্যবহার করুন এ নিদিষ্ট https://docs.travis-ci.com/user/common-build-problems/#troubleshooting-locally-in-a-docker-image সঙ্গে একযোগে https://github.com/ ট্র্যাভিস-সিআই / ট্র্যাভিস-বিল্ড # ট্র্যাভিস-ক্লিমে অ্যাড-অ্যাডন-হিসাবে ব্যবহার করুন


সম্পাদনা 2019-12-06

#troubleshooting-locally-in-a-docker-imageবিভাগটি প্রতিস্থাপন করা হয়েছিল #running-builds-in-debug-modeযা ডিবাগ মোডে চলমান কাজটিতে কীভাবে এসএসএইচ করতে হবে তাও বর্ণনা করে

সম্পাদনা 2019-07-26

#troubleshooting-locally-in-a-docker-imageবিভাগটি এখন আর ডক্সের অংশ নয়; কারণটা এখানে


যদিও এটি এখনও গিট ইতিহাসে রয়েছে: 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

অবশ্যই নির্ভরযোগ্য নয় (উবুন্টু 14.04) এবং ছোটও নয়।


1
পরিশ্রমী পদ্ধতিটি আমার পক্ষে তা করেছে। তবে অতিরিক্ত জন্য আমাকে http_proxyপরিবেশের জন্যও তৈরি করতে হয়েছিল git clone। ডিফল্টে ব্যতিক্রম git cloneছোঁড়ে gnutls_handshake। সুতরাং আমি নির্দিষ্ট bundlerসংস্করণ ইনস্টলেশন প্রয়োগ করতে টুপি gem install bundler -v 1.16.6কারণ bundler binstubs travisপূর্বে ব্যর্থ হয়েছে। bundler`বান্ডিল তথ্য ট্র্যাভিসিস চালিয়ে প্রয়োজনীয় সংস্করণটি উন্নত করুন
পালিক

1
এটি এখানে সেরা উত্তর, কারণ এটি travis.ymlনির্বাহযোগ্য শেল স্ক্রিপ্টে কীভাবে সংকলন করবেন তা ব্যাখ্যা করে । সুন্দরভাবে সম্পন্ন! এর একমাত্র উন্নতি হ'ল একটি প্রক্রিয়া যার দ্বারা ম্যানুয়াল স্ট্রিং প্রতিস্থাপনটি এড়াতে হবে যখন কোন শাখাটি তৈরি করবেন তা নির্দিষ্ট করে দেওয়ার সময়।
বেন জনসন

1
@ বেন জনসন আমি একটি sedকমান্ড যুক্ত করেছি যা আপনার করা পয়েন্টটি সম্বোধন করে। দৌড়ানোর আগে কমান্ডটি দেখুন bash ci.sh
দুয়ান মায়ার

* একটি ডকারের ছবিতে স্থানীয়ভাবে সমস্যা সমাধানের লিঙ্কটি আর কাজ করে না
জুলিয়ানগনজালেজ

1
@ জুলিয়ানগনজালেজ সর্বোত্তম তথ্যের সাথে সম্পাদিত আমি খনন করতে সক্ষম হয়েছি।
দুয়ান মায়ার

7

আপনি ট্র্যাভর চেষ্টা করতে পারেন , যা আপনার ট্র্যাভিস বিল্ড চালানোর জন্য ডকার ব্যবহার করে।

এর বর্ণনা থেকে:

আমার প্রায়শই নোড.জেএস এর একাধিক সংস্করণের জন্য পরীক্ষা চালানো দরকার তবে আমি n / nvm ব্যবহার করে ম্যানুয়ালি সংস্করণগুলিতে স্যুইচ করতে চাই না বা কেবল পরীক্ষাগুলি চালানোর জন্য কোডটি ট্র্যাভিস সিআই-তে চাপ দিন।

এজন্য আমি ট্রেভর তৈরি করেছি। এটি .travis.yml পড়ে এবং ট্র্যাভিস সিআইয়ের মতো আপনার অনুরোধ করা সমস্ত সংস্করণে পরীক্ষা চালায়। এখন, আপনি ধাক্কা দেওয়ার আগে পরীক্ষা করতে পারেন এবং আপনার গিট ইতিহাসটি পরিষ্কার রাখতে পারেন।


2
যারা চেষ্টা করে দেখতে চান তাদের জন্য এফওয়াইআই ... পিএইচপি সমর্থন করে না
ক্রেগ ওয়েন

2
একচেটিয়াভাবে node.js. এটি প্রসারিত করতে চমৎকার হবে
জোও নেটো

6

আমি নিশ্চিত নই যে স্থানীয়ভাবে ট্র্যাভিস চালানোর জন্য আপনার আসল কারণটি কী, যদি আপনি কেবল এটির সাথে খেলতে চান, তবে এটি এখানে আপনার কাছে অপ্রাসঙ্গিক বলে পড়া বন্ধ করুন।

আপনার যদি ইতিমধ্যে হোস্ট করা ট্র্যাভিসের অভিজ্ঞতা আছে এবং আপনি নিজের ডেটাসেন্টারে একই অভিজ্ঞতা পেতে চান তবে পড়ুন।

ডিসেম্বর ২০১৪ সাল থেকে ট্র্যাভিস সিআই একটি এন্টারপ্রাইজ অন-প্রিমেস সংস্করণ সরবরাহ করে।

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 ) এর সাথে ঝাঁকুনি দিচ্ছিল । আমি আশা করি কনফিগারেশনের সাথে টিঙ্কার করার আরও সহজ উপায় যদি প্রতিটি একক সম্পাদনা না ঠেকানো হয়।
গ্রেগটার্ন

4
@ গ্রেগটারন একটি কুৎসিত কিন্তু মানসিক চাপ হ্রাস করার কাজটি আমি নিয়ে এসেছিলাম আমার রেপোকে দ্বিতীয় গিটহাব রেপোতে ক্লোন করা। সুতরাং রেপো whackamoleহ'ল প্রকল্পটির একটি অনুলিপি যা আমি সত্যিই কাজ করতে চাই এবং আমি বিল্ড অটোমেশনের কিছুটা কাজ করার সময় আমি সেই প্রকল্পের জন্য একটি অস্থায়ী ট্র্যাভিস বিল্ড জব সেট করতে পারি। আমি একবারে তা পেরে ফেললাম, কয়েক ডজন "উফ" কমান্ড রিবেস করে রিয়েল গিটহাব রেপোতে চাপ দিন। (এবং সম্ভবত whackamoleগিটহাব রেপো এবং সংশ্লিষ্ট ট্র্যাভিস কাজ সরিয়ে ফেলুন ))
ট্রিপলি

3
অবাক হোন যদি license 6000 লাইসেন্স ফি এককালীন বা বার্ষিক হয়।
এরিক

0

বাউন্স হোস্টের মাধ্যমে এসএসএইচ থেকে ট্র্যাভিস সিআই পরিবেশ হতে পারে। বৈশিষ্ট্যটি ট্র্যাভিস সিআই-তে অন্তর্নির্মিত নয়, তবে নিম্নলিখিত পদক্ষেপগুলি দ্বারা এটি অর্জন করা যেতে পারে।

  1. বাউন্স হোস্টে, travisব্যবহারকারী তৈরি করুন এবং নিশ্চিত করুন যে আপনি এটিতে এসএসএইচ করতে পারেন।
  2. এই script:বিভাগগুলি আপনার বিভাগে রাখুন .travis.yml(যেমন শেষে) Put

    - 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আপনার বাউন্স হোস্টের আইপি / হোস্টটি কোথায় এবং $sshpasswordআপনার সংজ্ঞায়িত এসএসএইচ পাসওয়ার্ড। এই ভেরিয়েবলগুলি এনক্রিপ্ট করা ভেরিয়েবল হিসাবে যুক্ত করা যায়

  3. পরিবর্তনগুলি পুশ করুন। আপনার বাউন্স হোস্টের সাথে আপনার একটি এসএসএইচ সংযোগ তৈরি করতে সক্ষম হওয়া উচিত।

উত্স: শেল ইন ট্র্যাভিস সিআই বিল্ড এনভায়রনমেন্ট


এখানে সম্পূর্ণ উদাহরণ:

# 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 এ


আরও দেখুন: ডিবাগিংয়ের জন্য ট্র্যাভিস-সিআই বিল্ড এনভায়রনমেন্ট কীভাবে প্রজনন করা যায়

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.