我在 Google Artifact 注册表中将以下清理策略设置为“试运行”:
[
{
"name": "delete-nightly-packages",
"action": {
"type": "Delete"
},
"condition": {
"tagState": "ANY",
"tagPrefixes": [
"nightly"
],
"olderThan": "43200s"
}
}
]
当我保存此策略并等待试运行发生时(它们似乎每 6 小时发生一次:上午 8 点、下午 2 点、晚上 8 点、凌晨 2 点),我收到的日志显示将被删除的图像,这很好。然而,当我检查其中一些标记的图像时,我注意到该策略似乎标记了满足时间要求(超过 12 小时)但不满足标签前缀要求的图像。例如,一张图像的标签为“v0.12.3”并且已有数月历史。我希望它不会包含在试运行日志中,因为它与我配置的“每晚”标签前缀不匹配,尽管它确实满足年龄要求。
我还尝试将此策略拆分为两个条件删除策略:一个用于时间组件,一个用于标签组件,但这也不会改变任何事情。
根据 @DazWilkin 的评论,此处的修复是将“标签状态”选项从“任何”更改为“已标记”。事实证明,如果“标签状态”选项设置为“任意”,GAR 将忽略其他选项,例如“标签前缀”。