发布软件包

更新时间:
2024-12-27

发布软件包

您可以将软件包发布到 Armory 仓库,实现统一与规范化的管理。在发布软件包时,您还可以按需设置软件包的标签、访问级别,以及选择是否同步至 ECMP 镜像仓库。

操作须知

  • 仅首次发布软件包时可以指定其 访问级别。一旦发布后,如果需要切换访问级别,则需要前往 Web 端软件包详情页的设置界面进行调整,具体请参见 切换访问级别

  • 仅首次发布软件包时可以指定其 访问级别。一旦发布后,如果需要切换访问级别,则需要前往 Web 端软件包详情页的设置界面进行调整,具体请参见 切换访问级别

  • 对于仓库中已存在的符合 SemVer 规范的版本,允许覆盖发布相同版本或语义等价的版本。SemVer 中的语义等价版本通常包括以下两种情况:

    • 包含构建版本号(-build-meta):如X.Y.Z+buildnum(例如1.2.3+20241209)。构建元数据仅作为附加信息,不参与版本号比较。
    • 版本号带有前缀(v):例如v1.2.3v仅作为版本号前缀,不影响 SemVer 核心部分的解析与比较,且不区分大小写。

    等价版本号示例:1.0.0等价于v1.0.0等价于V1.0.0等价于1.0.0+buildnum

前提条件

  • 配置仓库地址,并已 登录客户端
  • 创建软件包,且已按照 软件包规范 完成了 armory.json 以及软件包文件配置。
  • 覆盖发布版本需要同时具备撤销发布软件包版本的权限。具体来说,个人软件包仅限软件包的所有者更新版本;组织软件包,只有组织所有者和组织管理员可以进行更新。关于软件包权限的详细说明请参见 权限管理

操作步骤

  1. 在开始搜索框或任意文件夹地址栏输入“cmd”,打开终端。

  2. 在终端执行如下命令,发布软件包。

    下面以发布当前命令行所在路径的 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 publisharmory 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 publisharmory 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!
      
  3. 软件包发布成功后,可以在 Armory 仓库或 ECMP 仓库查看已发布的软件包。

    • 在 Armory 仓库查看软件包:如果发布的是组织软件包,则发布结果根据组织设置的 软件包发布策略 分以下 2 种情况:

      • 如果开启了“版本发布确认”策略,则发布的软件包版本状态如下图所示,可参考 确认 / 取消发布版本 对软件包版本进行确认或取消发布操作。

      • 如果未开启“版本发布确认”策略,则发布的软件包版本如下图所示,直接为正式发布版本,无需额外确认。

    • 在 ECMP 仓库查看软件包:登录 ECMP,在左侧导航栏中单击镜像仓库,在镜像仓库界面,可以查看已发布软件包所包含的容器镜像资源。

文档内容是否对您有所帮助?
有帮助
没帮助