如何删除詹金斯中的存档工件?

问题描述 投票:0回答:3
  1. 我正在使用 Jenkins 和 tomcat。我使用 java 类中的 jenkins cli 来创建作业并构建。 我想删除存档的工件。如何实现这个目标?

  2. 另一个问题是,我们可以在 jenkins 中为构建指定一个特定名称吗?(例如,我想要像 (buildNumber + someName) 这样的构建名称。如何实现这一目标?

build hudson jenkins command-line-interface
3个回答
8
投票
默认情况下构建的工件位于:

[JENKINS_HOME]/jobs/[job_name]/builds/[$BUILD_ID]/archive/

,转到那里并将其删除。不过,它不会从构建页面删除指向工件的链接。 (如果您不确定 JENKINS_HOME 在哪里,请转到 
http://[jenkins_server]/configure
,您会在页面顶部附近看到 
Home 目录)。

要自动更改构建的显示名称,请尝试

构建名称设置器插件

要通过 CLI 更改显示名称:

java -jar jenkins-cli.jar -s http://[server]/ set-build-display-name [job_name] [build#] [new_name]
    

1
投票
对于每个寻求另一种方法的人。如果您使用 jenkins Web 界面并且拥有管理员权限。您可以在“管理 Jenkins/Nodes/

/脚本控制台”运行以下 groovy 脚本。

def project = Jenkins.get().getItemByFullName('<your-project-id>') def jobs = project.getAllJobs() def total_size = 0 jobs.each{ job -> def builds = job.getBuilds() builds.each{ build -> def artifacts = build.artifacts artifacts.each{ artifact -> total_size += artifact.getFileSize() println "$artifact, ${artifact.getFileSize()}" } build.deleteArtifacts() } } println "Total size: $total_size"
感谢 

@perja12 创建脚本。


0
投票
如果您只想删除一个构建的一个特定存档工件,请在“管理 Jenkins/Nodes//脚本控制台”运行以下 groovy 脚本:

def project = Jenkins.get().getItemByFullName('<your-project-id>') def jobs = project.getAllJobs() def job = job[0] def build = job.getBuildByNumber(42) // the number of your build def manager = build.getArtifactManager() def file = manager.root().child('the_file_you_want_to_del.ete') println file.toURI() // uncomment the next line if the above has returned the correct URI //Util.deleteFile(new File(file.toURI()))
改编自

@mmonetha所写的答案的开头。

© www.soinside.com 2019 - 2024. All rights reserved.