跳到主要内容

workspace publish

workspace publish 将远程 draft 发布为新版本。online 表示版本已发布且可获取;版本能否在 Server 执行或下载到 macOS/Windows 由 draft 中固化的 executionTargets 决定。同一 workflow 的发布请求会串行分配版本号,避免并发请求复用同一个版本。版本号由 Server 管理,CLI 不再支持手动 --version

对带已确认关联项目的 Kanban,传入 --project-group--dependency 会先从本地源码创建并上传项目组,再直接发布该部署。它与 upload --publish-group 使用同一 project-group v1 协议;included 项目先发布,根 Kanban 最后激活。已有部署则只使用 publish --deployment <id> 继续发布,不能同时传入本地路径或项目组创建参数。

Kanban 发布不执行依赖安装、前端构建或 runtime 构建,并始终以 source 模式保留 draft 中配置的 artifactDir、HTML entry 和全部已上传静态资源;即使传入 --source-mode bundled,服务器也会按 source 模式发布。开发者需要在上传前自行完成 Vue、React、Vite 等项目构建。

publish 基于顶层 package.json.id UUID 定位远程项目。CLI 会先读取本地 package 里的 UUID;如果 workflow 还没有绑定 server UUID,或当前账号不是项目 owner/manager 且没有全局发布权限,命令会直接失败。

命令格式

pnpm exec workflow-code workspace publish <workflow> [--release-log <text>] [--source-mode bundled|source] [--server-runtime|--no-server-runtime] [--desktop-platform macos|windows] [--project-group] [--path <workflow-dir>] [--dependency <alias>=<path>] [--create]
pnpm exec workflow-code workspace publish --deployment <id>

参数

参数说明
<workflow>远程 workflow 名称。
--release-log <text>发布日志。未传时按 server 默认行为处理。
--source-mode <bundled|source>Workflow/Conversation 固化到版本的源码模式。默认 bundled;Kanban 始终使用 source
--server-runtime / --no-server-runtime显式声明 publish 的 Server 目标;必须与已准备 draft 一致,否则 Server 返回 409
--desktop-platform <macos|windows>显式声明 Desktop 目标;可重复,必须与 draft 一致并使用 source。只传该参数时 CLI 会读取远端项目类型,Kanban 默认保持 Server 关闭。
--project-group从本地 Kanban 和选中的关联项目创建项目组,并在准备完成后直接发布。
--path <workflow-dir>项目组根 Kanban 的本地目录。
--dependency <alias>=<path>把双方已确认关系 alias 对应的本地项目作为 included 依赖;可重复。数据权限仍由双方 projectInfo 决定。
--create确保根项目和 included 依赖已在 Server 创建并绑定 UUID。
--deployment <id>继续发布已经准备好的项目组部署;必须单独使用,不读取本地项目。

API

步骤Endpoint
发布 draftPOST /api/workflows/{workflow}/publish
发布项目组POST /api/deployments/{deploymentId}/publish

输出

情况输出
发布成功server publish API JSON。
没有可发布 draftserver 返回错误 JSON,退出码为 1
未登录输出错误信息,退出码为 1

示例

pnpm exec workflow-code workspace publish hello
pnpm exec workflow-code workspace publish hello --release-log "修复输入校验"
pnpm exec workflow-code workspace publish hello --server-runtime --desktop-platform macos --source-mode source --release-log "云端与 macOS"
pnpm exec workflow-code workspace publish hello --no-server-runtime --desktop-platform windows --release-log "Windows 本地发行"
pnpm exec workflow-code workspace publish stock-kanban \
--path ./stock-kanban \
--dependency stocks=./stock-workflow \
--release-log "发布股票看板项目组"
pnpm exec workflow-code workspace publish --deployment 00000000-0000-4000-8000-000000000010

注意事项

场景说明
需要上传并立即发布可使用 upload --release-log
需要查看 latest使用 versions,其中 status 会显示 preparing/online/offline。
传入 --version当前 CLI 会报错,版本号由系统生成。
缺失 UUID 或未创建远程项目先在 package 中声明合法 UUID;再执行 upload --create 按该 UUID 创建 Server 项目。
省略发行目标publish 沿用准备 draft 的策略;建议只在需要一致性断言时显式重传目标。
显式目标与 draft 不一致Server 返回 409,不会把无 runtime draft 误发为 Server 版本;请按准备时的同一参数重试或重新上传。
本地项目组直接发布使用 --project-group 或至少一个 --dependencypublish 会完成打包、上传和发布,不需要再传 --publish-group
项目组发布中断使用部署记录中的 ID 重新执行 publish --deployment <id>;Server 会跳过已成功且 hash 一致的依赖,最后再激活根 Kanban。