জিনকিনসে বিল্ড নম্বরটি কীভাবে পুনরায় সেট করবেন?


90

আমি আমার জাভা প্রকল্পটি তৈরি করতে জেনকিনস এবং গ্রেডল ব্যবহার করছি।

যতবার আমি নিজের প্রকল্পটি তৈরি করি, আমি জেনকিন্স স্ক্রিনে একটি নতুন বিল্ড নম্বর পাই।

নিম্নলিখিত আমার জেনকিনস বিল্ড তথ্য:

Success > Console Output  #96   03-Jan-2014 15:35:08    
Success > Console Output  #95   03-Jan-2014 15:27:29     
Failed > Console Output  #94    03-Jan-2014 15:26:16     
Failed > Console Output  #93    03-Jan-2014 15:25:01     
Failed > Console Output  #92    03-Jan-2014 15:23:50     
Success > Console Output  #91   03-Jan-2014 12:42:32    
Success > Console Output  #90   03-Jan-2014 12:02:45

আমি জেনকিনস বিল্ড নম্বরটি পুনরায় সেট করতে চাই:

Success > Console Output  #1    03-Jan-2014 12:02:45

আমি জেনকিনসে বিল্ড নম্বরটি কীভাবে পুনরায় সেট করতে পারি?

উত্তর:


161

গ্রোভি স্ক্রিপ্ট কনসোল থেকে আরও সহজ করা যায়। যান HTTP: // আপনার-জেনকিন্স-সার্ভার / স্ক্রিপ্ট স্ক্রিপ্ট উইন্ডোতে লিখুন:

item = Jenkins.instance.getItemByFullName("your-job-name-here")
//THIS WILL REMOVE ALL BUILD HISTORY
item.builds.each() { build ->
  build.delete()
}
item.updateNextBuildNumber(1)

6
বা java -jar jenkins-cli.jar -s https://jenkins.example.com groovysh \ 'jenkins.instance.getItemByFullName("job-name").updateNextBuildNumber(1021)'
ক্লিমে

4
এটি অবশ্যই সেরা উত্তর। আপনি যদি কেবল নম্বরটি সেট করতে চান তবে আপনার এমনকি মুছে ফেলা লুপও লাগবে না।
নিক

কিছু কারণে এটি কেবল সর্বশেষতম বিল্ডটি মুছুন তবেই নিম্নলিখিতগুলি আমার পক্ষে কাজ করেছে: echo "deleting all builds of ${jobName}" item = Jenkins.instance.getItemByFullName("${jobName}") for (build in item.builds){ build.delete(); } item.updateNextBuildNumber(1)
বিআরএনটিজেড

একটি ছোট প্রশ্ন .. আমি কীভাবে সঠিক নাম জানি know
আম্মার মুজিব

@ আম্মার মুজিব আপনার জেনকিন্স ড্যাশবোর্ডে যান এবং আপনি সেখানে কাজের নামটি দেখতে পাবেন। আপনি /var/lib/jenkins/jobs/লিনাক্সেও যেতে পারেন এবং ডিরেক্টরিটির সঠিক নামটির নামটিও রয়েছে
রিক্রিজ্জো

62

থেকে এখানে

আপনার হডসনের কাজের দেওয়া নাম দেওয়া হয়েছে ফুবার,

  • FooBar- কপিতে নাম পরিবর্তন করুন
  • FooBar- অনুলিপি থেকে 'বিদ্যমান কাজের অনুলিপি করুন' বিকল্পটি ব্যবহার করে FooBar নামে একটি নতুন কাজ তৈরি করুন
  • FooBar- অনুলিপি মুছুন

35
  • প্রথম ওয়াইপআউট ওয়ার্কস্পেস এবং পূর্ববর্তী বিল্ডগুলি থেকে মুক্তি পান।
    • সার্ভারে কাজ দির যেমন নেভিগেট করুন। 'var / lib / jenkins / jobs / myJob' ওয়ার্কস্পেস এবং বিল্ড ডায়ারের পাশাপাশি কোনও পোলিং ফাইল, লাস্টস্যাকসেসফুল, লাস্টস্টেবল ফাইল ইত্যাদি মুছে ফেলতে পারে আপনার কেবল কনফিগারেশন.এমএমএল এবং লাস্টবিল্ডবার্বার থাকা উচিত।
    • পরিষেবা জেনকিনস থামার মতো কিছু ব্যবহার করে জেনকিন্স বন্ধ করুন
    • বর্তমান বিল্ড নম্বরটির পরিবর্তে 1 টি সন্নিবেশ করে নেক্সট বিল্ডবারবার নামক ফাইলটি সম্পাদনা করুন
    • আবার জেনকিনস শুরু করুন , পরিষেবা জিনকিনস শুরু হবে
    • জেনকিনে লগইন করুন এবং আপনার কাজটিতে যান এবং বিল্ড হিট করুন। # 1 নির্মাণের কাজ শুরু করা উচিত

4
এটি খুব সহায়ক ছিল। ধন্যবাদ

23

আপনি যদি পরবর্তী বিল্ড নম্বর সেট করতে চান তবে তার জন্য "NextBuildNumber" প্লাগইন রয়েছে। তবে এটি আপনার ক্ষেত্রে কার্যকর হবে না কারণ আপনার যে বিল্ড নম্বরটি প্রয়োজন, এটি বর্তমানে আপনার বিল্ড সংখ্যার চেয়ে কম।

এখানে প্রথমে পূর্ববর্তী সমস্ত বিল্ডগুলি মুছতে হবে। আপনি এই সাধারণ স্ক্রিপ্টটি চালিয়ে এটি করতে পারেন -> জেনকিন্স পরিচালনা করুন -> স্ক্রিপ্ট কনসোলটিতে যান

// change this variable to match the name of the job whose builds you want to delete
def jobName = "Your Job Name"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }

এখন আপনি পরবর্তী বিল্ড নম্বর 1 এ সেট করতে এবং বিল্ডটি চালাতে পারেন। এটি শুরু হবে 1 দিয়ে । :) এটি যে সহজ।

আপডেট - সহজ উপায়ে এটি করার জন্য জেনকিন্সের কাছে এখন একটি পূজ জব হিস্ট্রি প্লাগইন রয়েছে। আরও বিশদের জন্য পৃষ্ঠাটি চেকআউট করুন - https://wiki.jenkins.io/display/JENKINS/Purb+Job+ ইতিহাস + প্লাগইন


6

আরও সাধারণভাবে আপনার বিল্ড নম্বরটি পুনরায় সেট করতে N(যেখানে N1 প্রয়োজন হয় না):

  • যেখানে বিদ্যমান বিল্ড মুছে ফেলুন buildNumber >= N
  • সম্পাদনা করুন Program Files (x86)/Jenkins/jobs/yourjob/nextBuildNumber। এতে থাকা সংখ্যাটি সেট করুন N
  • জেনকিন্স থেকে, নির্বাচন করুন Manage Jenkins -> Reload Configuration from Disk

নিশ্চিত করুন যে আপনি "ডিস্ক থেকে কনফিগারেশন পুনরায় লোড করুন" - ইস্যু.জেনকিনস-
ci.org/

6

গৃহীত উত্তরের উপর বিস্তৃতি, একবারে সমস্ত প্রকল্পের জন্য এটি কীভাবে করা যায় তা এখানে:

Jenkins.instance.allItems.each() { 
  item -> item.builds.each() { 
    build -> build.delete()
  }
  item.updateNextBuildNumber(1)
}  

4

@ অ্যান্টুইস এর উত্তরের উত্তরের হিসাবে, আমরা আসলে আরও এগিয়ে যেতে পারি ...

সম্পূর্ণ বিল্ড হিস্ট্রি মুছার দরকার নেই, আপনি না চাইলে আপনি কেবল পূর্বের বিন্দুতে রোল ব্যাক করতে পারেন:

resetNumberTarget = 14
item = Jenkins.instance.getItemByFullName("Project Name [from project Dashboard]")
//println(item)

item.builds.each() { build ->
  //println(build)
  //println(build.number)

  if(build.number >= resetNumberTarget)
  {
    //println("About to Delete '" + build + "'")    
    build.delete()  
  }
}

item.updateNextBuildNumber(resetNumberTarget)

আপনি যদি একটি ডামি রান চান, এটি কী করছে তা যাচাই করতে, আসলে তা না করে, কেবল build.delete()এবং item.updateNextBuildNumber(resetNumberTarget)লাইনগুলি মন্তব্য করুন এবং বিভিন্ন প্রিন্ট কমান্ডকে অসন্তুষ্ট করুন।


ডকুমেন্টেশন: এই বিষয়গুলির বিশদগুলি পাওয়া শক্ত ছিল, তবে আমি নিম্নলিখিতগুলি সনাক্ত করেছি:


1

আপনি বিল্ড নম্বর পুনরায় সেট nexBuildNumberকরতে প্লাগ-ইন ব্যবহার করতে পারেন বা কেবল nexBuildNumberফাইল পরিবর্তন করতে পারেন । আপনার সম্পাদনা করা প্রয়োজন যে পদক্ষেপগুলি নিম্নলিখিত:

  • যান .jenkins/Jobs/<YourJobName>/build/, এই ফোল্ডারটির ব্যাকআপ নিন (যদি আপনার ভবিষ্যতের ব্যবহারের প্রয়োজন হয়) এবং বিল্ড ফোল্ডারটি মুছুন ।

দ্রষ্টব্য: একবার আপনি পুরানো বিল্ডগুলি সাফ করার পরে, আপনি বিল্ড হিস্ট্রিগুলি হারাবেন এবং সেগুলি আর জেনকিন্স ড্যাশবোর্ডে উপলব্ধ নেই।

  • কনফিগারেশনটি পুনরায় লোড করুন (জেনকিন্স -> জেনকিন্স পরিচালনা করুন)।
  • নেক্সট বিল্ড নম্বর প্লাগ-ইন ব্যবহার করে বা আপনার কাজ nextBuildNumberডিরেক্টরিতে ফাইলটি পরিবর্তন করে পরবর্তী বিল্ড সংস্করণটি 1 এ সেট করুন ।

0

আমি এটি করার একটি সহজ উপায় খুঁজে পেয়েছি।

  1. আপনার কাজের জায়গাটি মুছুন।
  2. জেনকিন্সে সংরক্ষণ করা প্রতিটি বিল্ডে যান এবং এটি মুছুন।
  3. 1 তারপর বিল্ড নম্বর সেট করুন।

জেনকিন্স পরবর্তী বিল্ড নম্বর নির্ধারণ করতে পূর্ববর্তী বিল্ডটি ব্যবহার করে, আপনার বিল্ড সংখ্যাটি যদি পূর্ববর্তী বিল্ড সংখ্যার তুলনায় কম হয় তবে জেনকিনস স্বয়ংক্রিয়ভাবে আপনার বিল্ড সংখ্যাটি আগের বিল্ডের চেয়ে আরও বেশি করে তুলবে। সুতরাং এখানে আমরা ঠিক



-1

সমস্ত কাজের বিল্ড সংখ্যা পুনরায় সেট করতে:

Jenkins.instance.getAllItems(AbstractProject.class).each {
    item = Jenkins.instance.getItemByFullName(it.fullName)
    //THIS WILL REMOVE ALL BUILD HISTORY
    item.builds.each() { build ->
        build.delete()
    }
    item.updateNextBuildNumber(1)
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.