質問

最近、ハドソン ビルドの 1 つの構成を更新しました。ビルド履歴が同期していません。ビルド履歴をクリアする方法はありますか?

お願いします、そしてありがとう

役に立ちましたか?

解決

あなたはディスクからハドソン/リロード設定の管理]をクリックした場合は、

、ハドソンは、すべてのビルド履歴データをリロードします。

ディスク上のデータを台無しにされている場合は、

、あなたはあなたの%HUDSON_HOME%\ジョブ\ << em>のプロジェクト名>ディレクトリに移動し、彼らはすることになっていると、ビルドディレクトリを復元する必要があります。そして、設定データをリロードします。

あなたは、単にすべてのビルドの履歴を削除する方法を求めている場合は、あなただけの、ほんの数がある場合はUIを介して一つ一つを構築し、削除、または%HUDSON_HOME%以下に行くことができます\ジョブ\ << em>のプロジェクト名>ディレクトリとそこにすべてのサブディレクトリの削除 - 彼らが構築さに対応しています。 その後変更を有効にするためにサービスを再起動します。

他のヒント

スクリプト コンソール ([Jenkins の管理] > [スクリプト コンソール]) および次のスクリプトのようなものを使用して、ジョブのビルド履歴を一括削除します。 https://github.com/jenkinsci/jenkins-scripts/blob/master/scriptler/bulkDeleteBuilds.groovy

このスクリプトは、ある範囲のビルドのみを削除することを前提としています。特定のジョブのすべてのビルドを削除するには、これを使用します (テスト済み)。

// 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() }
// uncomment these lines to reset the build number to 1:
//job.nextBuildNumber = 1
//job.save()

この答えはJenkins

  1. 自分のジェンキンズのホームページ→ 管理Jenkinsスクリプトコンソール

    Enter image description here

  2. 以下のスクリプトである。変化 copy_folderyour project name

コード:

def jobName = "copy_folder"
def job = Jenkins.instance.getItem(jobName)
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

私のポスト

ここでは別のオプションは、次のとおりです。cURLのでビルドを削除します。

$ curl -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

上記削除ジョブMYJOBため#56に#1を構築します。

認証はジェンキンスインスタンス上で有効になっている場合は、ユーザー名とAPIトークンは次のように提供する必要があります:

$ curl -u userName:apiToken -X POST http://jenkins-host.tld:8080/jenkins/job/myJob/[1-56]/doDeleteAll

APIトークンは、ジェンキンスで/me/configureページからフェッチされなければなりません。ただ、ユーザー名やAPIトークンの両方を表示するには、「...ショーAPIトークン」のボタンをクリックします。

編集:1の構成やジェンキンスのバージョンに応じて、この作業を行うために上記のURLにdoDeleteAlldoDeleteを交換する必要がある場合がありますが使用

あなたは、あなたの所望の値に再構成設定を変更する、(古いビルドゴミ箱べき)コンフィギュレーションをリロードし、最後の1つのビルドを保存するために一時的にプロジェクトの設定を変更することができます。

ここでジェンキンススクリプトを使用して...... ALLはすべてのジョブのビルドを削除する方法です。

def jobs = Jenkins.instance.projects.collect { it } 
jobs.each { job -> job.getBuilds().each { it.delete() }} 

このオプションをご用意。

Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }

このコードを削除するすべてのジェンキンズジョブを構築す。

あなたはMultiBranchProject(例えばパイプライン)のビルド履歴をクリアしたい場合は、 ジェンキンス→スクリプトコンソールを管理する→あなたのジェンキンスのホームページに移動し、次のスクリプトを実行します:

def projectName = "ProjectName"
def project = Jenkins.instance.getItem(projectName)
def jobs = project.getItems().each {
  def job = it
  job.getBuilds().each { it.delete() }
  job.nextBuildNumber = 1
  job.save()
}

ビルドをクリーンにもう1つの簡単な方法は、あなたの仕事の終わりに破棄古いプラグインを追加することです。セットの最大数は、保存し、再度ジョブを実行するために構築します:

https://wiki.jenkins-ci.org/ディスプレイ/ JENKINS /廃棄+古い+ビルド+プラグインする

%HUDSON_HOME%\jobs\<projectname>の削除builds dirと削除lastStable, lastSuccessfulリンクに

行く、とnextBuildNumberファイルを削除します。

上記の手順を行った後のUI
からのリンクの下に行きます Jenkins->ジェンキンス管理 - >ディスクから再読み込みの設定

それはあなたが必要として行います。

ジョブがフォルダコンテナにグループ化されているかどうかを考慮に入れる代わりに、次を使用してみてください[スクリプトコンソールメソッドを使用している場合。

def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)

または

def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)

スクリプトコンソールを使用します。

の場合、ジョブは、それがいずれかのスラッシュとそれにフルネームを与えることが可能ですグループ化されています:

getItemByFullName("folder_name/job_name") 
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

あるいは、このようなトラバース階層ます:

def folder = Jenkins.instance.getItem("folder_name")
def job = folder.getItem("job_name")
job.getBuilds().each { it.delete() }
job.nextBuildNumber = 1
job.save()

は、ファイルシステムから直接削除することは安全ではありません。あなたは、すべてがすべてのジョブ(再帰的に)からビルドを削除するには、スクリプトの下に実行することができます。

def numberOfBuildsToKeep = 10
Jenkins.instance.getAllItems(AbstractItem.class).each {
  if( it.class.toString() != "class com.cloudbees.hudson.plugins.folder.Folder" && it.class.toString() != "class org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject") {
    println it.name
    builds = it.getBuilds()
    for(int i = numberOfBuildsToKeep; i < builds.size(); i++) {
        builds.get(i).delete()
      println "Deleted" + builds.get(i)
    }
  }
}```

移動するには:%JENKINS_HOME%\jobs\jobName

ファイルを開く「nextBuildNumber」と番号を変更します。そのリロードジェンキンス構成した後。注:「nextBuildNumberは、」ファイルがありませんそれはジェンキンスによって使用される次のビルドが含まれています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top