আমি কীভাবে জেনকিনসে কর্মক্ষেত্রটি পরিষ্কার করতে পারি? আমি AccuRev
সংস্করণ নিয়ন্ত্রণ সরঞ্জাম হিসাবে ব্যবহার করছি ।
আমি freestyle
জেনকিনসে প্রজেক্ট তৈরি করেছি ।
উত্তর:
জেনকিন্সে ওয়ার্কস্পেস পরিষ্কার করার একটি উপায় রয়েছে। আপনি বিল্ড করার আগে বা বিল্ড করার পরে ওয়ার্কস্পেসটি পরিষ্কার করতে পারেন।
প্রথমে ওয়ার্কস্পেস ক্লিনআপ প্লাগইন ইনস্টল করুন ।
বিল্ড করার আগে কর্মক্ষেত্রটি পরিষ্কার করতে: পরিবেশ তৈরির অধীনে , বিল্ড শুরুর আগে ওয়ার্কস্পেস মুছুন এমন বাক্সটি চেক করুন ।
বিল্ড পর কর্মক্ষেত্র পরিষ্কার করতে: শিরোনামের নীচে পোস্ট-বিল্ড পদক্ষেপ নির্বাচন মুছে ফেলুন কর্মক্ষেত্র যখন বিল্ড সম্পন্ন করা হয় থেকে যোগ পোস্ট-বিল্ড পদক্ষেপ ড্রপ-ডাউন মেনু।
আপনি যদি নিজে নিজে এটি পরিষ্কার করতে চান তবে আমার জন্য আমার জেনকিন্স সংস্করণটি (কোনও অতিরিক্ত প্লাগইন ইনস্টল করা লাগেনি, তবে কে জানে), বাম কলামে একটি "ওয়ার্কস্পেস" লিঙ্ক রয়েছে, আপনার প্রকল্পে ক্লিক করুন, তারপরে "কর্মক্ষেত্র" এ, তারপরে বাম পাশে কলামে একটি "বর্তমান কর্মক্ষেত্রটি মোছা" লিঙ্কটি উপস্থিত হবে।
উপরের সমাধানগুলির পাশাপাশি আরও একটি "সিএমএনএমএন" উপায় রয়েছে - লিনাক্স মেশিন থেকে বৃহত্তম স্থানের গ্রাহককে সরাসরি মুছুন। আপনি নীচের পদক্ষেপগুলি অনুসরণ করতে পারেন:
লুকানো ফোল্ডারটিও তালিকাভুক্ত করতে এলএস-অ্যালার্ট ব্যবহার করে, সাধারণত জেনকিন ইনস্টলেশনটি জেনকিনস / ফোল্ডারে রাখা হয়
[xxxxx ~]$ ls -lart drwxrwxr-x 12 xxxx 4096 Feb 8 02:08 .jenkins/
Use df -h
ডিস্কের স্থানটি উচ্চ স্তরে দেখানোর জন্য
du -sh ./*/
বর্তমান পাথের প্রতিটি সাবফোল্ডারের জন্য মোট মেমরির তালিকা তৈরি করতে।
du -a /etc/ | sort -n -r | head -n 10
/ 10 / এ ডিস্কের স্থান খাওয়ার শীর্ষ 10 ডিরেক্টরি তালিকাবদ্ধ করবে
সাধারণত ./job/ ফোল্ডার বা। / ওয়ার্কস্পেস / ফোল্ডারটি বৃহত্তম ফোল্ডার হতে পারে। আপনার প্রয়োজনীয় ভিত্তিটি ভিতরে যান এবং মুছুন (পুরো ফোল্ডারটি মুছবেন না)।
rm -rf theFolderToDelete
গুরুত্বপূর্ণ: যতক্ষণ চাকরী বর্তমানে চলছে না ততক্ষণ প্রদত্ত জেনকিন্স কাজের জন্য কর্মক্ষেত্রটি সরিয়ে ফেলা নিরাপদ!
উল্লেখ্য: আমি অভিমানী করছি আপনার $JENKINS_HOME
ডিফল্ট হিসাবে সেট করা হয়: /var/jenkins_home
।
rm -rf /var/jenkins_home/workspaces/<workspace>
rm -rf /var/jenkins_home/workspaces/*
একটি শ্বেত তালিকা তৈরি করতে এটি গ্রেপ ব্যবহার করে:
ls /var/jenkins_home/workspace \
| grep -v -E '(job-to-skip|another-job-to-skip)$' \
| xargs -I {} rm -rf /var/jenkins_home/workspace/{}
এই একটি ওয়ার্কস্পেসগুলি বৃহত্তম থেকে ক্ষুদ্রের জন্য তালিকার জন্য ডু এবং সাজান ব্যবহার করে। তারপরে, এটি প্রথম 10 টি ধরতে মাথা ব্যবহার করে:
du -d 1 /var/jenkins_home/workspace \
| sort -n -r \
| head -n 10 \
| xargs -I {} rm -rf /var/jenkins_home/workspace/{}
জেনকিন্স ফাইল অ্যাড
cleanWs()
বিল্ডটি সম্পূর্ণ হওয়ার পরে এটি ওয়ার্কস্পেসটি মুছে ফেলবে
cleanWs()
আমার যুক্ত করতে সিনট্যাক্স হিসাবে প্লাগইন অবতরণ পৃষ্ঠায় উপস্থিত ছিল না Jenkinsfile
।
আপনি একটি শটে সমস্ত কাজের ওয়ার্কস্পেসগুলি মোছার জন্য জেনকিনস → স্ক্রিপ্টস কনসোলটি পরিচালনা করতে নীচের স্ক্রিপ্টটি চালাতে পারেন । ফাইল সিস্টেমে জায়গা পরিষ্কার করার জন্য আমরা এটি করেছি।
import hudson.model.*
// For each project
for(item in Hudson.instance.items) {
// check that job is not building
if(!item.isBuilding()) {
println("Wiping out workspace of job "+item.name)
item.doDoWipeOutWorkspace()
}
else {
println("Skipping job "+item.name+", currently building")
}
}
মন্তব্য করার অনুমতি নেই, সুতরাং:
উপেনের উত্তরটি ঠিক কাজ করে, তবে আপনার জেনকিনস পাইপলাইন জবস ফ্রিস্টাইল জবসের সাথে মিশে থাকলে তা নয় not পাইপলাইন জবসে ডোউইপ ওয়ার্কস্পেসের মতো কোনও পদ্ধতি নেই। সুতরাং আমি এগুলি এড়াতে স্ক্রিপ্টটি পরিবর্তন করেছি:
import hudson.model.*
import org.jenkinsci.plugins.workflow.job.WorkflowJob
// For each project
for(item in Hudson.instance.items) {
// check that job is not building
if(!item.isBuilding() && !(item instanceof WorkflowJob))
{
println("Wiping out workspace of job "+item.name)
item.doDoWipeOutWorkspace()
}
else {
println("Skipping job "+item.name+", currently building")
}
}
আপনি প্রয়োজনে জব নামগুলি দ্বারাও ফিল্টার করতে পারেন:
item.getDisplayName().toLowerCase().contains("release")
উপরে উল্লিখিত বিকল্পগুলি প্রদর্শিত হওয়ার আগে আপনাকে এই প্লাগইনটি ইনস্টল করতে হবে
এই প্লাগইনটি সমস্ত পদক্ষেপের কনফিগারেশনে চেক বাক্স যুক্ত করে যাতে কোনও পদক্ষেপ (ইনক উত্স নিয়ন্ত্রণ) চালুর আগে আপনাকে পুরো ওয়ার্কস্পেস মুছতে দেয় to
আপনি কীভাবে তৈরি করবেন তা গ্যারান্টি হিসাবে আপনি সর্বদা একটি পরিচিত পয়েন্ট থেকে শুরু করে তা নিশ্চিত করার জন্য এটি দরকারী
এটি করার একটি বিকল্প রয়েছে। কনফিগার করুন -> পোস্ট-বিল্ড অ্যাকশনগুলি
বিকল্পটি কমপক্ষে জেনকিন্স সংস্করণ ২.২236 এ ডিফল্টরূপে আসে
আপনি যদি কেবল একটি দির (বা ফাইল) সরাতে চান তবে আপনি গ্রোভি এবং জেনকিনস পরিচালনা করতে পারেন → স্ক্রিপ্টস কনসোল একটি স্ক্রিপ্ট চালান যা এটি সরিয়ে দেয়।
উদাহরণস্বরূপ, আপনি ফাইলগুলি এ দিয়ে দেখতে পারেন:
dh = new File('./bitnami/jenkins/jenkins_home/workspace/jobname/folder')
dh.eachFile {
println(it)
}
এবং তারপরে, আপনি যখন ফোল্ডারটি মুছতে চান তখন আপনি dh
কেবলমাত্র পরবর্তী কোডটি যুক্ত করতে পারেন:
dh.deleteDir()
এবং এটি মুছে ফেলা হবে।
দ্রষ্টব্য: উদাহরণে দেখানো পথটি বিটনামি জেনকিন্স ইনস্টলেশনের জন্য, আপনার আলাদা হতে পারে।