কোনও ট্রাভিস-সিআইকে পুনর্গঠন করে কোনও প্রতিশ্রুতি না দিয়েই ট্রিগার করুন?


414

ট্র্যাভিস-সিআই ব্যবহার করে, গিটহাবের কাছে নতুন প্রতিশ্রুতি না দিয়ে কি পুনর্নির্মাণের কাজ শুরু করা সম্ভব?

ব্যবহারের কেস: একটি বাহ্যিকতার কারণে একটি বিল্ড ব্যর্থ হয়। উত্সটি আসলে সঠিক। এটি ঠিক আছে এবং কেবল পুনরায় চালানো হলে পাস করবে।

উদাহরণস্বরূপ, apt-getপ্যাকেজ সার্ভারটি ডাউন থাকার কারণে ব্যর্থ হয় তবে সার্ভারটি আবার ব্যাক আপ হয়। তবে নতুন প্রতিশ্রুতি না দেওয়া পর্যন্ত বিল্ডের স্থিতিটি "আটকে" "ব্যর্থ" হয়ে থাকে।

"ডামি" কমিটকে চাপ দেওয়া ছাড়াও ট্র্যাভিস-সিআইকে আরও একটি বিল্ড করার জন্য কোনও উপায় নেই?

উত্তর:


458
  • আপনার রেপোতে লেখার অ্যাক্সেস থাকলে : বিল্ডের বিশদ স্ক্রিনে, একটি বোতাম রয়েছে Build পুনরায় আরম্ভ করুন বিল্ড । এছাড়াও "আরও বিকল্প" এর অধীনে একটি ট্রিগার বিল্ড মেনু আইটেম রয়েছে।

    দ্রষ্টব্য : ঘোস্টারির মতো ব্রাউজার এক্সটেনশানগুলি পুনঃসূচনা বোতামটি প্রদর্শিত হতে বাধা দিতে পারে। ট্র্যাভিস সিআই এর এক্সটেনশন বা হোয়াইট-লিস্টিং অক্ষম করার চেষ্টা করুন।

    দ্রষ্টব্য 2 : .travis.ymlকনফিগারেশনটি যদি প্রবাহে পরিবর্তিত হয় তবে পুনর্নির্মাণ বোতামটি ক্লিক করা পুরানো কনফিগারেশন সহ ট্র্যাভিস চালিত হবে। ট্র্যাভিস কনফিগারেশনের জন্য প্রবাহের পরিবর্তনগুলি প্রয়োগ করতে জনগণের কাছে অঙ্গীকার যুক্ত করতে হবে বা এটি বন্ধ / পুনরায় খুলতে হবে।

  • যদি আপনি একটি টানার অনুরোধ প্রেরণ করেছেন : আপনি জনসংযোগ বন্ধ করতে পারেন তবে এটি আবার খুলুন । এটি একটি নতুন বিল্ডকে ট্রিগার করবে।

পুনর্নির্মাণ বিল্ড:

বিল্ড স্ক্রিন শটটি পুনরায় চালু করুন

ট্রিগার বিল্ড:

ট্রিগার বিল্ড স্ক্রিন শট


1
আমি অন্যান্য ক্ষেত্রে এটি খুঁজে পেয়েছি এবং ব্যবহার করেছি। তবে আমি শপথ করে বলতে পারি যে আমি উপরে বর্ণিত কারণে এটি ত্রুটিযুক্ত হয়েছে এবং গিয়ার মেনুতে বিকল্পের অভাব রয়েছে। সম্ভবত এটি এককালীন ফ্লুক ছিল, অথবা সম্ভবত আমার ভুল হয়েছিল। যাইহোক, আমি মনে করি আপনি কীভাবে কাজ করার কথা বলে উত্তর দিয়েছেন , তাই আমি এগিয়ে যাব এবং আপনার উত্তরকে স্বীকৃত হিসাবে চিহ্নিত করব। ধন্যবাদ!
গ্রেগ হেন্ডারশট

3
আমি যদি নিজের মালিকানাধীন, ভুল হওয়া বা ব্যর্থ হওয়া যে কোনও প্রকল্পের বিল্ডিং ইতিহাসের দিকে তাকাই তবে এর পুনরায় চালু করার বোতামটি রয়েছে
jbtule

20
আমি মনে করি একটি জটিল ঘটনা হ'ল যেখানে আপনি অন্য কারও প্রকল্পের জন্য একটি টান অনুরোধ জমা দিয়েছেন, এবং এটি আপনার পিআর এর সাথে সম্পর্কিত না হওয়ার কারণে ভুল হয়েছে, এবং আপনি জানেন যে আপনি এটির সাথে আবার চেষ্টা করার চেষ্টা করতে পারলে এটি সফল হবে। আপনি কেন (আপনার প্রকল্প নয়) এটি বোধগম্য - তবে আপনি কেন চান তাও বোধগম্য (আপনার জনসংযোগ ভুলভাবে "খারাপ দেখাচ্ছে")।
গ্রেগ হেন্ডারশট

94
এটি দেখতে আপনাকে সাইন ইন করতে হবে তা ভুলে যাবেন না: পি
মাইকেল জে। ক্যালকিনস

8
এবং আপনার গিথুব রেপ্রোতে লেখার অ্যাক্সেস থাকা দরকার। সুতরাং এটি প্রবাহিত কাঁটাচামচ জন্য কাজ করবে না।
ইজহাকি

206

আপনি খুলতে পারেন সেটিংস GitHub থেকে সংগ্রহস্থলের জন্য ট্যাব এ ক্লিক করুন ঐক্যবদ্ধতা এবং পরিষেবাগুলিতে , খুঁজুন ট্রাভিস সি আই এবং ক্লিক করুন সম্পাদনা , আপনি একটি দেখতে পাবেন টেস্ট পরিষেবা বোতাম। এটি একটি বিল্ড ট্রিগার করবে।


6
আমার মনে হয় ট্র্যাভিস-সিআই পুনরায় আরম্ভের বিল্ড বোতামটি সরিয়ে ফেলেছে, সুতরাং এটি আমার পক্ষে সঠিকভাবে কাজ করেছে। এটি যদিও দুটি বিল্ড সম্পাদন করে ...
ব্লেইস

1
@ ব্লাইজ কোনও সুযোগে কি আপনি ঘোস্টারি (বা অনুরূপ) ব্যবহার করেন? এটি অক্ষম করার চেষ্টা করুন। আমার জন্য, এর ফলে পুনরায় আরম্ভ বিল্ড বোতামটি আবার প্রদর্শিত হবে।
গ্রেগ হেন্ডারশট

29
আপনি যখন রেপোর জন্য প্রাথমিকভাবে ট্র্যাভিস সিআই বিল্ডিংটি সক্রিয় করেন তখন এটি কাজ করে। "রিলোড লোড" বোতামটি এমন কোনও রেপোর জন্য বিদ্যমান নেই যার কোনও পূর্ববর্তী বিল্ড নেই।
ব্রায়ান জে মিলার

12
আমার মতো বোকা লোকদের জন্য একটি নোট: ট্র্যাভিসের রেপো পৃষ্ঠায় নয়, গিথুবেরSettings সংগ্রহস্থলে খুলুন ! আমি বিশ্বাস করতে পারি না ট্র্যাভিসের পৃষ্ঠায় খোঁজ করার চেষ্টা করে আমি 20 মিনিট নষ্ট করেছি । :(Service Hooks
জন রেড

83

আমি জানি আপনি কোন প্রতিশ্রুতি না জারি করে বলেছিলেন, তবে আপনি যদি মাস্টার ব্যতীত অন্য কোনও শাখায় কাজ করে থাকেন তবে কিছুটা সহজ is

git commit --allow-empty -m "Trigger"

আপনি শেষদিকে পুনর্বাসনা করতে পারেন এবং স্কোয়াশ সরিয়ে ফেলতে / খালি কমিটস সরিয়ে ফেলতে এবং সমস্ত গিট হুক জুড়ে কাজ করতে পারেন :)


1
উজ্জ্বল, আপনাকে ধন্যবাদ! আমি কেবল যুক্ত করতে চাই যে "ট্রিগার" প্রতিশ্রুতিটি ইতিহাসের আরও নিচে নামানোর জন্য আমাকে পুনরায় শোধ করতে হয়েছিল; অন্যথায় এটি "ট্রিগার" কমিট অপসারণের পরে নতুন বিল্ডটি কেবল বাতিল করে দেবে।
pmos

63
একই শিরাতে, আপনি বিদ্যমান কমিট এবং ফোর্স পুশটি সংশোধন করতে পারেন: গিট কমিট
এ্যান্ড

4
@ গ্রাহামহরে আপনি যখনই লক্ষ্য রেপোর মালিক নন তখন কোনও পিআর বিল্ডকে ট্রিগার করার জন্য এটিই সেরা সেরা এটি সামগ্রীতে রাখে, মার্জ বা পুনরায় বা কোনও কিছু করার দরকার নেই। দয়া করে এটি একটি উত্তর করুন যাতে এটি আরও দৃশ্যমানভাবে upvote করা সম্ভব।
TWiStErRob

আমি আমার কাছে এমন কোনও ভাণ্ডার তৈরি করেছিলাম যা আমার অ্যাক্সেস ছিল না এবং আমার পক্ষে এটিই কাজ করেছিল কারণ ট্রাভিসের এমন কোনও বিল্ড নেই যা আমার নতুন নির্মিত কাঁটাচামায় পুনরায় চালু করতে পারে।
নিক ম্যাককুরডি

1
@TWiStErRob অন্য কেউ নীচে এরকম উত্তর লিখেছেন।
ফ্র্যাংকলিন ইউ

30

আমি পুনরায় চালানো সিআই বিল্ডস এবং অন্যান্য ট্রিগারগুলিকে বাধ্য করার আরেকটি উপায় পেয়েছি:

  1. git commit --amend --no-editকোনও পরিবর্তন ছাড়াই চালান । এটি বর্তমান শাখায় শেষ প্রতিশ্রুতি পুনরায় তৈরি করবে।
  2. git push --force-with-lease origin pr-branch

8
আমি এটি সুপারিশ করব না। এটি ইতিহাসকে ধ্বংসাত্মকভাবে সংশোধন করে তাই এটি এমন লোককে বিভ্রান্ত করতে পারে যাদের এই অঙ্গীকারের ভিত্তিতে শাখা রয়েছে এবং --amendপতাকা HEADকিছু ক্ষেত্রে কমিটকে পরিবর্তন নাও করতে পারে ।
নিক ম্যাককুরডি

7
বিরল ঘটনাগুলির জন্য আমি এটি দেখতে ভাল পাই যখন আপনার কোনও PR এর জন্য কেবল BUMP ওয়েবহুক প্রয়োজন। কেউই সত্যিই টান-অনুরোধগুলি থেকে বেরিয়ে আসা উচিত নয়, তাই কেউ সঠিক প্রতিশ্রুতিবদ্ধ আইডির উপর নির্ভর করবে না।
ভ্লাদ ফ্রোলভ

4
যান git push --force-with-lease origin pr-branchযাতে আপনি দুর্ঘটনাক্রমে অন্য কারও পরিবর্তনের দিকে
ঝুঁকবেন না

21

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

স্ক্রিন গ্র্যাব

দ্রষ্টব্য: কাজ করার জন্য আপনার লিঙ্কযুক্ত গিটহাব রেপোতে লেখার অ্যাক্সেস থাকা দরকার।


11
এই উত্তরটি মূলত গ্রহণযোগ্য হিসাবে একই, এবং অনেক পরে জমা দেওয়া হয়েছিল।
ড্যান ড্যাসক্লেস্কু

5
@ ড্যানডাসকলেস্কু আমি পোস্ট করার সময় এটির স্ক্রিনশট ছিল না। এবং আমি কেবল এখন বুঝতে পারি যে আপনি অন্য কারও প্রতিক্রিয়া সম্পাদনা করতে পারেন! ;)
জুয়ান

1
@ জুয়ান আপনি এখনও এই উত্তরটি মুছে ফেলতে পারেন যা আমি প্রস্তাব করি যেহেতু এটি অপ্রয়োজনীয় বিশৃঙ্খলা যুক্ত করছে।
রাফাল এডেন

20

আপনার যদি গিটহাবে নতুন প্রকল্প রয়েছে যার মধ্যে .travis.yml রয়েছে তবে কখনই এটি পরীক্ষা করা হয় নি, আপনি এইভাবে প্রতিশ্রুতি না দিয়ে পরীক্ষা চালাতে পারেন:

  1. ট্র্যাভিস সিআই সেটিংগুলিতে পরীক্ষার সক্ষম করুন
  2. গিটহাবে প্রকল্পের পৃষ্ঠাটি খুলুন
  3. সেটিংস খুলুন -> ওয়েব হুকস এবং পরিষেবাদি
  4. পরিষেবাগুলিতে ট্র্যাভিস সিআই খুঁজুন এবং সম্পাদনা বোতাম টিপুন
  5. "টেস্ট পরিষেবা" টিপুন

3
এটি সদ্য নির্মিত প্রকল্পগুলির জন্য উত্তর।
এরিক মুরান্দ

16

আপনি ট্র্যাভিস সিএলআই ব্যবহার করে এটি করতে পারেন । ডকুমেন্টেশনে বর্ণিত হিসাবে , প্রথমে সিএলআই সরঞ্জাম ইনস্টল করুন, তারপরে:

travis login --org --auto
travis token

আপনি এই টোকেনটিকে একটি পরিবেশের পরিবর্তনশীলতে রাখতে পারবেন TRAVIS_TOKEN, যতক্ষণ না আপনি যে ফাইলটি এতে রাখেন ততক্ষণ কোনও সংস্করণ সংস্করণ-নিয়ন্ত্রিত না হয়।

আমি ট্রিগার জমা দেওয়ার জন্য এই ফাংশনটি ব্যবহার করি:

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }

আপনি নিজের কাঁটাচামচ জন্য নিজের ট্র্যাভিস বিল্ড সেটআপ করতে পারেন।
স্যাম ব্রাইটম্যান

আপনি নিজের কাঁটাচামচের শাখাটি তৈরি করতে পারেন যা থেকে অনুরোধটি তৈরি করা হয়েছে।
স্যাম ব্রাইটম্যান

আপনার পিআর এবং পিআর এর শাখা মূলত একই জিনিস, তাই না? আপনি জনসংযোগ তৈরির পরেও যদি প্রবাহের অন্য পরিবর্তন হয় তবে অবশ্যই এটি আপনার 100% নিশ্চিত হওয়ার জন্য পুনরায় চালু করতে হবে। তবে এটি যেভাবেই হওয়া দরকার, এবং গিটিহবকে ইউআইতে একটি রিবেস বোতামটি দেখাতে হবে যা সেই ক্ষেত্রে PR এর নতুন বিল্ডকে সূচিত করবে।
স্যাম ব্রাইটম্যান

11

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

আরও বিকল্প → ট্রিগার বিল্ড

তারপরে আপনাকে একটি ডায়ালগ বক্স উপস্থিত করা হবে যাতে আপনি শাখাটি বেছে নিতে এবং কনফিগারেশনটি কাস্টমাইজ করতে পারেন:

কাস্টম বিল্ড ডায়ালগ বক্স

আমি এটি লিখছি এমন সময় এটি বিটাতে রয়েছে এবং এটি কিছুটা বগি হিসাবে উপস্থিত হবে (তবে আমি আশা করি তারা খুব শীঘ্রই সমস্যাগুলি সমাধান করবেন)।


2
ধন্যবাদ। আমার পক্ষে এটি সর্বোত্তম প্রতিক্রিয়া কারণ একটি ট্রিগার বিল্ড পরিবর্তনগুলি বিল্ডের আইডিও তৈরি করে, সাধারণ পুনর্নির্মাণের সাথে নয় (বোতামের মাধ্যমে)। আপনি যদি আপনার স্ক্রিপ্টগুলিতে ট্র্যাভিস আইডি ব্যবহার করেন তবে এটি জানা গুরুত্বপূর্ণ।
করিমা রাফেস

2
এটি আরও বেশি হওয়া দরকার
গিলসপি

8

আপনি যদি ট্র্যাভিস সিআই ক্লায়েন্ট ইনস্টল করেন তবে আপনি travis restart <job#>কনসোল থেকে ম্যানুয়ালি কোনও বিল্ড পুনরায় চালাতে ব্যবহার করতে পারেন । ব্যবহার করে একটি শাখার জন্য আপনি শেষ কাজটি সন্ধান করতে পারেনtravis show <branch>

travis show master
travis restart 48 #use Job number without .1
travis logs master

ট্র্যাভিস সিআই ক্লায়েন্ট

আপডেট: দুঃখজনকভাবে দেখে মনে হচ্ছে এটি সর্বশেষতম প্রতিশ্রুতি ব্যবহার করে নতুন বিল্ড শুরু করে না, বরং কেবলমাত্র রেপোর পূর্ববর্তী অবস্থা ব্যবহার করে একটি পূর্ববর্তী বিল্ড পুনরায় আরম্ভ করে।


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

@redanimalwar একটি সাধারণ ব্যবহারের ক্ষেত্রে সিআই তৈরি করতে বাধ্য করা হয় যখন এটি পরিবর্তনগুলি সনাক্ত করতে ব্যর্থ হয় বা শান্ত সময় হয়।
স্যাম ব্রাইটম্যান

4

আমার এখানে উল্লেখ করা উচিত যে আমাদের কাছে ওয়েবে নতুন বিল্ড ট্রিগার করার একটি মাধ্যম রয়েছে। বিশদ জানতে https://blog.travis-ci.com/2017-08-24-trigger-custom- বিল্ড দেখুন ।

TL; DR "আরও বিকল্পসমূহ" এ ক্লিক করুন এবং "ট্রিগার বিল্ড" নির্বাচন করুন।


আপনার যদি সংগ্রহশালাটিতে কোনও লেখার অ্যাক্সেস / কোলাবোরেটার না থাকে এবং আপনার নিজের টানার অনুরোধটির জন্য পুনরায় বিল্ড করতে চান তবে এটি কাজ করে না। আমি সেই বিকল্পটি দেখছি না। আর ট্রাভিস CLI চেষ্টা যখন, এটা বলে build #xxxx has been restarted কিন্তু যদি আপনি ওয়েব পেজ এ দেখুন যদি আপনি কোন বিল্ড ঘটছে দেখতে না
bitek

3

যদি বিল্ডটি কখনও ঘটে না (সম্ভবত আপনি পুল-রিকুয়েস্ট বিল্ড স্যুইচটি সময়মতো সেট আপ করেন নি), আপনি গিথুবটিতে পুল অনুরোধটি বন্ধ হিসাবে চিহ্নিত করতে পারেন তবে এটি খোলার হিসাবে চিহ্নিত করুন এবং একটি নতুন বিল্ডটি ট্রিগার হবে।


1

আমি এখানে 'আপডেট শাখা' ক্লিক করে পুনরায় চালিত করার জন্য একটি অনুরোধের ভিত্তিতে পরীক্ষাগুলি ট্রিগার করেছিলাম: github চেক পরীক্ষা উপাদান


1

দেপেনডাবোট যে পিআর তৈরি করেছিলেন তা পুনর্নির্মাণের জন্য আমার পক্ষে কী কাজ করেছে তা এখানে রয়েছে তবে ত্রুটির কারণে ব্যর্থ হয়েছে .travis.yml:

  1. পিআর বন্ধ করুন
  2. Dependabot মন্তব্য করার জন্য অপেক্ষা করুন ("ঠিক আছে, আমি আপনাকে এই রিলিজ সম্পর্কে আবারও জানাব না, তবে নতুন সংস্করণ পাওয়া গেলে যোগাযোগ করব" ")। এটি এর শাখা মুছে ফেলবে।
  3. শাখাটি পুনঃস্থাপন করুন Dependabot সরানো (যেমন কিছু dependabot/cargo/tempfile-3.0.4)।
  4. আবার পিআর খুলুন

1

ট্র্যাভিসে প্রথমে লগ ইন করার বিষয়টি নিশ্চিত করুন । আপনি লগ ইন না করা পর্যন্ত পুনর্নির্মাণ বোতামটি উপস্থিত হবে না I


0

কখনও কখনও এটি ঘটে যে সার্ভার কিছু ভুল করে। লগ আউট / সাইন ইন করার চেষ্টা করুন এবং সবকিছু ঠিক তখনই হতে পারে। (হ্যাঁ আজ বিকেলে আমার কাছে এটি ঘটেছে।)


-1

সিম্পি আপনার লেখার অ্যাক্সেস না থাকলে পিআরটি বন্ধ করুন এবং পুনরায় খুলুন।


না, দয়া করে আবর্জনা টানার অনুরোধগুলি ছেড়ে যাবেন না, এটি বিরক্তিকর। আপনার শাখায় কেবল নতুন কমিট (গুলি) চাপুন (উদাহরণস্বরূপ আপনি কমিটের তারিখটি পরিবর্তন করতে পারেন: গিট কমিট --amend --date = এখন && গিট পুশ -f)।
intgr
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.