发布snapshot jar到Github Package

最近在写一个开源项目,jar包会deploy到Github Package。由于会持续改进,所以开始打算发布snapshot。但有个问题:在Github Package仓库中snapshot会不断累积, 只是jar包后面的时间戳不同。因此需要在deploy action中增加一个step来删除过去所有的snapshot jars,之后再发布。尝试了3种方法:

  1. 使用 actions/delete-package-versions@v4. 这个action可以定义min-versions-to-keep 。但是github会把所有同版本的snapshot整体当做一个版本,导致这个action对snapshot并没有任何作用。如果设置为0,会报错latest version不能被删除。
  2. curl调用Github Api删除某个特定版本的jar包。和1同样的问题,由于只发布了一个snapshot,最近的版本不能被删除。且坑爹的是,根据version删除pkg需要指定package-version-id, 这个id不是自己定义的version比如1.0.0-SNAPSHOT,而是github赋予的一个整数id,得先查询得到id再根据id删除。
  3. curl调用Github Api删除整个package。目前采取这种做法,只能先删除所有的pkg再deploy。我定义了个DELETE变量,根据这个DELETE判断是否要执行delete step。以后如果走到release阶段,可以将DELETE设置为false跳过这个step。参考我的workflow

Github Community的讨论:

https://github.com/orgs/community/discussions/48971