发布软件包
您可以将软件包发布到 Armory 仓库,实现统一与规范化的管理。在发布软件包时,您还可以按需设置软件包的标签、访问级别,以及选择是否同步至 ECMP 镜像仓库。
操作须知
仅首次发布软件包时可以指定其 访问级别。一旦发布后,如果需要切换访问级别,则需要前往 Web 端软件包详情页的设置界面进行调整,具体请参见 切换访问级别。
仅首次发布软件包时可以指定其 访问级别。一旦发布后,如果需要切换访问级别,则需要前往 Web 端软件包详情页的设置界面进行调整,具体请参见 切换访问级别。
对于仓库中已存在的符合 SemVer 规范的版本,允许覆盖发布相同版本或语义等价的版本。SemVer 中的语义等价版本通常包括以下两种情况:
- 包含构建版本号(-build-meta):如
X.Y.Z+buildnum
(例如1.2.3+20241209
)。构建元数据仅作为附加信息,不参与版本号比较。 - 版本号带有前缀(v):例如
v1.2.3
。v
仅作为版本号前缀,不影响 SemVer 核心部分的解析与比较,且不区分大小写。
等价版本号示例:
1.0.0
等价于v1.0.0
等价于V1.0.0
等价于1.0.0+buildnum
。- 包含构建版本号(-build-meta):如
前提条件
- 已 配置仓库地址,并已 登录客户端。
- 已 创建软件包,且已按照 软件包规范 完成了 armory.json 以及软件包文件配置。
- 覆盖发布版本需要同时具备撤销和发布软件包版本的权限。具体来说,个人软件包仅限软件包的所有者更新版本;组织软件包,只有组织所有者和组织管理员可以进行更新。关于软件包权限的详细说明请参见 权限管理。
操作步骤
在开始搜索框或任意文件夹地址栏输入“cmd”,打开终端。
在终端执行如下命令,发布软件包。
下面以发布当前命令行所在路径的 armory-client 和 cloudnative-demo 软件包为例,介绍如何通过
armory publish
命令发布软件包。仅发布软件包至 Armory 仓库
armory publish @software_factory/armory-client/armory.json --tag <tag> --access <private | public> -force
参数说明如下:
参数 是否必选 说明 @software_factory/armory-client/armory.json 否 软件包配置文件 armory.json 的路径,发布软件包时需替换为该文件的实际路径。
如果在 armory.json 所在目录执行publish
命令,则可以省略路径配置,直接使用armory publish
或armory publish .
命令发布软件包tag 否 设置软件包标签,用于对软件包版本进行更精细的标记和分发。为避免标签与版本号冲突,建议不要在标签中使用以数字或字母“v"开头的命名。如果不设置,则默认为 latest access 否 设置软件包的访问级别,用于标识软件包是否对外可见,可选值为:私有(private)和内部公开(public)。如果不设置,则默认为内部公开;如果要设置为完全公开(open),则需要发布后联系系统管理员 切换访问级别,各级别详细介绍请参见 访问级别 force 否 设置是否强制覆盖发布已存在的版本或语义等价版本。如果需要发布仓库中已存在的软件包版本,需要指定此参数以强制发布。在强制覆盖发布过程中,请根据提示信息输入当前要发布的完整版本号以确认操作 命令示例如下:
armory publish @software_factory/armory-client/armory.json --tag dev --access public # 回显如下内容,表示发布成功: Using json file: D:\software\Armory\@software_factory\armory-client\armory.json Using repository: http://10.12.**.**:3001(default) Checking armory.json configuration.. Publishing package: @software_factory/armory-client@1.6.0 Windows@x86-64 > armory-v1.6.0-win-x64.exe (20.27 MB) 100%[======================>] done Windows@arm64 > armory-v1.6.0-win-arm64.exe (32.65 MB) 100%[======================>] done Linux@x86-64 > armory-v1.6.0-linux-x64.tar.gz (23.11 MB) 100%[======================>] done Linux@arm64 > armory-v1.6.0-linux-arm64.tar.gz (22.93 MB) 100%[======================>] done macOS@x86-64 > armory-v1.6.0-macos-x64.tar.gz (23.63 MB) 100%[======================>] done macOS@arm64 > armory-v1.6.0-macos-arm64.tar.gz (22.12 MB) 100%[======================>] done Package publish completed!
发布软件包至 Armory 和 ECMP 仓库
以下是发布软件包至 Armory 和 ECMP 仓库,并指定软件包的标签为“release”,访问级别为“公开级别”的命令示例:
armory publish cloudnative-demo/armory.json --sync-to ECMP --tag <tag> --access <private | public> -force
参数说明如下:
参数 是否必选 说明 cloudnative-demo/armory.json 否 软件包配置文件 armory.json 的路径,发布软件包时需替换为该文件的实际路径。
如果在 armory.json 所在目录执行publish
命令,则可以省略路径配置,直接使用armory publish
或armory publish .
命令发布软件包sync-to 是 设置是否同步软件包至 ECMP 仓库,其值只能为 ECMP tag 否 设置软件包标签,用于对软件包版本进行更精细的标记和分发。为避免标签与版本号冲突,建议不要在标签中使用以数字或字母“v"开头的命名。如果不设置,则默认为 latest access 否 设置软件包的访问级别,用于标识软件包是否对外可见,可选值为:私有(private)和内部公开(public)。如果不设置,则默认为内部公开;如果要设置为完全公开(open),则需要发布后联系系统管理员 切换访问级别,各级别详细介绍请参见 访问级别 force 否 设置是否强制覆盖发布已存在的版本或语义等价版本。如果需要发布仓库中已存在的软件包版本,需要指定此参数以强制发布。在强制覆盖发布过程中,请根据提示信息输入当前要发布的完整版本号以确认操作 命令示例如下:
armory publish cloudnative-demo/armory.json --sync-to ECMP --tag release --access public # 回显如下内容,表示发布成功: Using json file: D:\software\Armory\cloudnative-demo\armory.json Using repository: http://10.12.**.**:3001(default) Checking armory.json configuration.. Publishing package: @software_factory/cloudnative-demo@1.3.2 SylixOS@aarch64 > acc_server_1.0.0.tar (50 KB) 100%[======================>] done SylixOS@aarch64 > airpressure_server_1.0.0.tar (40 KB) 100%[======================>] done SylixOS@aarch64 > airspeed_server_1.0.0.tar (40 KB) 100%[======================>] done SylixOS@aarch64 > battery_server_1.0.0.tar (40 KB) 100%[======================>] done SylixOS@aarch64 > qt_client_sylixos_latest.tar (395.5 KB) 100%[======================>] done SylixOS@aarch64 > radar_server_1.0.0.tar (50 KB) 100%[======================>] done SylixOS@aarch64 > thermal_server_latest.tar (40 KB) 100%[======================>] done Package publish completed!
软件包发布成功后,可以在 Armory 仓库或 ECMP 仓库查看已发布的软件包。
在 Armory 仓库查看软件包:如果发布的是组织软件包,则发布结果根据组织设置的 软件包发布策略 分以下 2 种情况:
如果开启了“版本发布确认”策略,则发布的软件包版本状态如下图所示,可参考 确认 / 取消发布版本 对软件包版本进行确认或取消发布操作。
如果未开启“版本发布确认”策略,则发布的软件包版本如下图所示,直接为正式发布版本,无需额外确认。
在 ECMP 仓库查看软件包:登录 ECMP,在左侧导航栏中单击镜像仓库,在镜像仓库界面,可以查看已发布软件包所包含的容器镜像资源。