我刪除舊詹金斯與rm
建立在那裏的工作託管:詹金斯:刪除舊的建立與命令行
my_job/builds/$ rm -rf [1-9]*
這些舊版本是仍在工作頁面可見。 如何使用命令行刪除它們?
(無需在每個構建用戶界面刪除按鈕)
我刪除舊詹金斯與rm
建立在那裏的工作託管:詹金斯:刪除舊的建立與命令行
my_job/builds/$ rm -rf [1-9]*
這些舊版本是仍在工作頁面可見。 如何使用命令行刪除它們?
(無需在每個構建用戶界面刪除按鈕)
它看起來像這樣已經加入到CLI,或者至少正在對工作:http://jenkins.361315.n4.nabble.com/How-to-purge-old-builds-td385290.html
語法將是這樣的:java -jar jenkins-cli.jar -s http://my.jenkins.host delete-builds myproject '1-7499' --username $user --password $password
這工作奇蹟非常感謝! – mors
你沒有提到從哪裏得到'jenkins-cli.jar':你的Jenkins安裝會告訴你在這個頁面上的什麼位置:'http:// localhost:8080/cli /'。 – Ben
whaere我應該安裝jar文件嗎? – user3502786
是否有原因需要手動完成而不是讓Jenkins爲您刪除舊版本?
您可以根據天數或構建數量來更改作業配置以自動刪除舊版本。沒有更多的擔憂或不必追蹤,詹金斯只是爲你做。
我發現這在創建項目時很有用,並且在設置正確之前會出現幾個故障。完成後,我想清除舊的錯誤版本,因爲它們最終只是噪音 –
此選項在哪裏?我無法在我的Jenkins版本中找到它 - 1.5。 – ziggy
它在每個作業的配置中。選擇放棄舊版本複選框,並選擇可用來控制刪除舊版本的方式。 –
命令刪除所有詹金斯工作建立
/jenkins_home/jobs> rm -rf */builds/*
刪除重新載入配置後:
"Manage Jenkins" ==> "Reload Configuration from Disk"
我無法獲得cURL或jar解決方案工作,這似乎是一個很好的解決方案,只是刪除構建日誌。長話短說,一些密碼泄露在我的日誌中,我只需要做一些清理。但是,該方法確實保留了構建的其他記錄,例如,在工作屏幕上。就我而言,我並不在乎。 – killthrush
這裏是另一種選擇:刪除與遠程捲曲建立。 (換上無論您使用瀏覽器訪問詹金斯的URL的開始。)
$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
上述刪除打造#1至#56作業myJob。
如果認證是對詹金斯實例啓用,必須提供這樣的用戶名和API令牌:
$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll
的API令牌必須從詹金斯的/我/配置頁面中獲取。只需點擊「Show API Token ...」按鈕即可顯示用戶名和API令牌。
編輯:正如在下面評論中指出yegeniy,一個可能必須通過doDelete
在上述網址,以取代,使這項工作,根據不同的配置。
您可以通過使用哈德森API Groovy腳本做到這一點..訪問您的詹金斯安裝目錄
http://localhost:38080/script.
例如,刪除所有舊的構建使用如下腳本中的所有項目: 注意:如果你要小心使用指紋,你將失去所有的歷史。
import hudson.model.*
// For each project
for(item in Hudson.instance.items) {
// check that job is not building
if(!item.isBuilding()) {
System.out.println("Deleting all builds of job "+item.name)
for(build in item.getBuilds()){
build.delete()
}
}
else {
System.out.println("Skipping job "+item.name+", currently building")
}
}
或者清洗所有的工作區:
他啓用groovy特定的代碼突出顯示。 – Slav
啊好..謝謝:) –
如何刪除幾個版本讓我們說在特定版本1-10,我在哪裏可以找到使用哈德森包的文檔 – user3502786
要走很多的例子來配置詹金斯作業的面板中,找到源代碼管理 - >附加行爲 - >點擊添加,選擇結賬前清潔。詹金斯將清理舊建立在此版本
這不會刪除舊版本,只會清理工作區,如果我理解正確的話。 – Clerenz
從詹金斯Scriptler控制檯運行以下Groovy腳本刪除所有建立的視圖中列出的作業:
import jenkins.model.Jenkins
hudson.model.Hudson.instance.getView('<ViewName>').items.each() {
println it.fullDisplayName
def jobname = it.fullDisplayName
def item = hudson.model.Hudson.instance.getItem(jobname)
def build = item.getLastBuild()
if (item.getLastBuild() != null) {
Jenkins.instance.getItemByFullName(jobname).builds.findAll {
it.number <= build.getNumber()
}.each {
it.delete()
}
}
}
下面的腳本清除舊的構建作業。你應該從磁盤重新加載配置,如果你手動刪除構建:
import hudson.model.*
for(item in Hudson.instance.items) {
if (!item.isBuilding()) {
println("Deleting old builds of job " + item.name)
for (build in item.getBuilds()) {
//delete all except the last
if (build.getNumber() < item.getLastBuild().getNumber()) {
println "delete " + build
try {
build.delete()
} catch (Exception e) {
println e
}
}
}
} else {
println("Skipping job " + item.name + ", currently building")
}
}
也向你的回答添加解釋。 –
不是一個答案解決在AWS EC2這個問題:但有用的,如果你有常規: https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/discardOldBuilds.groovy – Jayan