89

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

よろしくお願いします

4

15 に答える 15

116

スクリプト コンソール (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()
于 2013-07-31T07:32:16.247 に答える
82

この回答はジェンキンス向けです

  1. Jenkins ホームページ → Manage JenkinsScript Consoleに移動します。

    ここに画像の説明を入力してください

  2. そこで次のスクリプトを実行します。copy_folderに変更your project name

コード:

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

私の投稿

于 2016-06-28T06:36:31.487 に答える
51

Manage Hudson / Reload Configuration From Disk をクリックすると、Hudson はすべてのビルド履歴データをリロードします。

ディスク上のデータが台無しになっている場合は、%HUDSON_HOME%\jobs\<プロジェクト名 > ディレクトリに移動し、ビルド ディレクトリを本来あるべき状態に復元する必要があります。次に、構成データをリロードします。

すべてのビルド履歴を削除する方法を単純に尋ねている場合は、UI からビルドを 1 つずつ削除するか、%HUDSON_HOME%\jobs\< projectname > ディレクトリに移動してすべてのビルドを削除します。そこのサブディレクトリ -- それらはビルドに対応しています。その後、変更を有効にするためにサービスを再起動します。

于 2010-08-04T21:57:25.090 に答える
23

ここに別のオプションがあります: cURL でビルドを削除します。

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

上記は、ジョブ myJob のビルド #1 から #56 を削除します。

Jenkins インスタンスで認証が有効になっている場合は、ユーザー名と API トークンを次のように指定する必要があります。

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

/me/configureAPI トークンは、Jenkinsのページから取得する必要があります。「Show API Token...」ボタンをクリックするだけで、ユーザー名と API トークンの両方が表示されます。

編集:使用する Jenkins の構成またはバージョンによっては、これを機能させるために上記の URL をdoDeleteAllbyに置き換える必要がある場合があります。doDelete

于 2014-03-10T14:40:42.580 に答える
11

Jenkins Scriptingを使用して、すべてのジョブのすべてのビルドを削除する方法は次のとおりです。

def jobs = Jenkins.instance.projects.collect { it } 
jobs.each { job -> job.getBuilds().each { it.delete() }} 
于 2015-05-05T19:32:29.887 に答える
9

プロジェクト構成を一時的に変更して、最後の1つのビルドのみを保存し、構成を再ロードして(古いビルドを破棄する必要があります)、構成設定を目的の値に再度変更できます。

于 2010-08-04T22:16:20.837 に答える
6

これは利用可能な最良のオプションです。

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

このコードは、すべての Jenkins ジョブのビルド履歴を削除します。

于 2018-09-03T08:07:31.470 に答える
1

ビルドをクリーンアップするもう 1 つの簡単な方法は、ジョブの最後に Discard Old Plugin を追加することです。保存するビルドの最大数を設定してから、ジョブを再度実行します。

https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin

于 2015-03-03T13:11:34.177 に答える
1

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

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

また

def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)
于 2017-04-24T15:08:12.843 に答える