Semifold
命令行

发布软件包

从已经完成版本修改的清单和变更日志重新建立发布执行计划,再按依赖关系发布软件包。

smif publish 面向版本与变更日志修改已经存在的软件包。它不依赖 version 已经消费的变更集。

smif publish --dry-run
smif publish

启用生成的 GitHub Actions 后,合入准备好的发布拉取请求会通过 smif ci 触发推荐的发布路径。同一次发布不要再从本地重复执行。

规划与发布前检查

Semifold 读取当前清单与变更日志,通过工作区图排列软件包,展开配置命令,并在启动发布命令前执行所有可用的软件包仓库检查。缺少变更日志、已经存在的版本和软件包策略都会成为明确的跳过原因。

私有软件包只跳过软件包仓库预检和发布命令。有效的私有状态优先采用软件包级 publish,缺省时才采用清单或插件发现结果。私有软件包默认不创建 GitHub Release;显式配置 github-release = true 并启用 --github-release 时,仍会创建 Release 和上传附件。只有没有任何代码托管平台工作需要执行时,最终状态才会显示为私有软件包跳过。

HTTP 检查把 200 视为版本存在、404 视为不存在,其他状态码会安全失败。命令检查使用配置的 JSON Lines 契约。

执行

对于符合条件的软件包,Semifold 按依赖顺序运行发布前命令和发布命令。最终报告分别列出成功、跳过、失败和尚未开始的软件包,让部分失败可以基于事实重试。

选项行为
--dry-run运行只读检查,跳过软件包仓库与代码托管平台修改;只有明确允许预演的配置命令会执行。
--allow-dirty接受当前工作区差异作为有意的发布输入。
--github-release创建配置的 GitHub Release 并上传附件;只能在持续集成中使用。

如果软件包仓库中已经存在目标版本,对应发布命令会被跳过。启用 GitHub Release 后,Semifold 仍可补建缺失的 Release;已经存在的 Release 不会重新上传缺失附件。

本页内容