最近、hudson ビルドの 1 つの構成を更新しました。ビルド履歴が同期されていません。ビルド履歴をクリアする方法はありますか?
よろしくお願いします
最近、hudson ビルドの 1 つの構成を更新しました。ビルド履歴が同期されていません。ビルド履歴をクリアする方法はありますか?
よろしくお願いします
スクリプト コンソール (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 ホームページ → Manage Jenkins → Script Consoleに移動します。
そこで次のスクリプトを実行します。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()
Manage Hudson / Reload Configuration From Disk をクリックすると、Hudson はすべてのビルド履歴データをリロードします。
ディスク上のデータが台無しになっている場合は、%HUDSON_HOME%\jobs\<プロジェクト名 > ディレクトリに移動し、ビルド ディレクトリを本来あるべき状態に復元する必要があります。次に、構成データをリロードします。
すべてのビルド履歴を削除する方法を単純に尋ねている場合は、UI からビルドを 1 つずつ削除するか、%HUDSON_HOME%\jobs\< projectname > ディレクトリに移動してすべてのビルドを削除します。そこのサブディレクトリ -- それらはビルドに対応しています。その後、変更を有効にするためにサービスを再起動します。
ここに別のオプションがあります: 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/configure
API トークンは、Jenkinsのページから取得する必要があります。「Show API Token...」ボタンをクリックするだけで、ユーザー名と API トークンの両方が表示されます。
編集:使用する Jenkins の構成またはバージョンによっては、これを機能させるために上記の URL をdoDeleteAll
byに置き換える必要がある場合があります。doDelete
Jenkins Scriptingを使用して、すべてのジョブのすべてのビルドを削除する方法は次のとおりです。
def jobs = Jenkins.instance.projects.collect { it }
jobs.each { job -> job.getBuilds().each { it.delete() }}
プロジェクト構成を一時的に変更して、最後の1つのビルドのみを保存し、構成を再ロードして(古いビルドを破棄する必要があります)、構成設定を目的の値に再度変更できます。
これは利用可能な最良のオプションです。
Jenkins.instance.getAllItems(AbstractProject.class).each {it -> Jenkins.instance.getItemByFullName(it.fullName).builds.findAll { it.number > 0 }.each { it.delete() } }
このコードは、すべての Jenkins ジョブのビルド履歴を削除します。
ビルドをクリーンアップするもう 1 つの簡単な方法は、ジョブの最後に Discard Old Plugin を追加することです。保存するビルドの最大数を設定してから、ジョブを再度実行します。
https://wiki.jenkins-ci.org/display/JENKINS/Discard+Old+Build+plugin
スクリプト コンソールの方法を使用している場合は、代わりに次の方法を使用して、ジョブがフォルダー コンテナーにグループ化されているかどうかを考慮してください。
def jobName = "Your Job Name"
def job = Jenkins.instance.getItemByFullName(jobName)
また
def jobName = "My Folder/Your Job Name
def job = Jenkins.instance.getItemByFullName(jobName)