জেনকিনস গিট প্লাগইন: নির্দিষ্ট ট্যাগ কীভাবে তৈরি করবেন?


120

জেনকিন্সকে একটি নির্দিষ্ট ট্যাগ তৈরি করতে আমার সমস্যা হচ্ছে। ট্যাগটি একটি প্যারামিট্রাইজড বিল্ডের অংশ, তবে কীভাবে কেবল ট্যাগটি তৈরি করতে গিট প্লাগইন এ এটি পাস করতে হয় তা আমি জানি না। এটি আমার দিনের 3 ঘন্টা সময় নিয়েছে এবং আমি স্ট্যাক ওভারফ্লোতে মাস্টারদের কাছে পরাজয় স্বীকার করেছি।


আপনি বোঝাতে চাইছেন এটি স্ট্যাকওভারফ্লো / প্রশ্নগুলি / 7157170/… থেকে আলাদা ? ( google.com/… এর তৃতীয় ফলাফল )
ভোনসি

1
"এটি আমার দিনের 3 ঘন্টা সময় নিয়েছে" - আমি এতটা অলস নই যে আমার দিনের 3 ঘন্টার মধ্যে গুগলে পাওয়া যে কোনও লিঙ্ক অন্তর্ভুক্ত ছিল না :)
স্কসামুয়েল

1
আপনি কি নিশ্চিত যে আপনি এটি এভাবেই করতে চান? আপনি কি বুঝতে পেরেছেন যে গিটের মধ্যে ট্যাগিং স্কেল হয় না ? হতে পারে আপনি শুধু ট্যাগ / রিভিশন আপনি চেক আউট একটি স্ক্রিপ্ট লিখতে একটি "শেল চালানো" টাস্ক ব্যবহার করতে পারে সত্যিই চাও?
এমপন্টিলো

উত্তর:


222

"পরামিতি তৈরি করতে" শাখা ব্যবহার করে আমি তা করতে সক্ষম হয়েছি:

Branch Specifier (blank for default): tags/[tag-name]

আপনার ট্যাগের নামে [ট্যাগ-নাম] প্রতিস্থাপন করুন।


5
আমি জানি না কেন এর আরও +1 নেই। যে এরিক্স-নোট ব্লগ এন্ট্রি নরক হিসাবে বিভ্রান্তিকর হয়। এটি সহজ এবং দুর্দান্ত কাজ করে। ধন্যবাদ!
কোডি এস

3
আমার জন্য দুর্দান্ত কাজ করেছেন ধন্যবাদ। আমার প্যারামিটারটির নাম দেওয়া হয়েছিল RELEASE_TAG তাই আমি ব্রাফিক স্পেসিফায়ারের মান হিসাবে ট্যাগ / $ {RELEASE_TAG। ব্যবহার করি।
ওয়েসলি ওয়ম্যাক

3
এটি কাজ করতে পারেনি। কিছু কারণে ট্যাগ চেকআউট করতে পারবেন না। আমি পেয়েছি: 'এরর: বিল্ড করার জন্য কোনও সংশোধন খুঁজে পাইনি। এই কাজের জন্য সংগ্রহস্থল এবং শাখা কনফিগারেশন যাচাই করুন '' আমি ট্যাগগুলি / 3.0.1 নির্দিষ্ট করে দিয়েছি, আমি * / ট্যাগ / 3.0.0 চেষ্টা করেছিও যাচাই করেছি যে ট্যাগ রয়েছে।
ল্যাটিন্ট্রান্সলেশন

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

এটি অবশ্যই সঠিক উত্তর হতে হবে, এটি আমার পক্ষে কাজ করেছিল এবং এটি খুব সহজ। যদিও আমি রেপো পোল করি না, তাই আমার ধারণা এখনও সমস্যা আছে still
জেরেমি

76

জেনকিনস সিআই v.1.555, গিট ক্লায়েন্ট প্লাগইন v.1.6.4 এবং গিট প্লাগইন ২.০.৪ ব্যবহার করে এই উত্তরগুলির কোনওোটাই আমার পক্ষে পর্যাপ্ত ছিল না।

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

  1. নিশ্চিত হয়ে নিন যে আপনি নিজের ট্যাগটি দূরবর্তী সংগ্রহস্থলে রেখেছেন ory git push --tags
  2. "সোর্স কোড ম্যানেজমেন্ট" শিরোনামের অধীনে আপনার কাজের "গিট রিপোজিটরি" বিভাগে "অ্যাডভান্সড" ক্লিক করুন।
  3. রেফস্পেকের ক্ষেত্রে, নিম্নলিখিত পাঠ্য যুক্ত করুন: +refs/tags/*:refs/remotes/origin/tags/*
  4. "শাখা নির্ধারণকারী" "বিল্ড করার জন্য শাখা" এর অধীনে রাখুন */tags/<TAG_TO_BUILD>( <TAG_TO_BUILD>আপনার আসল ট্যাগ নামের সাথে প্রতিস্থাপন করা )।

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

2014-5-7 আপডেট করুন : দুর্ভাগ্যক্রমে, এই সমাধানটি জেনকিনস সিআই (v.1.555) এবং গিট রিপোজিটরি পুশ নোটিফিকেশন প্রক্রিয়া- জেনকিন্সের কাছে স্ট্যাশ ওয়েবহুকের জন্য একটি অনাকাঙ্ক্ষিত পার্শ্ব-প্রতিক্রিয়া নিয়ে আসে : যে কোনও সময় সংগ্রহস্থলের কোনও শাখা আপডেট করা হয় এক ধাক্কায়, ট্যাগ বিল্ড জব এছাড়াও আবার চালু হবে। এটি বার বার একই ট্যাগ জবগুলির অনেকগুলি অপ্রয়োজনীয় পুনর্নির্মাণের দিকে পরিচালিত করে। আমি "ওয়ার্কস্পেস ব্যবহার করে ফোর্স পোলিং" বিকল্পের সাথে এবং ছাড়াও উভয়ই চাকরিগুলি কনফিগার করার চেষ্টা করেছি এবং দেখে মনে হচ্ছে এটির কোনও প্রভাব নেই। আমি জেনকিন্সকে ট্যাগ কাজের জন্য অপ্রয়োজনীয় বিল্ডিং করা থেকে বিরত রাখতে পারার একমাত্র উপায় হ'ল রেফস্পেক ক্ষেত্রটি সাফ করা (যেমন, মুছুন +refs/tags/*:refs/remotes/origin/tags/*)।

যদি কেউ আরও মার্জিত সমাধান খুঁজে পান তবে দয়া করে একটি উত্তর দিয়ে এই উত্তরটি সম্পাদনা করুন। উদাহরণস্বরূপ, আমার সন্দেহ হয় যে রেফস্পেকটি যদি বিশেষত নক্ষত্রের +refs/tags/<TAG TO BUILD>:refs/remotes/origin/tags/<TAG TO BUILD>চেয়ে ধরা না দেয় তবে এটি ঘটত না । আপাতত, তবে, এই সমাধানটি আমাদের জন্য কাজ করছে, আমরা কাজটি সাফল্যের পরে কেবল অতিরিক্ত রেফস্পেককে সরিয়েছি।


4
রেফস্পেকটিতে "নিম্নলিখিত পাঠ্য যুক্ত করতে" ... আপনার রেফস্পেক আগে থাকলে +refs/heads/*:refs/remotes/origin/*এখন তা হবে +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/remotes/origin/tags/*। (আমি রেফস্যাকসগুলির সাথে খুব বেশি কাজ করি নি, তাই এই ক্ষেত্রটি স্থান-
সীমান্তবিহীন

1
এই সমাধানের জন্য একটি অতিরিক্ত +1। পূর্ববর্তী সমাধানগুলি আমার পক্ষেও কার্যকর হয়নি।
হোয়াইটস্পি

16

আপনি জেনকিন্সকে কোনও রেফের নাম থেকে তৈরি করতে বলতে পারবেন না? যদি তাই হয় তবে

refs/tags/tag-name

জেনকিনস এবং হাডসন সম্পর্কে আমি যে সমস্ত প্রশ্ন দেখি সেগুলি থেকে আমি টিমসিটিতে স্যুইচ করার পরামর্শ দিই। টিমসিটি কাজ করতে আমাকে কোনও কনফিগারেশন ফাইল সম্পাদনা করতে হয়নি।


আপনি আসলে টিম সিটির পরামর্শ দেওয়ার মতো প্রথম ব্যক্তি নন। এটা কি আসলেই অনেক ভাল? আমি এটি পরীক্ষা করে দেখতে পারি।
স্কসামুয়েল

1
@ মোঙ্কজ্যাক আমি আমার রেপোর একটিতে একই বাক্য গঠন চেষ্টা করেছি এবং এটি কার্যকর হয়েছে। আপনি কি আপনার বর্তমান ট্যাগগুলি তালিকাভুক্ত করতে পারেন? আপনি কি নিশ্চিতভাবেই সেই ট্যাগটি দূরবর্তী git push --tags
রেপোতে

4
আরও কাছাকাছি হচ্ছে. আমি দূরবর্তী পর্যন্ত ট্যাগগুলি চাপ দিচ্ছিলাম না, তবে এখন আমি আছি। আমি এখনই রেফস / ট্যাগ / হার্পারকোলিনস -১.০.১৪ ব্যবহার করে জেনকিনগুলি পেতে পারি তবে এটি সেখানে যা রেখেছি তা নির্বিশেষে এটি সর্বদা মাথা গড়তে জোর দেয়। আমি নিশ্চিত করেছি যে রিমোটটিতে ট্যাগ রয়েছে (এটি গিটওয়েব এ দেখতে পাবে) এবং সেই ট্যাগের একটি স্ন্যাপশট করা নিশ্চিত করে যে সবকিছু সেখানে রয়েছে তা সঠিকভাবে রয়েছে।
স্কসমুয়েল

6
টিমসিটি মালিকানাধীন, এটি একেবারেই অকেজো করে তোলে।
স্ল্যাং

2
ওহ হ্যাঁ, বিনামূল্যে সরঞ্জাম থেকে বাণিজ্যিক দিকে স্যুইচ করা সঠিক পছন্দ! যখন জেটব্রেনগুলি চাকাটি পুনরায় উদ্ভাবন করবে এবং নতুন বাগ ট্র্যাকার তৈরি করবেন আপনি কি বাগজিলা থেকে অন্যটিতে স্যুইচ করার প্রস্তাব করবেন?
m1ld

11

আপনি যদি জেনকিনস পাইপলাইন ব্যবহার করছেন এবং একটি নির্দিষ্ট ট্যাগ (যেমন: TAGআপনার বিল্ডের একটি প্যারামিটার) চেকআউট করতে চান , আপনি এখানে যা করতে পারেন তা এখানে:

stage('Checkout') {
  steps {
    checkout scm: [$class: 'GitSCM', userRemoteConfigs: [[url: 'YOUR_GIT_REPO_URL.git', credentialsId: 'YOUR_GIT_CREDENTIALS_ID' ]], branches: [[name: 'refs/tags/${TAG}']]], poll: false
  }
}

9

একটি সর্বশেষ জেনকিন্সে (1.639 এবং উপরে) আপনি করতে পারেন:

  1. কেবল একটি ক্ষেত্রের মধ্যে ট্যাগের নাম উল্লেখ করুন 'তৈরি করার জন্য শাখা'।
  2. প্যারামিটারাইজড বিল্ডে আপনি একই ক্ষেত্রের 'ব্রাঞ্চগুলি তৈরি করতে' অর্থাত্ $ {Branch_to_build} প্যারামিটার ব্যবহার করতে পারেন}
  3. আপনি গিট প্যারামিটার প্লাগইন ইনস্টল করতে পারেন যা সমস্ত উপলব্ধ শাখা এবং ট্যাগগুলির তালিকা করে আপনাকে কার্যকারিতা সরবরাহ করবে provide

1
প্রকৃতপক্ষে কেবল একটি ট্যাগ নাম প্রবেশ করানো আমার পক্ষেও কাজ করেছিল। যদিও গিট প্লাগইনে এটির
জিতরেক্স

এটি জেনকিন্স 1.532.3 এ আমার জন্য কাজ করেছে, আমি 1.0.1ক্ষেত্র তৈরির জন্য শাখাগুলিতে কেবল ট্যাগ সংস্করণ (যেমন ) নির্দিষ্ট করেছি ।
Andre

9

আমি এরকম কিছু করেছি এবং এটি কাজ করেছে:

Source Code Management

 Git    
    Repositories    


 Advance

Name: ref
Refspec : +refs/tags/*:refs/remotes/origin/tags/* 

 Branches to build  
 Branch Specifier (blank for 'any') : v0.9.5.2

এখানে চিত্র বর্ণনা লিখুন

জেনকিনস লগ নিশ্চিত করেছে যে এটি ট্যাগ থেকে উত্স পাচ্ছে

রিভিশন পরীক্ষা করা হচ্ছে 0b4d6e810546663e931cccb45640583b596c24b9(v0.9.5.2)


সমস্ত ট্যাগ তৈরির জন্য এটি দুর্দান্ত, ধন্যবাদ! refspecঅ্যাডভান্সড বোতামটি ক্লিক করে এটিকে যুক্ত করা কৌশল ছিল।
স্টাইল

9

আমি এডভান্সড-> রেফস্পেক ফিল্ড সেট করে রেখেছি refs/tags/[your tag name]। এটি রেফস্পেকের জন্য অন্যান্য বিভিন্ন পরামর্শের চেয়ে সহজ বলে মনে হচ্ছে তবে এটি আমার পক্ষে ঠিক কাজ করেছে।

আপডেট 23/7/2014 - প্রকৃতপক্ষে, আরও পরীক্ষার পরে, এটি প্রত্যাশার মতো কাজ করে নি। দেখা যাচ্ছে যে হেড সংস্করণটি এখনও চেক আউট ছিল। দয়া করে এটি গ্রহণযোগ্য উত্তর হিসাবে পূর্বাবস্থায় ফিরে আসুন। আমি এই থ্রেডে (30 শে মার্চ) গোজেনস থেকে পোস্ট অনুসরণ করে একটি কার্যনির্বাহী সমাধানটি শেষ করেছি । বিল্ডগুলির অপ্রয়োজনীয় ট্রিগার হওয়ার পোস্টে উল্লিখিত বিষয়টি আমার পক্ষে কোনও সমস্যা ছিল না, কারণ আমার চাকরি পোলিং এসসিএম থেকে নয়, একটি উজানের কাজ থেকে শুরু হয়েছে।

আপডেট এপ্রি -২০১ - - এই মন্তব্যে নোট করুন যে এটি এক ব্যক্তির পক্ষে কাজ করে এবং জেনকিনস ডকুমেন্টেশনের সাথে একমত হন


শুধু নোট করতে চেয়েছিলেন যে-চার বছর পর এই উত্তর পোস্ট-ব্যবহার করছিলেন refs/tags/<tagname>কি জেনকিন্স ডকুমেন্টেশন বলছেন ব্যবহার করা উচিত, এবং এটি আমার জন্য সূক্ষ্ম কাজ করা হচ্ছে। সম্ভবত প্লাগইন আসল পোস্ট করার সময় বগী ছিল, কিন্তু ... এপ্রিল 2018 হিসাবে, এই হল সঠিক উত্তর।
বর্ধমান

আমার পূর্ববর্তী মন্তব্য আপডেট করা: আসলে, আমি খুঁজে পেয়েছি যে আমি refs/tagsউপসর্গটি বাদ দিতে পারি এবং কেবল ব্যবহার করতে পারি <tagname>। ওয়াইএমএমভি, কিন্তু ... এটি আমার উদ্দেশ্যগুলির জন্য ঠিকঠাক কাজ করছে।
বর্ধমান

3

আমি জেনকিন্সকে এই ব্লগ পোস্টে বিস্তারিত হিসাবে রেফস্পেক এবং শাখা নির্দিষ্টকরণকারক সেট করে একটি ট্যাগ তৈরি করতে সক্ষম হয়েছি ।

আমাকে রেপোসিটরি নামও (আমার ক্ষেত্রে "উত্স থেকে") সেট করতে হয়েছিল যাতে আমি এটিকে রেফস্পেকে রেফার করতে পারি (অন্যথায় এটি সম্ভবত এলোমেলোভাবে উত্পন্ন নামটি ব্যবহার করতে পারে)।


2

শেষ পর্যন্ত যা করেছি তা হ'ল:

  • একটি নতুন শাখা তৈরি করেছে jenkins-targetএবং এটি ট্র্যাক করার জন্য জিনকিনস পেয়েছে
  • যে শাখা বা ট্যাগ থেকে আমি বিল্ড করতে চাই তা থেকে মার্জ করুন jenkins-target
  • একবার বিল্ডটি কাজ করার পরে, পরীক্ষাগুলি পাস করা ইত্যাদি, কেবল jenkins-targetশাখা থেকে একটি ট্যাগ তৈরি করুন

আমি নিশ্চিত নই যে এটি সবার জন্য কাজ করবে কিনা, আমার প্রকল্পটি বেশ ছোট ছিল, খুব বেশি ট্যাগ এবং স্টাফ ছিল না, তবে এটি করা খুব সহজ,


আমি এই খুব সহজ পদ্ধতির পছন্দ।
zochhuana

2

আপনি এমনকি ট্যাগ টাইপ তৈরি করতে পারেন, উদাহরণস্বরূপ 1.2.3-alpha43, ওয়াইল্ডকার্ড ব্যবহার করে:

Refspec: +refs/tags/*:refs/remotes/origin/tags/*

শাখা নির্দিষ্টকরণকারী: origin/tags/1.2.3-alpha*

চাপটি ট্রিগার করতে আপনি " গিটহাবের পরিবর্তনের দিকে ধাক্কা দিলে বিল্ড " এও টিক দিতে পারেন, তবে আপনাকে ওয়েব হুক-এ "তৈরি" ক্রিয়া যুক্ত করতে হবে


1

জেনকিন্সে "বিল্ড উইথ প্যারামিটার" বিকল্পটি ব্যবহার করা এমন কোনও উত্তর আমি দেখেনি বলে এখানে আমার দুটি সেন্ট যুক্ত করা হচ্ছে।

এখানে আমি জেনকিনস সিআই ব্রাউজার কনসোলটি প্রকল্পের স্টার ওয়ার্স_পি এর জন্য ব্যবহার করছি এবং আমি মূল্য সংশোধন / ট্যাগ / ট্যাগ-নাম সহ "প্যারামিটারগুলি সহ বিল্ড" দিয়ে সরাসরি তৈরি করতে সক্ষম হয়েছি

  1. "পরামিতিগুলির সাথে বিল্ড" বিকল্পটি চয়ন করুন।
  2. বাক্সে "রেফ / ট্যাগ / ট্যাগ_142" হিসাবে মূল্য যুক্ত করুন (আমার উদাহরণের জন্য ট্যাগ_নাম = ট্যাগ_142)

রেফ ট্যাগ নাম দিয়ে বিল্ড

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