ARTIFACTORY:如何从ARTIFACTORY UI强制删除构建
问题描述:
在某些罕见的情况下,当构建信息文件损坏或从文件存储中删除时,不可能从UI中删除构建。(rtfact - 21101)
解决步骤:
- 启用强制保存构建,如果它已经存在于数据库中,通过将下面的system属性添加到artifactory.system.properties(在$JFROG_HOME/artifactory/var/etc/artifactory下)并重启artifactory:
artifactory.builds.db.force.override.enabled = true - 接下来的步骤是创建模仿原始构建信息的JSON内容。json文件。为此,您需要尝试删除构建并在人工服务日志中获得警告消息:
[jfrt] [WARN] [7336e8415738eb58] [o.a.s.f.l.][http-nio-8081-exec-7] -可变项目'artifactory-build-info:maven-example-2/104-1632391567030.]Json '具有将被丢弃的本地修改。 - 上面条目中看到的原始json文件命名为
/ - 。Json(时间戳是epoch time),我们将需要所有3个参数。
在上面的例子中,构建名称是“maven-example-2”,构建号是“104”,时间戳是“1632391567030”。
为了简单起见,时间戳参数可以在“Build Time”选项卡下从UI中检索,但是它应该根据以下格式进行修改:yyyy-MM-dd 'HH: mm: ss。SSSZ
(注意,毫秒不会在UI中显示,它们是epoch时间的最后3个数字)
- 最后,使用REST API部署构建信息,这将覆盖现有的缺失构建,并允许它被删除:
curl -X PUT "http://localhost:8081/artifactory/api/build" -H "Content-Type: application/json" -d '{"name": "maven-example-2", "number": "104", "started": "2021-09-23T13:06:07.030+0300"}' -uadmin:密码注意“。“030”取自原始文件名(104-1632391567030.json),“+0300”与UI中看到的相同。
在' artifactory-service.log '中,你还可以看到构建被覆盖了,例如:[04:03 . 22] [INFO] [4703c4dabcba9a1] [a.r.i.][http-nio-8081- exc -5] -覆盖在路径'artifactory-build-info/maven-example-2/104-1632391567030的构建。json的检测。 - 从“artifactory.system”中删除添加的system属性。属性文件并重新启动Artifactory。
